登录:
在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);