webroot
img
1.img
js
1.js
css
1.css
manager
manager.jsp
login.jsp
1.jsp
2.jsp
大体结构是这样登陆界面login.jsp(随时可以进去,包含1.img,1.js,1.css)
1.jsp 2.jsp manager.jsp必须login.jsp登陆后才能进去,登陆成功设置了session
怎么写这个filter
img
1.img
js
1.js
css
1.css
manager
manager.jsp
login.jsp
1.jsp
2.jsp
大体结构是这样登陆界面login.jsp(随时可以进去,包含1.img,1.js,1.css)
1.jsp 2.jsp manager.jsp必须login.jsp登陆后才能进去,登陆成功设置了session
怎么写这个filter
<filter-name>loginCheck</filter-name>
<filter-class>com.LoginCheckFilter</filter-class>
<init-param>
<param-name>loginJsp</param-name>
<param-value>/login.jsp</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>loginCheck</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
public class LoginCheckFilter
extends HttpServlet
implements Filter {
private String loginJsp;
public void init(FilterConfig filterConfig) throws ServletException {
this.loginJsp = this.filterConfig.getInitParameter("loginJsp");}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
String requestURI = req.getRequestURI();
try {
LoginUser webUser=(LoginUser)req.getSession().getAttribute(Constant.LOGIN_USER);
// log.info("请求的url:" + requestURI +"==webUser=="+webUser);
if(webUser == null){
if (
!requestURI.endsWith(this.loginJsp) ) {
log.info("请求的url:" + requestURI + "用户未通过验证时的URL:" + noLoginURL);
req.getRequestDispatcher(loginJsp).forward(req, res);
return;
}
} filterChain.doFilter(request, response);
}
catch (ServletException sx) {
filterConfig.getServletContext().log(sx.getMessage());
}
catch (IOException iox) {
filterConfig.getServletContext().log(iox.getMessage());
}
finally {
}
} public void destroy() {
}
}
js之类的文件在login.jsp中根本就显示不出来?不加过滤器能显示吗?