博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
web项目(用户注册)(web分层结构)
阅读量:4967 次
发布时间:2019-06-12

本文共 4270 字,大约阅读时间需要 14 分钟。

web项目中的分层:dao--service--servlet--jsp。

0.在idea中创建web项目,配置Tomcat9。file--project structure--modules--dependencies+(添加Tomcat9.0),这样才可以使用servlet和jsp

0.1在web-inf下创建lib文件夹,存放jar包:c3p0-0.9.1.2.jar(开源的JDBC连接池)/commoms-dbutils-1.7.jar/hamcrest-core-1.3.jar(核心包)/jstl-1.2.jar/jutil-4.12.jar(测试)/ojdbc6.jar(连接数据

库)/log4j-4.12.jar(记录日志)。
1.在conf(Resource Root)文件夹下创建 c3p0-config.xml ,配置数据库的连接(注意是中划线,且名称不能写错)
<?xml version="1.0" encoding="UTF-8" ?>
<c3p0-config>
<default-config>
<property name="user">scott</property>
<property name="password">tiger</property>
<property name="jdbcUrl">jdbc:oracle:thin:@localhost:1521:orcl</property>
<property name="driverClass">oracle.jdbc.driver.OracleDriver</property>
</default-config>
</c3p0-config>
1.1在conf(Resource Root)文件夹下创建 Resource bundle命名为log4j.properties。(表示不懂)
#debug 指的是记录日志的级别-info-warn-error
#a 表示记录日志的位置
log4j.rootLogger=debug,a,b
#分别指明a和b代表的位置
#表示a是指控制台的输出
log4j.appender.a=org.apache.log4j.ConsoleAppender
#控制台输出的目标,使用哪个命令输出异常信息
log4j.appender.a.Target=System.out
#设置输出日志的格式要求,使用模板布局
log4j.appender.a.layout=org.apache.log4j.PatternLayout
#指定模板 %d表示日期 %m异常的信息 %n表示换行
log4j.appender.a.layout.ConversionPatten=%d{yyyy-MM-dd HH:mm:ss} %m%n
#输出文件
log4j.appender.b=org.apache.log4j.FileAppender
log4j.appender.b.File=E:\\error.log
log4j.appender.b.layout=org.apache.log4j.PatternLayout
log4j.appender.b.layout.ConversionPatten=%d{yyyy-MM-dd HH:mm:ss} %m%n
2.在src 中创建com.neu.util包中DButil(连接数据库了)
private static ComboPooledDataSource ds=new ComboPooledDataSource();
//获取连接数据库的数据源
public static DataSource getDataSource(){
return ds;
}
3.在src中创建com.neu.dao包中的YongHuDao(与数据库连接)
//用户信息的添加
public int saveYonghu(String zhanghao,String mima,String mingcheng,String dianhua,String youxiang){
int row=0;
//sql语句换行必须加空格
//尽量在plsql中编写sql语句,然后复制
String sql="insert into t_yonghu(yh_id,yh_zhanghao,yh_mima,yh_mingcheng,yh_dianhua,yh_youxiang)values " +
"(seq_book_id.nextval,?,?,?,?,?)";
//创建dbutils包中的QueryRunner对象,其实就是我们以前使用的statement
QueryRunner qr=new QueryRunner(DBUtil.getDataSource());
//QueryRunner的update方法可以执行insert/delete/update方法。query方法可以执行select方法。
try {
row=qr.update(sql,zhanghao,mima,mingcheng,dianhua,youxiang);//括号中存放sql语句,其次给?赋值
} catch (SQLException e) {
throw new RuntimeException(e);//异常
}
return row;
}
4.在src中创建com.neu.service包中的YongHuService(与dao层连接)
public boolean doSave(String zhanghao,String mima,String mingcheng,String dianhua,String youxiang){
YongHuDao yongHuDao=new YongHuDao();
boolean flag=false;
try {
int row=yongHuDao.saveYonghu(zhanghao,mima,mingcheng,dianhua,youxiang);
if(row>0){
flag=true;
}
} catch (Exception e) {
logger.debug(e);
//使用log4j记录日志 把异常信息写入到文件中(可不写)
}
return flag;
}
5.直接在web文件夹下创建success.jsp/fail.jsp/yonghuzhuce.jsp。
fail.jsp:
<body>
操作失败!!5秒后自动返回或点击<a href="#" οnclick="history.back()">返回</a>
</body>
<script type="text/javascript">
function myback() {
history.back();
}
setTimeout("myback()",5000);//只执行一次,5秒后执行myback()函数
//setInterval("myback()",5000);//每隔5秒执行一次
</script>
yonghuzhuce.jsp:
<body>
<div>
<form action="YongHuZhuCeServlet.do" method="post">
<table>
<tr>
<td>账号</td><td><input type="text" name="zhanghao" id="zhanghao"></td>
</tr>
<tr>
<td>密码</td><td><input type="password" name="mima" id="mima"></td>
</tr>
<tr>
<td>姓名</td><td><input type="text" name="mingcheng" id="mingcheng"></td>
</tr>
<tr>
<td>电话</td><td><input type="text" name="dianhua" id="dianhua"></td>
</tr>
<tr>
<td>邮箱</td><td><input type="text" name="youxiang" id="youxiang"></td>
</tr>
<tr>
<td style="align-content: center">
<input type="submit" value="注册">
</td>
</tr>
</table>
</form>
</div>
</body>
6.在src中创建com.neu.servlet包中的YongHuZhuCeServlet(与service,jsp层连接)
在doPost方法中写入:
//处理以post方式提交的请求
request.setCharacterEncoding("UTF-8");//post方式处理中文乱码
String zhanghao=request.getParameter("zhanghao");//获取jsp表单中的数据
String mima=request.getParameter("mima");
String mingcheng=request.getParameter("mingcheng");
String dianhua=request.getParameter("dianhua");
String youxiang=request.getParameter("youxiang");
YongHuService yongHuService=new YongHuService();//创建service中的对象
boolean flag=yongHuService.doSave(zhanghao,mima,mingcheng,dianhua,youxiang);
if(flag){
//重定向
response.sendRedirect("success.jsp");
}else {
response.sendRedirect("fail.jsp");
}

转载于:https://www.cnblogs.com/sunda847882651/p/9565649.html

你可能感兴趣的文章
mysql union 组合查询
查看>>
socket tcp
查看>>
spiral-matrix-ii &i 生成顺时针序列
查看>>
python set集合方法总结
查看>>
python考点
查看>>
DataMining--Python基础入门
查看>>
单片机复位电路
查看>>
php json_decode失败,返回null
查看>>
获取单选按钮选中的值
查看>>
oracle 分页
查看>>
助教学期总结
查看>>
绘制基本 图形之矩形与多边形
查看>>
3-day3-list-truple-map.py
查看>>
02: djangorestframework使用
查看>>
7zip 自解压安装程序
查看>>
Edit控件显示多行文字
查看>>
JS第二周
查看>>
dataTable.NET的search box每輸入一個字母進行一次檢索的問題
查看>>
Python 文件处理
查看>>
邻接表详解
查看>>