package www.yema.com;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.HttpServletRequest;
import javax.servlet.http.HttpSession;public class MyFilter implements Filter {
   


public void destroy() {
// TODO Auto-generated method stub } public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)req;
// String url = request.getContextPath() + request.getServletPath();
String servletPath = request.getServletPath();
if(servletPath.equals("/index.jsp") || servletPath.equals("/loginServlet")){
chain.doFilter(req, resp);
return;
}


HttpSession session = request.getSession();
User user = (User)session.getAttribute("user");
if(user == null){
//非法访问


return;
} else {
//合法访问

chain.doFilter(req, resp);
} } public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub }}

解决方案 »

  1.   

    Tomcat 自带的配置选项吧,conf/web.xml中listings默认就是false的,不允许list目录
    楼上过滤器正解,我的方式属偷懒式的
      

  2.   

    Tomcat 自带的配置选项吧,conf/web.xml中listings ,改为true。    <servlet>
            <servlet-name>default</servlet-name>
            <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
            <init-param>
                <param-name>debug</param-name>
                <param-value>0</param-value>
            </init-param>
            <init-param>
                <param-name>listings</param-name>
                <param-value>true</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
      

  3.   

     2楼和3楼的简单实用,过滤器一般到j2ee中才用到,小项目没必要