`
linxuexin
  • 浏览: 26938 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Servlet中转发和重定向的路径问题

    博客分类:
  • JAVA
阅读更多

Servlet中有两种方式获得转发对象(RequestDispatcher):一种是通过HttpServletRequest的getRequestDispatcher()方法获得,一种是通过ServletContext的getRequestDispatcher()方法获得;

重定向的方法只有一种:HttpServletResponse的sendRedirect()方法。

这三个方法的参数都是一个URL形式的字符串,但在使用相对路径或绝对路径上有所区别。

 

HttpServletResponse.sendRedirect(String)

参数可以指定为相对路径、绝对路径或其它Web应用。

假设通过http://localhost/myApp/cool/bar.do请求到达该方法所属的Servlet。

相对路径:response.sendRedirect("foo/stuff.do")

容器相对于原来请求URL的目录加参数来生成完整的URL——http://localhost/myApp/cool/foo/stuff.do。

绝对路径:response.sendRedirect("/foo/stuff.do")

容器相对于Web应用本身加参数建立完整的URL——http://localhost/foo/stuff.do。

其它Web应用:response.sendRedirect("http://www.iteye.com")

容器直接定向到该URL。

 

HttpServletRequest.getRequestDispatcher(String)

参数可以指定为相对路径或绝对路径。

相对路径情况下生成的完整URL与重定向方法相同。

绝对路径与重定向不同,容器将相对于Web应用的根目录加参数生成完整的URL,即:

request.getRequestDispatcher("/foo/stuff.do")生成的URL是http://localhost/myApp/foo/stuff.do

 

ServletContext.getRequestDispatcher(String)

参数只能指定为绝对路径,生成的完整URL与HttpServletRequest.getRequestDispatcher(String)相同。

分享到:
评论

相关推荐

    转发和重定向的区别

    在Web开发中,"转发"(Forward)和"重定向"(Redirect)是两种常见的页面跳转方式,它们虽然在效果上看似相似,但其实有着本质的区别。理解这两种技术的工作原理及其应用场景对于优化应用程序的性能和用户体验至关...

    转发和重定向的区别 forward和redirect的区别

    在Java的Servlet编程中,`转发`和`重定向`是两种不同的机制,用于在服务器端将客户端的请求导向不同的资源。它们的主要区别在于请求处理流程、URL改变以及数据共享方式。 1. 转发(Forward): - 使用`...

    重定向和转发的区别

    在Web开发中,经常需要用到重定向(Redirect)与转发(Forward)这两种控制页面跳转的技术。尽管它们都能实现页面之间的跳转,但在具体的应用场景和技术实现上却有着本质的不同。下面将从多个角度来详细阐述两者的...

    请求转发和重定向的区别共1页.pdf.zip

    在Web开发中,请求转发和重定向是两种常见的服务器端处理客户端请求的技术,它们虽然都是用来改变客户端浏览器的页面展示,但实现机制和效果却大相径庭。本篇文章将详细解析请求转发与重定向的区别。 一、请求转发...

    请求转发与重定向详解代码

    在Web开发中,请求转发(Request Forward)和重定向(Redirect)是两种常见的处理客户端请求的方式,它们在处理用户请求并展示相应页面时起到关键作用。这篇文章将深入讲解这两种技术的工作流程,以及它们在实际应用...

    转发与重定向的详细说明

    在Servlet和JSP技术中,转发是一个非常重要的概念,对于实现复杂的业务逻辑和用户界面展现具有重要意义。 **1. 原理与流程** 当用户发起一个HTTP请求时,服务器端的应用程序(如Servlet或JSP)可以决定将请求转发...

    页面转向与重定向

    在 Servlet 中,我们可以使用 request.getRequestDispatcher("new.jsp").forward(request, response) 语句来实现转发,而重定向可以使用 response.sendRedirect("new.jsp") 语句来实现。在 JSP 页面中,我们也可以...

    Servlet+jsp.docx

    - **配置Servlet**:在`web.xml`文件中进行配置,指定Servlet的名称和URL映射路径。 - **部署到服务器**:将项目部署到Tomcat或其他支持Servlet的服务器上。 例如,创建一个名为`HelloServlet`的类,继承自`...

    Java路径问题

    页面中的超链接和表单提交路径与重定向路径类似,都是客户端路径,需要包含项目名。比如`<form action="/Example/AServlet"></form>`和`<a href="/Example/AServlet"></a>`。如果没有项目名或者没有以"/"开头,路径...

    jsp_servlet路径问题

    ### JSP/Servlet中的路径问题详解 #### 一、路径的基本概念 在JSP和Servlet技术中,理解和处理路径是非常重要的。路径可以分为绝对路径和相对路径两种。 **1. 绝对路径** - **定义**:绝对路径是指文件或目录在...

    servlet配置.docx

    在 Servlet 配置中,需要了解 Servlet 的基础知识点,包括 Servlet 的继承、方法重写、web.xml 的配置、转发和重定向的区别、乱码处理等。 一、Servlet 的继承和方法重写 在 Java 中,Servlet 需要继承 ...

    java-servlet-转发AND路径(详解)

    Java Servlet 转发和路径详解 Java Servlet 转发是指一个 Web 组件将未完成的任务交给另...Java Servlet 转发和路径问题是 Web 开发中非常重要的概念,了解这些概念可以帮助开发者更好地理解和使用 Java Servlet技术。

    java web开发中的路径问题

    Servlet中的路径表示与JSP有所不同,主要体现在请求转发和重定向上: - **请求转发**:使用`request.getRequestDispatcher`进行转发时,路径应为相对于Web应用根目录的路径,如`"/dir1/c.jsp"`。 - **重定向**:在...

    JSPServlet的重定向技术综述

    JSPServlet的重定向技术是Web开发中两个关键的方法,用于改变HTTP请求的处理路径,以便将用户导向不同的页面或资源。这两种技术分别是`RequestDispatcher.forward()`和`response.sendRedirect()`,它们各有特点和...

    java Web 中相对路径绝对路径问题总结

    在Servlet中使用`request.getRequestDispatcher(address)`进行页面转发时,`address`参数的路径应相对于当前Web应用的根目录。例如,要将请求转发到`/user/a.jsp`,正确的写法是`request.getRequestDispatcher("/...

    servlet 中文帮助文档

    Servlet API是Java Servlet规范的一部分,提供了丰富的接口和类,使开发者能够构建Web应用程序。以下是对Servlet中文帮助文档中关键知识点的详细说明: 1. **Servlet生命周期**: - **初始化**:Servlet在第一次...

    servlet的几种实例

    在这个例子中,Servlet会演示如何使用`RequestDispatcher`进行请求转发和重定向。转发是在服务器端完成的,而重定向则会让客户端发起新的请求。两者都是控制用户请求流向的重要手段。 6. **servlet-test6:Servlet...

    浅谈Servlet转发到JSP页面的路径问题(必看)

    本文将深入探讨Servlet转发到JSP页面时遇到的路径问题及其解决方案。 一、问题现象 当Servlet通过`RequestDispatcher`的`forward()`方法将请求转发到JSP页面时,浏览器地址栏仍然显示的是Servlet的URL,而非JSP...

Global site tag (gtag.js) - Google Analytics