request.getPathInfo();

request.getPathInfo();

这个方法返回请求的实际URL相对于请求的serlvet的url的路径。(个人理解。)
比如,有一个Servlet的映射是这样配置的:

<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/servlet/test/*</url-pattern>
</servlet-mapping>

为servlet配置的访问路径是:/servlet/test/*

我只要访问:
http://localhost:8080/dwr/servlet/test/这里可以是任何东西

就可以访问那个servlet. dwr 是项目的名字

比如,我用这个 URL 来访问它:

http://localhost:8080/dwr/servlet/test/joejoe1991/a.html

这个实际的URL,相对于那个servlet 的url ("/servlet/test/*")的路径是:
/joejoe1991/a.html

所以 request.getPathInfo() 方法返回的就是:

"/joejoe1991/a.html"

如果你的URL里有查询字符串,getPathInfo() 方法并不返回这些查询字符串。

例如:

http://localhost:8080/dwr/servlet/test/joejoe1991/a.html?name=test

getPathInfo() 返回的仍然是:

"/joejoe1991/a.html" ,而并不包括后面的"?name=test"

我们可以利用这个方法去做类似于多用户博客系统的那种URL。

都是http://www.xxx.com/blog/ 开头
后面跟的是用户名,
比如我要访问joejoe1991的博客:

http://www.xxx.com/blog/joejoe1991

这个joejoe1991并不是一个真实存在的目录。

建一个servlet,配置路径为:/blog/*

然后在这个servlet里调用request.getPathInfo() 方法。

比如:http://www.xxx.com/blog/jjx

那request.getPathInfo() 方法返回的就是jjx ,表示要访问jjx的博客。

这时再去数据库里查相应的数据就好。

posted @   java资料收集  阅读(2151)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示