81,091
社区成员
发帖
与我相关
我的任务
分享
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>filter.LoginFilter</filter-class>
<init-param>
<description>
</description>
<param-name>excepUrl</param-name>
<param-value>/login.jsp</param-value>
</init-param>
</filter>
对应的你的filter就应该这样写
public class LoginFilter extends HttpServlet implements Filter {
/**
*
*/
private static final long serialVersionUID = 3441961266017874098L;
private String excepUrl;
public void init(FilterConfig arg0) throws ServletException {
excepUrl = arg0.getInitParameter("excepUrl");
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest arg0 = (HttpServletRequest) request;
HttpServletResponse arg1 = (HttpServletResponse) response;
String servletPath = arg0.getServletPath();
if (servletPath.equals(excepUrl)) {
filterChain.doFilter(request, response);
return;
}
Object user = arg0.getSession().getAttribute("loginUser");
if (user == null) {
arg0.getSession().setAttribute("msg", "请先登录");
arg1.sendRedirect(arg0.getContextPath() + "/login.jsp"); // 返回登录界面
return;
}
filterChain.doFilter(request, response);
}
}
package filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import entity.User;
public class LoginFilter extends HttpServlet implements Filter{
public void init(FilterConfig arg0)throws ServletException{}
public void doFilter(ServletRequest request,ServletResponse response,FilterChain filterChain) throws IOException,ServletException{
HttpServletRequest arg0 = (HttpServletRequest)request;
HttpServletResponse arg1 = (HttpServletResponse) response;
User user = (User)arg0.getSession().getAttribute("loginUser");
if(user==null){
arg0.getSession().setAttribute("msg", "请先登录");
arg1.sendRedirect(arg0.getContextPath()+"/login.jsp"); //返回登录界面
return;
}
filterChain.doFilter(request,response);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name></display-name>
<!-- 配置Struts2 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 部署filter -->
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>filter.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>