导航:首页 > 编程语言 > jsp自动登录

jsp自动登录

发布时间:2024-06-25 11:25:00

jsp 用Cookie实现自动登录

1.新建login.jsp和index.jsp。

2.在login.jsp中新建表单,跳转到index.jsp并提交name。

3.在index.jsp中新建如下代码

㈡ 鎬ユ眰鍩轰簬JSP鐨勪粠A绯荤粺鑷鍔ㄧ櫥褰曞埌B绯荤粺锛屽苟璺宠浆鍒癇绯荤粺鏌愪竴椤甸潰鐨勫疄鐜颁唬鐮侊紝鍦ㄧ嚎绛夛紒

鎴戝綋鏃跺ぇ鑷寸殑鍋氭硶鏄浜嬪厛鎶夾绯荤粺鐨勭殑鐢ㄦ埛鍚嶅拰瀵嗙爜淇濆瓨涓浠藉埌session涓锛岀劧鍚庢斁涓涓鏍¢獙鐢ㄦ埛鐨勫勭悊JSP鏂囦欢鍒癇绯荤粺涓锛岀劧鍚庡湪鐐瑰嚮閾炬帴鐨勬椂鍊欐妸A绯荤粺鐨勭敤鎴峰瘑鐮佷互form褰㈠紡鎻愪氦缁橞绯荤粺涓鐨勯偅涓狫SP澶勭悊鏂囦欢锛孞SP鏍¢獙姝g‘鍚庤烦杞鍒板瑰簲椤甸潰銆傝繖鏍峰仛瀛樺湪瀹夊叏椋庨櫓銆傘

㈢ jsp如何实现自动登录功能

1、在登录页面中添加一个复选框,让用户选择是否愿意在一定时间内实现自动登陆,例如两周。
代码:
<input type="checkbox" name="autologin">两周内自动登录
2、在负责处理登录过程的Servlet中,判断用户是否选择了该复选框。如果是,则执行这两个操作:向用户发送两个Cookie,以及向数据库写入一条相应的记录。
代码:

Cookie ckUsername, ckSessionid;
if (autologin.equals("on")) {
// 如果用户选择了“两周内自动登录”,则向用户发送两个cookie。
// 一个cookie记录用户名,另一个记录唯一的验证码,
// 并将此验证码写入数据库,以备用户返回时查询。(防止伪造cookie)
ckUsername = new Cookie("autoLoginUser", user.getUsername()); // user是代表用户的bean
ckUsername.setMaxAge(60 * 60 * 24 * 14); //设置Cookie有效期为14天
res.addCookie(ckUsername);
sessionid = session.getId(); // 取得当前的session id
ckSessionid = 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);
}

㈣ 利用JavaWeb设计简易聊天室,具体要求看补充

利用JavaWeb设计简易聊天室
这样你什么柑橘
比较

阅读全文

与jsp自动登录相关的资料

热点内容
中级数据库系统工程师应用技术考什么 浏览:404
博途编程如何设置停止键 浏览:409
python3删除文件内容 浏览:754
如何优化seo数据分析 浏览:132
64位win7下部分32位程序不能运行 浏览:206
dnf90版本剑魂钝器流 浏览:649
陌秀直播苹果怎么下载ipad 浏览:732
简述网络直接市场调查方式有哪些 浏览:683
怎么连接移动网络设置 浏览:781
电脑网卡怎么连接网络连接不上网吗 浏览:838
刷子公司网站怎么做 浏览:272
86版本艾尔文测试 浏览:714
深宫曲文件夹是哪个 浏览:618
苹果u盘修复工具哪个好用 浏览:124
微信动态表情包搞笑 浏览:436
可以去哪里找编程老师问问题 浏览:608
win10lol全屏 浏览:25
qq图片动态动漫少女 浏览:122
sai绘图教程视频 浏览:519
如何分析加载减速法数据 浏览:672

友情链接