import javax.servlet.Filter; 
import javax.servlet.FilterChain; 
import javax.servlet.FilterConfig; 
import javax.servlet.DispatcherType;
import javax.servlet.ServletException; 
import javax.servlet.ServletRequest; 
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.annotation.WebFilter; 
import java.io.IOException;  

import java.io.PrintWriter;

/*
过滤txt、ini、jsp文件:凡是Get Post直接文件的全部禁止
*/

@WebFilter(
  value={
    "*.txt",
    "*.ini",
    "*.jsp"
  },
  dispatcherTypes = {DispatcherType.REQUEST})  //过滤请求
public class Filter_WenJian implements Filter {   
  
  @Override
  public void init(FilterConfig filterConfig) throws ServletException {
    //初始化,服务器启动时执行
  }    
  @Override   
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    HttpServletRequest req = (HttpServletRequest)request;
    HttpServletResponse res = (HttpServletResponse)response;
    request.setCharacterEncoding("UTF-8"); //设置请求文档编码
    response.setCharacterEncoding("UTF-8"); //设置响应文档编,println中文乱码设置这个值
    response.setContentType("text/html;charset=utf-8"); //println输出标签字符串,向浏览器声明其类型与编码格式

    //拦击直接地址
    PrintWriter out = response.getWriter();
    
    if(req.getRequestURI().equals("/")){  //域名链接,允许,如:localhost
      chain.doFilter(request, response); 
    }else{
      out.println("<h1>请输入正确页面地址。。。</h1>");
    }
  }    

  @Override   
  public void destroy() {
    // 销毁,服务器关闭时执行
  } 
}