只要搞清楚“/”代表的是什么就行了:
(1).在form,js,css,sendRedirect里边,代表的是http://127.0.0.1/;
(2).在web.xml中的url-pattern,forword代表的是 http://127.0.0.1/myweb。myweb是项目名
1. 跳转方式
http://localhost:8080/Test应用
运用forward方法只能重定向到同一个Web应用程序中的一个资源。而sendRedirect方法可以让你重定向到任何URL。
表单form的action= "/uu ";sendRedirect( "/uu ");表示相对于服务器根路径。如http://localhost:8080/Test应用(则提交至http://localhost:8080/uu);
Forward代码中的 "/uu "则代表相对与WEB应用的路径。如http://localhost:8080/Test应用(则提交至http://localhost:8080/Test/uu);
2. (运用RequestDispatcher接口的Forward)方法
forward()无法重定向至有frame的jsp文件,可以重定向至有frame的html文件,
同时forward()无法在后面带参数传递,比如servlet?name=frank,这样不行,可以程序内通过response.setAttribute( "name ",name)来传至下一个页面.
转发后浏览器地址栏URL不变.
只有在客户端没有输出时才可以调用forward方法。如果当前页面的缓冲区(buffer)不是空的,那么你在调用forward方法前必须先清空缓冲区。
"/ "代表相对与web应用路径
RequestDispatcher rd = request.getRequestDispatcher( "/ooo ");
rd.forward(request, response);提交至http://localhost:8080/Test/ooo
RequestDispatcher rd = getServletContext().getRequestDispatcher( "/ooo ");
rd.forward(request, response);提交至http://localhost:8080/Test/ooo
RequestDispatcher rd =getServletContext().getNamedDispatcher( "TestServlet ");(TestServlet为一个 <servlet-name> )
rd.forward(request, response);提交至名为TestServlet的servlet
如果在 <jsp:forward> 之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用,这一点应该特别注意。
另外要注意:它不能改变浏览器地址,刷新的话会导致重复提交
从http://localhost:8080/Test/gw/page.jsp中转发
<jsp:forward page= "OtherPage.jsp "/> 在JSP页面被解析后转换成pageContext.forward( "OtherPage.jsp ");
"/OtherPage.jsp "提交到http://localhost:8080/Test/OtherPage.jsp
"OtherPage.jsp "提交到http://localhost:8080/Test/gw/OtherPage.jsp
(运用HttpServletResponse接口的sendRedirect)方法302
是在用户的浏览器端工作,sendRedirect()可以带参数传递,比如servlet?name=frank传至下个页面,
同时它可以重定向至不同的主机上,sendRedirect()可以重定向有frame.的jsp文件.
假设转发代码包含于注册的servlet-url为/ggg/tt;jsp为/ggg/tt.jsp:
绝对路径:response.sendRedirect( "http://www.brainysoftware.com ")发送至http://www.brainysoftware.com
根路径:response.sendRedirect( "/ooo ")发送至http://localhost:8080/ooo
相对路径:response.sendRedirect( "ooo ")发送至http://localhost:8080/Test/ggg/ooo,
sendRedirect等同于此方式
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
String newLocn = "/newpath/jsa.jsp ";
response.setHeader( "Location ",newLocn);
(Meta Refresh)方法200
这种方法是由HTML提供的,Meta本身就是HTML标签。使用方法是: <meta http-equiv= "refresh " content= "5; url=http://www.dreamdu.com/ " />
相应的java代码
String content=stayTime+ ";URL= "+URL;
response.setHeader( "REFRESH ",content);
3. 使用response.sendRedirect()地址栏将改变
使用request.getRequestDispatcher().forward(request,response)地址栏中的信息保持不变
4. request.setAttribute存的东西
只用通过方法2跳转 才能在新页取出来
5. redirect 会首先发一个response给浏览器, 然后浏览器收到这个response后再发一个requeset给服务器, 然后服务器发新的response给浏览器. 这时页面收到的request是一个新从浏览器发来的.
forward 发生在服务器内部, 在浏览器完全不知情的情况下发给了浏览器另外一个页面的response. 这时页面收到的request不是从浏览器直接发来了,可能己经放了数据.
所以: request.setAttribute存的东西 只用通过方法2跳转 才能在新页取出来
相关推荐
在这个模型中,C代表客户(Client),M代表中间人(Middleware),S代表服务器(Server)。C/M/S模型通过消息传递实现客户端与服务端之间的数据交换,使得多个进程可以并行工作,提高系统的效率和响应性。 在提供的...
4. 设备集成:如果J5代表某种硬件,那么这部分可能涉及到如何将处理过的图像数据与硬件设备进行交互,比如显示、传输或控制设备的某些功能。 5. 时间序列分析:两张时间接近的截图可能表示一个连续的操作过程,学习...
帧缓冲是操作系统用来存储屏幕像素数据的内存区域,而`/dev/graphics/fb0`是这个内存区域的一个接口,通常代表了设备的主显示屏。在安卓系统上,我们可以打开并读取这个设备节点,以获取屏幕的基本信息,包括分辨率...
2. **.lic 文件**:`.lic` 文件通常代表软件许可证文件,用于验证用户是否具有使用特定软件的权限。在这个例子中,`vivado_lic2037.lic`可能是Vivado软件的一个许可证文件,它包含了激活Vivado的密钥或授权信息。...
17.4. 只要您使用该项目或其部分,即代表您默认同意本声明且不用于商业用途 18.5. 若您正在使用该项目或其部分发布商业版或用于盈利目的,请您尊重我们的声明, 19.立即删除与我们相关的代码或程序,并做好善后...
- "G"代表服务时间分布为一般分布(General),意味着服务时间可以是任意的概率分布,但通常假设其为负指数分布或爱尔朗分布。 - "k"指的是服务台数量,即系统中同时处理请求的工作单元数量。 在高速公路收费站的...
在这个模型中,“M”代表Poisson过程,意味着顾客到达的时间间隔遵循泊松分布;第二个“M”代表服务时间服从指数分布;而“1”则表示只有一个服务台。这种模型广泛应用于分析和预测各种服务系统的性能,如银行、呼叫...
- **UID**:用户ID用于区分不同的用户,通常 0 代表超级用户 root,1-499 是系统用户,500 以后是普通用户。 - **GID**:组ID用于区分不同用户组,与 `/etc/group` 文件关联。 - **家目录**:每个用户的个人空间,...
在这个模型中,“m”通常代表“Markovian”,即马尔科夫过程,意味着到达和服务时间都遵循指数分布,这是随机过程的一种理想化假设。第一个“m”表示顾客到达的平均速率(λ),第二个“m”表示理发师服务顾客的平均...
PL代表Procedural Language,SQL则代表Structured Query Language。这个"PL/SQL安装包"是一个免安装版本的Oracle编写工具,意味着用户无需经过复杂的安装过程,只需解压即可使用,大大简化了开发环境的搭建步骤,为...
在描述中提到的“AES/CBC/PKCS5Padding”,分别代表了AES算法的不同部分: - AES:AES是高级加密标准,由NIST(美国国家标准与技术研究所)在2001年标准化,取代了之前的DES加密标准。它有三种不同尺寸的密钥,分别...
标题 "tf++///////" 和描述 "tf++///////" 提供的信息有限,但我们可以根据提供的标签 "ppt" 和压缩包中的文件名来推测这可能与一个基于TensorFlow的项目有关,尤其是考虑到“tf”通常代表TensorFlow,一个广泛使用...
总结起来,C/S和B/S架构分别代表了本地应用和Web应用的两种典型模型,而分层和多层架构则提供了系统设计的组织原则,帮助我们构建灵活、可维护的大型软件系统。理解并熟练运用这些知识点,对于任何IT从业者来说都是...
- 第一个M代表顾客到达的时间间隔服从指数分布; - 第二个M代表服务时间也服从指数分布; - 1表示只有一个服务窗口; - K表示队列的最大容量。 ### 3. 实验设计 #### a. 网络拓扑 本次实验采用了一个简单的两节点单...
Wireshark捕获得到的数据包,不同颜色代表的不同含义
在Linux系统中,`/etc/passwd` 文件包含了所有用户的账户信息,包括用户名(root)、密码(x,代表加密后的密码)、用户ID(0,root用户的UID总是0)、组ID(0,与用户ID相同)、用户全名(root)、用户主目录(/...
产品型号后缀通常表明封装类型,如AT24C02D代表8脚PDIP封装,AT24C02P代表8脚SOP封装。标准包装数量一般为50片或100片一管。 知识点八:操作细节 芯片在接收到启动信号后开始数据的读写操作,这些操作包括:地址和...
标题中的"ece5760-final-cwf38-mao65-as889.zip"可能代表一个课程项目,可能是电子工程(Electrical and Computer Engineering,简称ECE)5760课程的最终作业,由学生CWF38、MAO65和AS889共同完成。"HPPTS.//MAO889....
1. 词法分析:编译器首先将源代码分解成称为“标记”的小单元,这些标记代表了语言的基本元素,如关键字、标识符、运算符和常量。 2. 语法分析:接着,编译器检查标记序列是否符合语言的语法规则,生成抽象语法树...
只要您使用该项目或其部分,即代表您默认同意本声明且不用于商业用途 5. 若您正在使用该项目或其部分发布商业版或用于盈利目的,请您尊重我们的声明, 立即删除与我们相关的代码或程序,并做好善后处理 //////...