jsp实现用户自动登录功能_JSP编程

来源:脚本之家  责任编辑:小易  

您可以这样写:就是当您修改的时候,数据是不是要传到servlet后台去?servlet对数据库进行修改了之后,再跳回原来的jsp页面。因为你这里没有用struts。所以不要用标签了。就直接用el表达式吧:在jsp的代码:${班级}"/>后面的属性同理。但是像这种无刷新修改的话,用ajax会有很好的体验效果。如果有需要,可以吧这个demo发给你www.zgxue.com防采集请勿采集本网。

理解并掌握Cookie的作用以及利用cookie实现用户的自动登录功能,实现下图效果

你可以用ajax处理,就像做用户验证一样!当文本框一失去焦点的时候,触发该事件!

当服务器判断出该用户是首次登录的时候,会自动跳转到登录界面等待用户登录,并填入相关信息。通过设置Cookie的有效期限来保存用户的信息,关闭浏览器后,验证是否能够自动登录,若能登录,则打印欢迎信息;否则跳转到登录页面。

简单的代码, 比较简单的登陆的servlet.参考代码 import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.Cookie;import

login.jsp

window.location.href=\"sss.jsp;}else { alert(\"身份错误!history.back();break;case't': String sql02=\"select*from userinfo where username='\"+name+\"' and userpassword='\"+password+\"' and

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><%request.setCharacterEncoding("GB2312"); %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" > <title>My JSP 'login.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" rel="external nofollow" > --> <script type="text/javascript"> window.onload = function(){ //获取submit var submit = document.getElementById("submit"); var name = document.getElementById("name"); //为submit绑定单击响应函数 submit.onclick = function(){ times = document.getElementsByName("time"); var count=0; for(var i=0;i<times.length;i++){ if(times[i].checked == true){ count++; } } if(count>=2){ alert("只能选择一个选项"); return false; } }; }; </script> </head> <body> <!-- 设置html页面 --> <form action="sucess.jsp" method="post"> 用户名:<input name="username" /><br/> <input type="checkbox" name="time" value="notSave" />不保存 <input type="checkbox" name="time" value="aDay" />一天 <input type="checkbox" name="time" value="aWeek" />一周 <input type="checkbox" name="time" value="forever" />永久 <br/><br/> <input type="submit" name="submit" id="submit" value="登录"/> </form> <% //读取session值 String val= (String)session.getAttribute("name"); //如果session不存在 if(val==null){ val ="不存在"; } out.print("当前\""+val+"\"用户可自动登录"); %> </body></html>

这个不是这样实现的,如果要实现这个功能,只能是反过来做: 如果用户在登录状态,则定期向服务器发送在线状态(登录) 如果超过一定时间,服务器没有获得某用户的在线状态,说明此用户已经离线

sucess.jsp

用户登录 用户名: input id=\"userName\"type=\"text\"value=\"\"/> input id=\"password\"type=\"password\"value=\"\"/> td> input id=\"yztext\"type=\"text\"value=\"\"/>;

%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" > <title>My JSP 'show.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" rel="external nofollow" > --> </head> <body> <% //获取username String name = request.getParameter("username"); //判断用户名是否存在 if(name != null && !name.trim().equals("")){ String[] time = request.getParameterValues("time"); //设置session值,便于login页面读取 session.setAttribute("name", name); //设置Cookie Cookie Cookie = new Cookie("name",name); //根据提交选项设置cookie保存时间 if(time != null){ for(int i=0;i<time.length;i++){ //不保存Cookie if(time[i].equals("notSave")){ Cookie.setMaxAge(0); } //保存一天Cookie if(time[i].equals("aDay")){ Cookie.setMaxAge(60*60*24); } //保存一周Cookie if(time[i].equals("aWeek")){ Cookie.setMaxAge(60*60*24*7); } //永久保存Cookie,设置为100年 if(time[i].equals("forever")){ Cookie.setMaxAge(60*60*24*365*100); } } } //在客户端保存Cookie response.addCookie(Cookie); } else{%> <%--用户名不存在则进行判断是否已有cookie --%> <% //获取cookie Cookie[] cookies = request.getCookies(); //cookie存在 if(cookies != null && cookies.length > 0){ for(Cookie cookie:cookies){ //获取cookie的名字 String cookieName = cookie.getName(); //判断是否与name相等 if(cookieName.equals("name")){ //获取cookie的值 String value = cookie.getValue(); name = value; } } } } if(name != null && !name.trim().equals("")){ out.print("您好: " + name+"欢迎登录"); } else{//否则重定向到登录界面 out.print("您还没有注册,2秒后转到注册界面!"); response.setHeader("refresh","2;url=login.jsp"); %> 如果没有自动跳转,请点击<a href="login.jsp" rel="external nofollow" >此处</a>进行跳转 <% //response.sendRedirect("login.jsp"); }%> </body></html>

实现效果:

1.

2.

3.

4.

5.

1、在登录页面中添加一个复选框,让用户选择是否愿意在一定时间内实现自动登陆,例如两周。代码:两周内自动登录2、在负责处理登录过程的Servlet中,判断用户是否选择了该复选框。如果是,则执行这两个操作:向用户发送两个Cookie,以及向数据库写入一条相应的记录。代码:Cookie ckUsername,ckSessionid;if(autologin.equals("on")){如果用户选择了“两周内自动登录”,则向用户发送两个cookie。一个cookie记录用户名,另一个记录唯一的验证码,并将此验证码写入数据库,以备用户返回时查询。(防止伪造cookie)ckUsername=new Cookie("autoLoginUser",user.getUsername());user是代表用户的beanckUsername.setMaxAge(60*60*24*14);设置Cookie有效期为14天res.addCookie(ckUsername);sessionid=session.getId();取得当前的session idckSessionid=new Cookie("sessionid",sessionid);ckSessionid.setMaxAge(60*60*24*14);res.addCookie(ckSessionid);在数据库中插入相应记录userSessionDAO.insertUserSession(user,sessionid);}3、实现自动登录。因为用户下次访问的时候,可能直接访问网站的任何页面(例如通过收藏夹),而不一定是首页或者登录页面,所以我们需要用Filter拦截到达该网站的所有请求,并执行自动登录。public void doFilter(ServletRequest req,ServletResponse resp,FilterChain chain)throws ServletException,IOException {HttpServletRequest request=(HttpServletRequest)req;HttpSession session=request.getSession(true);String username;String sessionid;此sessionid是上次用户登录时保存于用户端的识别码,用于用户后续访问的自动登录。不是本次访问的session id。Cookie[]cookies;CookieManager cm=new CookieManager();CookieManager是一个自定义的类,用于从Cookie数组中查找并返回指定名称的Cookie值。boolean isAutoLogin;如果session中没有user对象,则创建一个。User user=(User)session.getAttribute("user");if(user=null){user=new User();此时user中的username属性为"",表示用户未登录。}如果user对象的username为"",表示用户未登录。则执行自动登录过程。否则不自动登录。if(user.getUsername().equals("")){检查用户浏览器是否发送了上次登录的用户名和sessionid,如果是,则为用户自动登陆。cookies=request.getCookies();username=cm.getCookieValue(cookies,"autoLoginUser");sessionid=cm.getCookieValue(cookies,"sessionid");isAutoLogin=userSessionDAO.getAutoLoginState(username,sessionid);如果在数据库中找到了相应记录,则说明可以自动登录。if(isAutoLogin){user.setUsername(username);user.setNickname(DBUtil.getNickName(username));session.setAttribute("user",user);将user bean添加到session中。}}chain.doFilter(req,resp);}内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • jsp实现简单用户7天内免登录
  • jsp实现登录验证的过滤器
  • servlet+jsp实现过滤器 防止用户未登录访问
  • 利用jsp session对象保持住登录状态
  • jsp+mysql实现网站的登录与注册小案例
  • jsp实现用户登录、注册和退出功能
  • jsp基于xml实现用户登录与注册的实例解析(附源码)
  • javaweb实现用户登录注册功能实例代码(基于servlet+jsp+javabean模式)
  • jsp制作简单登录界面实例
  • jsp+servlet制作java web登录功能的全流程解析
  • jsp实现登录验证的过滤器
  • hibernate 查询方式总结
  • jsp开发之struts2实现下载功能的实例
  • java编程中更新xml文档的常用方法
  • jsp通用高大上分页代码(超管用)
  • tomcat 3.1在redhat下的安装
  • java布局管理器使用方法
  • 【算法】扑克发牌算法实现
  • jsp实现计算器功能(网页版)
  • jsp实现textarea中的文字保存换行空格存到数据库的方法
  • jsp如何实现自动登录功能
  • 我用jsp实现一个功能,登陆后,使得跳转的页面能自动获取数据库中相应用户的信息,如图所示
  • jsp中如何使用户未登录时,直接打开其他页面自动跳转到登陆页面。
  • java怎么实现jsp页面登陆用户名输入完密码自动cookie获取出来?不是一加载就获取用户名和密码
  • jsp页面实现自动查询填充功能
  • 不使用jsp,在servlet中实现使用cookie实现记住账号密码自动登陆
  • 在jsp中,如何实现普通用户和管理员登陆后跳转到不同的点jsp页面
  • 如何让jsp在session失效后自动刷新数据库中用户的登录状态?
  • 用jsp实现一个简单的登录界面,主要是验证码
  • 我想在jsp页面上实现一个子菜单,鼠标放上去自动可以显示出下拉菜单。
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全javascriptasp.netphp编程ajax相关正则表达式asp编程jsp编程编程10000问css/htmlflex脚本加解密web2.0xml/rss网页编辑器相关技巧安全相关网页播放器其它综合dart首页jsp编程jsp实现简单用户7天内免登录jsp实现登录验证的过滤器servlet+jsp实现过滤器 防止用户未登录访问利用jsp session对象保持住登录状态jsp+mysql实现网站的登录与注册小案例jsp实现用户登录、注册和退出功能jsp基于xml实现用户登录与注册的实例解析(附源码)javaweb实现用户登录注册功能实例代码(基于servlet+jsp+javabean模式)jsp制作简单登录界面实例jsp+servlet制作java web登录功能的全流程解析jsp实现登录验证的过滤器hibernate 查询方式总结jsp开发之struts2实现下载功能的实例java编程中更新xml文档的常用方法jsp通用高大上分页代码(超管用)tomcat 3.1在redhat下的安装java布局管理器使用方法【算法】扑克发牌算法实现jsp实现计算器功能(网页版)jsp实现textarea中的文字保存换行空格存到数据库的方法jsp el表达式详细介绍jsp下页面跳转的几种方法小结jsp生成页面验证码的方法[附代码在jsp页面如何获得url参数spring mvc 框架搭建配置方法及详jsp web.xml文件的作用及基本配置jsp自定义标签taglib实现过程重点servlet+jsp实现图片或文件的上传将html页改成jsp的两种方式jsp 连接mysql配置与使用jsp页面的动态包含和静态包含示例及介绍jsp 多条sql语句同时执行的方法jsp实现简单用户7天内免登录困扰jsp的一些问题与解决方法jsp页面缓存cache技术--浏览器缓存介绍及java输出系统当前的日期(年月日时分秒毫秒url中允许携带sessionid带来的安全隐患分jsp学习之java web中的安全控制实例详解hibernate+spring+struts扩展strutsjsp简明教程:令人兴奋的脚本编程
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved