练习编写了一个连接数据库的登录界面的验证跳转。
大部分的代码都是从完整项目里面拷贝的。
现在开始叙述编写过程:
(1)首先是创建一个javaweb项目。
对index.jsp进行编写,添加了form表单,表单中用table固定格式。添加了账户输入框(text),密码输入框(password),用户类型下拉框(select)和确定按钮(submit)。
form表单(post)的action就是和后台连接的地方,连接控制层(servlet),语句为action="servlet/UserValidateServlet"
(2)编写控制层(servlet)这里我只编写了“UserValidateServlet”用户登录验证。
对UserValidateServlet。java进行编写。doPost与doGet都是调用“doResponse(request,response);”方法。着重写doResponse()方法。
在doResponse()方法中先从form取下数值,String username=request.getParameter("username");还有password与type。
然后打开IO流PrintWriter out = response.getWriter();,设置一个key验证登录状态int roleID=-1;
下一步就需要编写其他的层了。
回到控制层(servlet)。
再编写界面的跳转与验证。
完成最终的过程,验证成功!!!
(3)编写接口层(DAO)需要编写两个类,UserDAOImpl与UserDAO。
首先编写UserDAO,这时一个接口,里面都是定义的初始化方法,这里需要引用实体类,所以要开始编写实体(model)。
初始化自己想用的操作,写成方法:public int findUser(String username,String password);//查询验证用户。
然后开始编写UserDAOImpl,这个类实现UserDAO接口定义的方法
SQL语句就是在这里写的。
连接数据连接类。
根据username用SQL语句从数据库中取出各属性值。
开始编写工厂类(factory)
然后再回到控制层(servlet)。
(4)编写实体类(model)这里我只编写“User”类
方法是public class User{},直接在里面写入数据库中定义的各个属性(列名),类型为私有private。然后点击类右键→Source→Generate Getters and Setters就可以自动生成set+get方法。然后实体类就完成了。在回到编写接口层(DAO)。
(5)编写工厂类(factory)这里也只编写UserDAOFactory
创建工厂类,右键UserDAOImpl与类名一致的无参函数→Refactor→Introduce Factory
然后右键UserDAOImpl类Refactor→Use Supertype Where Possible选择UserDAO节点
然后工厂类完成了。在回到控接口层(DAO)。
练习感受:
(1)首先,先对indux.jsp界面进行编辑,在action=“”处关联servlet
解释: 1、显示层:JSP页面
2、控制层:servlet 方法大多是doPost(),doGet()方法doResponse()方法 ### 控制层需要关联:数据连接类(DB),数据接口层(DAO),工厂类(factory)
3、数据连接类:databaseconnection
4、接口层:DAO 包括xxxDAOImpl和xxxDAO,其中xxxDAO是接口,被xxxDAOImpl实现。
需要与实体类联系引用其中的set+get方法。
5、实体类:model等同于javabean。是set+get
6、工厂类:factory。是面向接口层的 xxxDAO 抽象出来的,创造出一个静态对象方法createxxxDAOimpl()。
接口层与控制层最麻烦。接控制层连接显示层(显示层最终调用doResponse()方法)。接口层为控制层提供各种操作。
(2)控制层,接口层,工厂类和实体类都要有跟类名一致的无参函数 。意思就是除去工具类和数据连接类 都要包含跟类名一致的无参函数。