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是一样的。.

时间: 2024-10-10 07:36:08

JSP编程,url中加斜杠和不加斜杠的区别的相关文章

13 类对象的声明中加小括号{}和不加小括号{}的区别

以下代码有什么问题? struct Test { Test( int ) {} Test() {} void fun() {} }; void main( void ) { Test a(1); a.fun(); Test b(); b.fun(); } A b.fun()会出错 B Test结构的定义中应该加上public修饰符,才能main函数值调用该类的方法 C Test(int) {}改成Test(int a) {} D 以上说法都错误 解答: b.fun();   //b不是Test的

如何在Liferay Custom JSP Fragment项目中加Java代码

先附上大神原文链接 Adding Dependencies to JSP Fragment Bundles 在开发Liferay的过程中,我们常常会利用Module Fragment来修改Liferay原有的JSP页面,在修改原有页面的同时,我们还希望加上自己的逻辑,同时加上一些Java代码,这些要如何做到呢? 先占个坑,以后填,附上代码地址https://github.com/JoyeLuo/jsp-fragment

POST对URL中末尾斜杠的差异

在调试一个接口,php的,文件名是index.php,放在目录/checkmail/下. 访问时的url写的是/checkmail,调用时用的是JQuery的post方法. 开始发现,被调用时检查传入的参数没有传过来. 跟踪了传过来的所有参数,发现$_SERVER['REQUEST_METHOD']得到是GET. 明明是POST调用的,为什么得到的是GET呢? 先百度了一下,没找到答案. 于是各种尝试,最后在调用的url中,把反斜杠/加上,发现参数得到了. 也就是说,/checkmail 和 /

nginx url自动加斜杠问题

一.首先对比说明Nginx以下两个现象: 1. 访问的uri最后带斜杠 http://localhost/product/    >>>>  查找 product下的index页面,存在就返回:不存在且未开启自动索引目录选项(指令是:autoindex on),则报403错误 2. 访问的uri最后不带斜杠 http://localhost/product     >>>>  查找product文件,存在就返回:若存在product的文件夹,会产生301跳转

[Asp.net]c#中的斜杠和反斜杠

引言 在外地出差,给客户部署项目,三家做的项目要在一起集成,这就造成数据格式不同,路径中的斜杠和反斜杠造成了很大的问题. 查了一下这方面的资料,这里做一些记录,算是一个小结吧. 正斜杠(/)与反斜杠(\)总结 正斜杠/表示除法,分隔.在windows系统中通常用来分隔命令行参数,/表示选项等.不能作为文件名. 反斜杠\,在windows系统中用来表示目录. 而在unix系统中,/表示目录.由于web遵循unix命名,所以在网址(URL)中,/表示目录. C#中反斜杠\与斜杠/ 转移字符路径的问题

网站URL网址末尾是否应该使用反斜杠

当对网站进行SEO优化时,难免会遇到因为URL导致的重复页面问题,其中一个比较常见的现象就是因页面地址后是否有添加反斜杠造成的,举例如下: 链接A: www.example.com/abc/ 链接B: www.example.com/abc 以上的两个链接唯一的区别就是结尾的反斜杠,其对应的内容相同,从普通用户角度而言,这样的链接其实就是一个,而从搜索引擎而言,不同的URL地址对应同样的内容,那么就容易被判断成重复内容,这也是我们在优化时最不愿意见到的现象. 那么网站在进行URL优化时,是否应该

MySQL中如何插入反斜杠,反斜杠被吃掉,反斜杠转义(转)

MySQL中如何插入反斜杠,反斜杠被吃掉,反斜杠转义 问题描述:mysql中带有反斜杠的内容入库后,发现反斜杠无故失踪了(俗话说被吃掉了) 例:插入insert into tb('url') values('absc\eeee'); 结果数据库里的内容是:absceeee(反斜杠没了呢) 这么详细了相信大家都搞清楚问题了吧,下面看解决方案. 解决方案:用addslashes(),mysql_escape_string()等函数进行处理,也就是在插入数据库前,把内容处理一下  如:$cc = ad

绝对路径以及相对路径中的斜杠和反斜杠

一.C++文件中的路径 文件路径中的正斜杠和反斜杠 正斜杠,又称左斜杠,符号是"/": 反斜杠,也称右斜杠,符号是"\". 文件路径的表示可以分为绝对路径和相对路径: 1. 绝对路径 绝对路径表示相对容易, 例如要打开"C: \Documents andSettings\All Users\My Documents\Downloads\pillow.jpg",则: Fp =fopen("C: \\Documents andSetting

计算机中的正斜杠(/)与反斜杠(\)的区别

正斜杠,符号是"/";反斜杠,符号是"\". 一直很不解正斜杠与反斜杠到底有何区别?经过一段时间的理解,得出 DOS路径: E:\开发资料\ASP.NET高级开发   ...这是反斜杠的作用后面跟着的是文件名 csc /t:library /r:System.Web.dll /out:d:\CustomHandler.dll d:\CustomerHandler.cs  ...这就是正斜杠后面是一个名令的参数dir 是命令. Windows系统: 反斜杠\,在win