请求头referer的作用是记录了上一个请求页面的URL,比如第一次我请求了页面A,当我第二次请求页面B的时候,第二次请求的头信息中referer属性的值就是A页面的URL。
这个有什么用呢?可以做一个简单的登录拦截验证,就是你必须从我指定的页面才能进入首页,从其他的页面进入或者直接通过URL访问都会被拦截。这个后面主要是通过过滤器来实现,主要目的是为了练习一下这个头信息的用法。
servlet代码
@WebServlet("/demo12")
public class ServletDemo12 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
String userName = req.getParameter("username");
String password = req.getParameter("password");
String url = req.getHeader("referer");
if(url == null || !url.contains("http://localhost:8080/servlets/login.html")){
System.out.println("未知位置访问,已跳转到标准登录页面");
resp.setStatus(302);
resp.setHeader("location","/servlets/login.html"<