cookie登录功能实现
2024-08-31 18:51:47
站点经常使用的记住我,或是一周内自己主动登录,这些功能一般都是是用cookie进行登录的!以下对此功能进行分析:
package cookielogin; import java.io.IOException; import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class CookieLogin implements Filter { private static final String USERNAME = "username";
private static final String PASSWORD = "password"; @Override
public void destroy() {
// TODO Auto-generated method stub } @Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response; Cookie username = this.getCookie(req, USERNAME);
Cookie password = this.getCookie(req, PASSWORD); if (null != username && null != password) { System.out.println("用户登录");
// userService.login(username.getValue,password.getValue());
System.out.println("username:" + username.getValue() + ",password:"
+ password.getValue()); } else {
//保存cookie
resp.setCharacterEncoding("UTF-8"); Cookie nameCookie = new Cookie(USERNAME, "username"); Cookie passCookie = new Cookie(PASSWORD, "password"); resp.addCookie(nameCookie);
resp.addCookie(passCookie);
}
chain.doFilter(req, resp);
} public Cookie getCookie(HttpServletRequest request, String cookieName) { Cookie[] cookies = request.getCookies(); if (null == cookies) {
return null;
} for (Cookie c : cookies) {
if (c.getName().equals(cookieName)) {
return c;
}
} return null;
} @Override
public void init(FilterConfig arg0) throws ServletException { } }
測试时须要在web.xm增加拦截器!
最新文章
- 百度api短信开发
- sql2000添加表注释,列注释 及修改 删除 注释
- android 资讯阅读器(二)
- mysql简介
- Escape Sequences
- 剑指Offer:面试题17——合并两个排序的链表
- Querying mergeinfo requires version 3 of the FSFS filesystem schema
- 《DDNS服务器的搭建和案例解决方法》
- [转]IIS7.5 添加expires头 提高性能
- Linux 自动更新时间
- Delphi 调试BPL包中引用另外的BPL的方法。
- C 本地文件夸网文件Cp操作
- POJ 2533-Longest Ordered Subsequence(DP)
- NHProfiler使用方法
- chrome的功能Copy as cURL
- javascript的字符串操作
- 获取登陆用户的ip
- AI数据分析(二)
- python 实现wav的波形显示(时域和频域)
- 二十、Linux 进程与信号---非局部跳转
热门文章
- SDK应该包括什么东西
- [Node] Define MongoDB Model with Mongoose
- [Node.js] Provide req.locals data though middleware
- Linux下多线程查看工具(pstree、ps、pstack),linux命令之-pstree使用说明, linux 查看线程状态。 不指定
- thinkphp3.2.3 excel导出,下载文件,包含图片
- (一)RabbitMQ消息队列-RabbitMQ的优劣势及产生背景
- 【77.78%】【codeforces 625C】K-special Tables
- LinearLayout的一些注意事项 分类: H1_ANDROID 2013-10-26 23:01 856人阅读 评论(0) 收藏
- 最全面的iOS和Mac开源项目和第三方库汇总
- jquery修改获取radio的选中项