url override implements session

url 重写实现会话概述

  URL重写是对GET请求参数的应用,当服务器响应浏览器上一次请求时,将某些相关信息以超链接方式响应给浏览器,超链接中包括请求参数信息。
  特点:URL必须以GET方式发送请求。
  缺点:URL在某些浏览器上最大长度为2000字符;不适用敏感数据的传递。
  应用:最典型应用是分页、辅助会话管理。


example

package com.test;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/search")
public class Search extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();

        out.println("<!DOCTYPE html>");
        out.println("<html>");
        out.println("<head>");
        out.println("<meta charset='UTF-8'>");
        out.println("<title>搜索结果</title>");
        out.println("</head>");
        out.println("<body>");

        String start = request.getParameter("start");
        if (start == null) {
            start = "1";
        }
        int count = Integer.parseInt(start);
        int begin = 10 * count - 9;
        int end = 10 * count;
        out.println("第" + begin + "到" + end + "搜索结果:<br>");
        for (int i=1; i<10; i++) {
            if (i == count) {
                out.println(i);
                continue;
            }
            out.println("<a href='search?start=" + i + "'>" + i +"</a>");
        }
        out.println("</body>");
        out.println("</html>");
        out.close();
    }
}

响应结果:

第1到10搜索结果:
2 3 4 5 6 7 8 9

猜你喜欢

转载自www.cnblogs.com/Mike_Chang/p/10053237.html