JSP编程,url中加斜杠和不加斜杠的区别

JSP编程,url中加斜杠和不加斜杠的区别(sendredirect,requestdispatcher,servlet,filter)

转自:http://blog.csdn.net/tanyit/article/details/7319372

url中加斜杠”/”和不加斜杠的区别:

设webapp为web程序包名

通常来说,不加斜杠的形式(如”example.jsp”)请求的是相对于当前页面路径的资源 http://localhost:8080/webapp/examole;

加斜杠的形式(”/example.jsp”)请求的是服务器根目录下的资源,完整的url是由服务器地址+/example构成的:http: //localhost:8080/example。如果页面不是放在服务器跟目录而是web程序包下,则不能使用加斜杠的形式。


 这个程序是在WebRoot下面文件member的文件下:  加 / 斜杠  <jsp:include page="/NavServlet?method=navList"></jsp:include>   

这个程序是在webroot下面: 不加 斜杠<jsp:include page="NavServlet?method=navList"></jsp:include>



sendRedirect和getRequestDispatcher方法中的url的不同:


response.sendRedirect(url):url=”example”, 地址相对于当前请求的目录; url=”/example”,请求的地址为服务器根目录下的example,如“http://localhost:8080/example” . 所以,sendRedirect方法中的url通常不在开头加”/”. sendRedirect的url区分方式和通常情况是一致的。

request.getRequestDispatcher(url)则与sendRedirect不同:url=”example”指向相对于当前请求地址的资源,加”/”开头指向web程序根目录下的资源/webapp/example。

servlet-mapping的url:servlet的url通常需要开头加斜杠。比如一个form的action的url=”a”( 因为/a就指向服务器根目录了),与之对应的servlet-mapping的url则为/a。

servlet-mapping的url的匹配方式:


/ex/* : 以斜杠开头,后缀通配符,/ex,/ex/a 都可匹配;

*.do : 通配符*后加点号,后缀名do结尾的,表示以 .do结尾的url都能匹配。如人人网的Home.do就是一例,struts中大量使用 .do和.action的后缀。这个后缀可以是开发者任意设定的,因为它并不指向实际存在的文件,都是用于和servlet或者filter匹配的。

/ex/ :是一种完全匹配,只有url是/ex/时才匹配,/ex ,/ex/a 都不行。

filter-mapping和servlet-mapping是一样的。.


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。