- jsp页面
- servlet
- Filter
登陆页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
登录信息
servlet
servlet处理登陆用户登录操作
package src.servlet;
import src.entity.UserInfo;
import src.impl.UserInfoServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
//这里使用注解的形式
@WebServlet(name="UserServlet",urlPatterns="/UserServlet")
public class UserServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
PrintWriter out=resp.getWriter();
HttpSession session = req.getSession();
String action=req.getParameter("action");
String username=req.getParameter("username");
String password=req.getParameter("password");
String checkbox=req.getParameter("checkbox");
if ("denglu".equals(action)){
List list = new UserInfoServiceImpl().DLUser(username,password);
if (list.size()>0){
session.setAttribute("login", username);
session.setMaxInactiveInterval(10*60);//设置session最大失效时间
//判断是否勾选了自动登录
if("on".equals(checkbox)){
cookie cookie1=new cookie("account",username);
cookie cookie2=new cookie("pwd",password);
resp.addcookie(cookie1);
resp.addcookie(cookie2);
}
out.println("");
}else{
out.println("");
}
}
out.flush();
out.close();
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
doGet(req,resp);
}
}
Filter
创建自定义过滤器
package src.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebFilter(filterName = "loginFilter",urlPatterns = "*.jsp")
public class loginFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)req;
HttpServletResponse response = (HttpServletResponse)res;
String url=request.getRequestURI();
int idx=url.lastIndexOf("/");
String endWith=url.substring(idx+1);
if (!endWith.equals("denglu.jsp")){
if (!isLogin(request)){
System.out.println("未登录");
response.sendRedirect("denglu.jsp");
}else{
System.out.println("自动登录成功!");
chain.doFilter(req,res);
}
}else{
chain.doFilter(req,res);
}
}
private boolean isLogin(HttpServletRequest req){
cookie[] cookies=req.getcookies();
String account="";
String pwd="";
if(cookies!=null&&cookies.length>0){
for (cookie cookie :cookies){
if (cookie.getName().equals("account")){
account=cookie.getValue();
}else if (cookie.getName().equals("pwd")){
pwd=cookie.getValue();
}
}
}
if (account.equals("")||pwd.equals("")){
return false;
}else{
return true;
}
}
@Override
public void destroy() {
}
}



