登录:

在DAO层数据访问层UserInfoDAOImpl类:
1 //进行单测 2 @Test 3 public void test() throws Exception{ 4 UserInfo info=new UserInfo(); 5 info.setUsercode(1); 6 info.setUserpwd("1"); 7 boolean flag=isLogin(info); 8 System.out.println(flag); 9 } 10 //登录 11 public boolean isLogin(UserInfo info) throws Exception { 12 boolean flag=false; 13 String sql="select count(1) as count from news where usercode=? and userpwd=?"; 14 Object[] obj={info.getUsercode(),info.getUserpwd()}; 15 ResultSet rs=executeQuery(sql,obj); 16 if(rs.next()){ 17 int count=rs.getInt("count"); 18 if(count>0){ 19 flag=true; 20 } 21 } 22 return flag; 23 }
在Servlet控制层UserInfoServlet类:
如果登陆成功就跳转到编辑新闻页面,如果登录失败就跳转到主页面:
首先:1.解决乱码
2.创建service层的对象
3.调度service方法
4根据方法的返回值,判断转发或者重定向的页面:
String action = request.getParameter("action");
System.out.println(action);
if (action.equals("login")) {
// 1.解决乱码
request.setCharacterEncoding("utf-8");
// 2.创建service层的对象
IUserInfoService service = new UserInfoServiceImpl();
// 3.调度service方法
String temp = request.getParameter("uname");
if (temp != null && temp != "") {
int uname = Integer.parseInt(temp);
String upwd = request.getParameter("upwd");
UserInfo info = new UserInfo();
info.setUsercode(uname);
info.setUserpwd(upwd);
try {
boolean flag = service.isLogin(info);
if (flag) {
// 登录成功
request.getSession().setAttribute("uname", temp);
request.getRequestDispatcher(
"/servlet/NewsServlet?action=back").forward(
request, response);
} else {
request.getRequestDispatcher("/index.jsp").forward(
request, response);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
注销:

在Servlet控制层UserInfoServlet类:在servlet中获取session对象,清除session
1 if (action.equals("logout")) { 2 // 1.清楚session 3 // 在servlet中获取session对象 4 request.getSession().removeAttribute("uname"); 5 // 2.跳转到index 6 request.getRequestDispatcher("/servlet/NewsServlet?action=null") 7 .forward(request, response);