您的位置:首页 > 产品设计 > UI/UE

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

2012-03-05 05:03 501 查看
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是一样的。.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐