本文共 2042 字,大约阅读时间需要 6 分钟。
一、什么是Referer
HTTP headers是HTTP请求和相应的核心模块,它承载了关于客户端浏览器、请求页面、服务器等相关信息。Referer是HTTP头中的一个属性,告诉服务器我是从哪个页面链接过来的。
<a href="">
。 2.表单提交。二、request.getHeader(“referer”)使用步骤
第一步: web.xml中配置过滤器
safeChainFilter com.bh.filter.SafeChainFilter safeChainFilter /*
第二步:过滤器实现doFilter方法
@Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) res; String requestAddress = request.getRequestURL().toString(); //得到用户是从什么页面连过来的 String requestHeader = request.getHeader("referer"); System.out.println("requestAddress: "+requestAddress); System.out.println("requestHeader: "+requestHeader); //对样式文件不做过滤 if (requestAddress.indexOf("/css/")<0 && requestAddress.indexOf("/js/")<0 && requestAddress.indexOf("/images/")<0) { if (!requestAddress .equals("http://localhost:8080/FangDaoLian_Test/index.jsp")) { if (!requestAddress.equals("http://localhost:8080/FangDaoLian_Test/Login.jsp")) { if (requestHeader!=null) { if (!requestHeader.startsWith("http://localhost:8080") || !requestHeader .startsWith("http://localhost:8080")) { response.sendRedirect("error.gif"); return; } } else { //直接在浏览器里输入有referer的页面,返回是null response.sendRedirect(request.getContextPath() + "/Login.jsp"); return; } } } } chain.doFilter(req, res); }
转载地址:http://qwmgb.baihongyu.com/