Java Servlet学习笔记——3.URL重写

本文介绍了Java Servlet中的URL重写技术,详细讲解了其原理、限制和应用场景。通过示例代码展示了如何在Servlet中实现URL重写,用于记录会话信息。同时,讨论了URL重写的优缺点,以及在实际操作中的运行流程。
摘要由CSDN通过智能技术生成

写在前面

继续学习Java Servlet,这一部分学习URL重写,虽然这些技术用的不多,而且代码也比较简单,但是我还是决定一节一节的记录。仔细看看示例代码还是有很多内容。

URL重写

URL重写是一种会话跟踪技术, 它将一个或多个token添加到URL的查询字符串中, 每个token通常为key=value形式, 如下:

url?key-1=value-1&key-2=value-2 ... &key-n=value-n

注意, URL和tokens间用问号(? ) 分割, token间用与号(&) 。

URL重写适合于tokens无须在太多URL间传递的情况下, 然而它有如下限制:

  • URL在某些浏览器上最大长度为2000字符;
  • 若要传递值到下一个资源, 需要将值插入到链接中, 换句话说, 静态页面很难传值;
  • URL重写需要在服务端上完成, 所有的链接都必须带值, 因此当一个页面存在很多链接时, 处理过程会是一个不小的挑战;
  • 某些字符, 例如空格、 与和问号等必须用base64编码;
  • 所有的信息都是可见的, 某些情况下不合适。

因为存在如上限制, URL重写仅适合于信息仅在少量页面间传递, 且信息本身不敏感。

示例代码

下面将构造一个Top10Servlet类会显示最受游客青睐的10个伦敦和巴黎的景点。 信息分成两页展示, 第一页展示指定城市的5个景点, 第二页展示另外5个。 该Servlet使用URL重写来记录所选择的城市和页数。 该类扩展自HttpServlet, 并通过/top10访问。

package app02a.urlrewriting;

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

@WebServlet(name = "Top10Servlet", urlPatterns = { "/top10" })
public class Top10Servlet extends HttpServlet {
   
    private static final long serialVersionUID = 987654321L;
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值