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的属性,
<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进行调试了.