referer 实现防盗链
request_referer.java :
- package cn.request;
- import java.io.IOException;
- import java.io.PrintWriter;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- //referer防盗链
- public class request_referer extends HttpServlet {
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- //设置浏览器以什么编码打开
- response.setCharacterEncoding("UTF-8");
- response.setContentType("text/html;UTF-8");
- String referer = request.getHeader("referer");//获取请求头
- //判断这个头是否为空,或这个头的首地址是否为http://localhost,如果不是则重定向
- if(referer==null || !referer.startsWith("http://localhost") )
- {
- response.sendRedirect("/Servlet_1/1.html");
- return;
- }
- String str="你好";
- response.getWriter().write(str);
- }
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- }
- }
如果在浏览器地址栏直接链接 : http://localhost:8080/Servlet_1/servlet/request_referer 则获取的请求头为空,因为不是从http://localhost 链接过来的,属于盗链行为,则重定向