JavaWeb 使用Filter实现自动登录_第1页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、javaweb 使用filter实现自动登录javaweb 用法filter实现自动登录 思路用法cookie存储账号、密码,用法filter拦截,从cookie中取出账号、密码。若用户要注销|登出、不再想用法自动登录,将cookie的有效期设置为0即可。扫瞄器可以查看cookie,不能挺直存储账号、密码的明文,用法cookie存储账号、密码时需要加密,从cookie中取出来时需要解密。每次http哀求都用法filter拦截,从cookie中解密出账号、密码,每次都要解密,铺张时光。第一次从cookie中解密出账号、密码后,可以将账号、密码放到session域中,会话期间挺直从session中

2、取,不必再解密。 登录页面 用户名: 密码: 登录 $requestscope.errormsg el表达式没有空指针异样,没有时返回空串。所以没有errormsg时, $requestscope.errormsg 也不会出错。 将登录页面设为项目初始页面 /login.jsp 处理登录表单的servlet 1 webservlet("/loginservlet") 2 public class loginservlet extends httpservlet 3 protected void dopost(httpservletrequest reques

3、t, httpservletresponse response) throws servletexception, ioexception 4 string user=request.getparameter("user"); 5 string pwd=request.getparameter("pwd"); 6 7 /衔接数据库,检查是否正确 8 /. 9 if (true) 10 /放到session中11 httpsession session = request.getsession();12 session.se

4、tattribute("user",user);13 session.setattribute("pwd","pwd");1415 /将值加密后存储在cookie中,此处略过加密16 cookie cookie=new cookie("autologin",user+"-"+pwd);17 /囫囵项目中可用18 cookie.setpath(request.getcontextpath();19 /这个域名地址下的全

5、部webapp都可用20 /cookie.setpath("/");21 cookie.setmaxage(60*60*24*7);22 response.addcookie(cookie);2324 /重定向到目标页面。request.getcontextpath()猎取的是当前web应用的根名目25 response.sendredirect(request.getcontextpath()+"/index.jsp");26 /不能这样写,这样写表示域名下的index.jsp,不是域名/web应用/index.jsp。

6、27 /response.sendredirect("/index.jsp");28 29 else30 /转发到登录页面,附加错误信息31 request.setattribute("errormsg","账户名或密码错误");32 request.getrequestdispatcher("/login").forward(request,response);33 3435 3637 protected void doget(httpservlet

7、request request, httpservletresponse response) throws servletexception, ioexception 38 dopost(request,response);39 40 首页hello,$sessionscope.user filter实现自动登录 1 webfilter("/*") 2 public class handlerfilter implements filter 3 public void destroy() 4 5 6 public void dofilter(servletr

8、equest req, servletresponse resp, filterchain chain) throws servletexception, ioexception 7 /统一全站编码 8 req.setcharacterencoding("utf-8"); 9 resp.setcontenttype("text/html;charset=utf-8"); 1011 /servletrequest不能猎取session、cookie,需要强转为httpservletrequest12 httpservletr

9、equest httpreq = (httpservletrequest) req;1314 /检查session中有没实用户信息15 httpsession session = httpreq.getsession();16 if (session.getattribute("user")=null)17 /假如session中没有,从cookie中找autologin。可能是会话结束后再次拜访,比如离开网站30min(session默认超时时光)后再次拜访、关闭扫瞄器后重新打开再次拜访。18 cookie cookies = httpreq.getcoo

10、kies();19 /需要先检测cookies是否为null,为null时会报空指针异样20 if (cookies!=null)21 for (cookie cookie:cookies)22 if (cookie.getname().equals("autologin") 23 /需要先解密,此处略过24 /.25 string userinfo=cookie.getvalue().split("-");26 session.setattribute("user",userinfo0

11、);27 session.setattribute("pwd",userinfo1);28 29 30 31 3233 chain.dofilter(req, resp);34 3536 public void init(filterconfig config) throws servletexception 3738 3940 servletrequest不能猎取session、cookie,需要强转为httpservletrequest才可以。 处理注销 | 登出 | 不再用法自动登录 的servlet 1 webservlet("/l

12、ogoutservlet") 2 public class logoutservlet extends httpservlet 3 protected void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception 4 /从session中移出用户信息 5 httpsession session = request.getsession(); 6 session.removeattribute("user&am

13、p;quot;); 7 session.removeattribute("pwd"); 8 9 /删除cookie,此处采纳同名笼罩,也可以遍历猎取,再将有效期设为0 10 cookie cookie=new cookie("autologin","");11 cookie.setpath(request.getcontextpath();12 cookie.setmaxage(0);13 response.addcookie(cookie);14 1516 protected void doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception 17 dopost(request,response);18 19 猎取当前webapp的根名目: string path1 = request.getcontextpath(); /通过request对象来猎取 string path2 = getservletcontext().getcontextpath

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论