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 链接过来的,属于盗链行为,则重定向