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的博客。 这时再去数据库里查相应的数据就好。