java web实现自动登录功能
本文实例为大家分享了javaweb实现自动登录功能的具体代码,供大家参考,具体内容如下
主要思路就是:当用户访问网站的首页时,浏览器端会先检擦浏览器中存在的cookie中是否又登录的用户的用户名,如果有,则直接跳转至用户登录好的界面,如果没有,则重定向至登录界面,在服务器端创建该用户登录的cookie,响应时,将创建的cookie返回至浏览器端保存。
一、用户访问首页时检查cookie是否存在。
packageahpudong.com; importjava.io.IOException; importjava.io.PrintWriter; importjavax.servlet.ServletException; importjavax.servlet.annotation.WebServlet; importjavax.servlet.http.Cookie; importjavax.servlet.http.HttpServlet; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; @WebServlet("/index.do") publicclassindexextendsHttpServlet{ publicindex(){ super(); } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ Cookie[]cookies=request.getCookies(); if(cookies!=null){ for(Cookiecookie:cookies){ Stringname=cookie.getName(); Stringvalue=cookie.getValue(); if("name".equals(name)&&"chendong".equals(value)){ request.setAttribute(name,value); request.getRequestDispatcher("user.view").forward(request,response); return; } } } response.sendRedirect("login.jsp"); } }
二、确定用户登录的cookie不存在,在手动登录的过程中创建用户登录cookie。
packageahpudong.com; importjava.io.IOException; importjava.io.PrintWriter; importjavax.servlet.ServletException; importjavax.servlet.annotation.WebServlet; importjavax.servlet.http.Cookie; importjavax.servlet.http.HttpServlet; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; @WebServlet("/login.do") publicclassloginextendsHttpServlet{ publiclogin(){ super(); } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/html"); request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); PrintWriterout=response.getWriter(); Stringname=request.getParameter("name"); Stringpwd=request.getParameter("pwd"); Stringlogin=request.getParameter("auto"); if("chendong".equals(name)&&"123456".equals(pwd)){ if("on".equals(login)){ Cookiecookie=newCookie("name","chendong"); cookie.setMaxAge(7*24*60*60);//有效期为一个星期 response.addCookie(cookie); request.setAttribute("name",name); request.getRequestDispatcher("user.view").forward(request,response); } }else{ response.sendRedirect("login.jsp"); } } }
三、登录成功时的视图层
packageahpudong.com; importjava.io.IOException; importjava.io.PrintWriter; importjavax.servlet.ServletException; importjavax.servlet.annotation.WebServlet; importjavax.servlet.http.HttpServlet; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; @WebServlet("/user.view") publicclassUserextendsHttpServlet{ publicUser(){ super(); } publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ processRequest(request,response); } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ processRequest(request,response); } publicvoidprocessRequest(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setCharacterEncoding("utf-8"); PrintWriterout=response.getWriter(); Stringname=(String)request.getAttribute("name"); out.println(""); out.println(""); out.println("AServlet "); out.println(""); out.println(""+"welcome"+name+"login"+"
"); out.println(""); out.println(""); out.flush(); out.close(); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。