filter完成自动登录的代码实现
2017-11-03 00:10
330 查看
1,定义个javabean类,按照账号和密码设置变量定义好user类.
2,建一个servlet的包,定义一个处理登录界面的逻辑servlet,然后按照步骤编写代码
protected
voiddoGet(HttpServletRequest
request,HttpServletResponse response)
throws ServletException, IOException {
//获取提交的数据,组织为 JavaBean
Useruser =
newUser();
Stringusername =
request.getParameter("username");
Stringpassword =
request.getParameter("password");
user.setUsername(username);
user.setPassword(password);
//查询数据库,当前直接认为用户合法
//判断是否设置为自动登陆
Stringauto =
request.getParameter("auto");
//如果是,那么将账号密码设置进 Cookie
Cookiec =
newCookie("user",username +
"@"+ password);
if("yes".equals(auto)){
c.setMaxAge(60 * 60 * 24 * 7);
}else {
c.setMaxAge(0);
}
response.addCookie(c);
//将用户设置进 session
//request.setAttribute("user", user);
request.getSession().setAttribute("user",
user);
//请求转发到 index.jsp
request.getRequestDispatcher("/index.jsp").forward(request,
response);
}
这里index.jsp就是默认的首页登录界面.auto是在输入账号密码的jsp里设置的input的属性,
4000
<input
type="checkbox"name="auto"
value="yes">自动登录
</label> <label>
<input
type="checkbox"> 记住用户名
3,创建过滤器
public
voiddoFilter(ServletRequest
request,ServletResponse response, FilterChain
chain) throwsIOException, ServletException {
Useruser =
null;
//强转换来获取request.Cookie
HttpServletRequestr = (HttpServletRequest)request;
//获取cookie
Cookie[]cs =
r.getCookies();
//判断cookie是否存在,也就是判断之前是否已经登陆过一次网页
if(cs!=null){
for (Cookie
c: cs) {
if("user".equals(c.getName())){
//获取遍历后c的值(账号和密码)根据@来进行切割
String[]arr =
c.getValue().split("@");
//arr[0]是账号arr[1]是密码
user.setPassword(arr[1]);
user.setUsername(arr[0]);
//讲获取到的值传给session,进行下一步的页面访问
r.getSession().setAttribute("user",
user);
}
}
}
//放行语句
chain.doFilter(request,response);
}
这样再form表单里设置好属性,把获取到网页输入的账号的标签里设置成属性name=”username”, 把获取到网页输入的密码的标签里设置属性name=”password”
然后就可以run as进行调试了.
2,建一个servlet的包,定义一个处理登录界面的逻辑servlet,然后按照步骤编写代码
protected
voiddoGet(HttpServletRequest
request,HttpServletResponse response)
throws ServletException, IOException {
//获取提交的数据,组织为 JavaBean
Useruser =
newUser();
Stringusername =
request.getParameter("username");
Stringpassword =
request.getParameter("password");
user.setUsername(username);
user.setPassword(password);
//查询数据库,当前直接认为用户合法
//判断是否设置为自动登陆
Stringauto =
request.getParameter("auto");
//如果是,那么将账号密码设置进 Cookie
Cookiec =
newCookie("user",username +
"@"+ password);
if("yes".equals(auto)){
c.setMaxAge(60 * 60 * 24 * 7);
}else {
c.setMaxAge(0);
}
response.addCookie(c);
//将用户设置进 session
//request.setAttribute("user", user);
request.getSession().setAttribute("user",
user);
//请求转发到 index.jsp
request.getRequestDispatcher("/index.jsp").forward(request,
response);
}
这里index.jsp就是默认的首页登录界面.auto是在输入账号密码的jsp里设置的input的属性,
4000
<input
type="checkbox"name="auto"
value="yes">自动登录
</label> <label>
<input
type="checkbox"> 记住用户名
3,创建过滤器
public
voiddoFilter(ServletRequest
request,ServletResponse response, FilterChain
chain) throwsIOException, ServletException {
Useruser =
null;
//强转换来获取request.Cookie
HttpServletRequestr = (HttpServletRequest)request;
//获取cookie
Cookie[]cs =
r.getCookies();
//判断cookie是否存在,也就是判断之前是否已经登陆过一次网页
if(cs!=null){
for (Cookie
c: cs) {
if("user".equals(c.getName())){
//获取遍历后c的值(账号和密码)根据@来进行切割
String[]arr =
c.getValue().split("@");
//arr[0]是账号arr[1]是密码
user.setPassword(arr[1]);
user.setUsername(arr[0]);
//讲获取到的值传给session,进行下一步的页面访问
r.getSession().setAttribute("user",
user);
}
}
}
//放行语句
chain.doFilter(request,response);
}
这样再form表单里设置好属性,把获取到网页输入的账号的标签里设置成属性name=”username”, 把获取到网页输入的密码的标签里设置属性name=”password”
然后就可以run as进行调试了.
相关文章推荐
- java使用Filter实现自动登录的方法
- python自动登录12306并自动点击验证码完成登录的实现源代码
- 盒子 收藏帖子 转移-实现向网页自动填写用户名密码并自动点击登录按钮 完成全自动凳录
- JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
- 【Java基础】采用Filter实现AOP完成统一登录验证
- vim中实现php代码自动完成功能
- Linux expect实现自动登录脚本实例代码
- JavaWeb-过滤器Filter学习(三)实现用户的自动登录与IP黑名单过滤
- cookie加密解密全过程,使用filter实现自动登录
- phpstorm安装laravel-ide-helper实现自动完成、代码提示和跟踪
- php自动注册登录验证机制实现代码
- 使用Filter实现自动登录
- phpstorm安装laravel-ide-helper实现自动完成、代码提示和跟踪
- 黄聪:如何配置Emeditor实现代码智能识别自动完成功能
- JavaWeb学习记录总结(二十九)--Servlet\Session\Cookie\Filter实现自动登录和记住密码
- 在Eclipse中实现PyQT4代码自动完成
- php中实现自动注册自动登录验证代码
- 天涯论坛网SSO自动登录的c#实现.付源代码!!!
- vim中实现javascript代码自动完成功能
- php中实现记住密码自动登录的代码