请求头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"); } resp.setContentType("text/html;charset=utf-8"); PrintWriter out = resp.getWriter(); out.write("welcome!" + userName); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }登录页面代码(瞎写的)
登录界面 登录
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)