栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java使用过滤器自动登录

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java使用过滤器自动登录

过滤器自动登录
  • jsp页面
  • servlet
  • Filter

jsp页面

登陆页面

<%@ 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() {
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/305444.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号