Implementation code of forced login function in Java web project

  • 2021-12-12 04:38:05
  • OfStack

To avoid going directly to pages that exist in the project, use the filter filter

Create a new class loginFilter:


package com.tjcu.filter;
 
import com.tjcu.entity.User;
 
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
 
public class loginFilter implements Filter{
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
 
    }
 
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpSession session = request.getSession();
        User user = (User) session.getAttribute("user");
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        if (user!=null) {
            filterChain.doFilter(request,response);
        }else {
            response.sendRedirect(request.getContextPath()+"/login.jsp");
        }
    }
 
    @Override
    public void destroy() {
 
    }
}

Notify the server that this filter has been developed in the web file

web.xml:


  <filter>
    <filter-name>loginFilter</filter-name>
    <filter-class>com.tjcu.filter.loginFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>loginFilter</filter-name>
    <url-pattern>/main/*</url-pattern>
  </filter-mapping>

Related articles: