关于转发和重定向的路径问题!

关于转发和重定向的路径问题!

在JavaWEB初学者中转发和重定向的问题一直是个小误区,其实只要弄清楚什么是请求,什么是响应就好理解多了。

方法/步骤

  1. 1

    首先我们先搞清楚什么是请求什么是响应?

    简单直白的说:

    从客户端--->服务器(Servlet)过程称为请求。由客户端发出比如登录表单操作。

    从服务器---->客户端过程称为响应。服务器向登录表单做出相应结果(无论登录是否成功)

  2. 2

    要明白转发和重定向的区别:

    转发是同次请求(由服务器请求下一个资源)

    重定向是多次请求(由服务器重定向到客户端,由客户端请求下一个资源)

    一句话总结:转发是由服务器发出请求,重定向是由客户端发出请求

  3. 3

    重定向和转发相对路径和绝对路径问题

    注意:转发和重定向的URLString前有加 / 为绝对路径   反之为相对路径

    1.假设通过表单请求指定的Url资源   action="LoginServlet"

    则表单生成的请求地址为:

    http://localhost:8080/项目名/LoginServlet

    2.在servlet处理请求之后重定向到下面指定资源

    参数可以指定为相对路径或绝对路径或web应用程序。

    ①相对路径:response.sendRedirect("Manager/index.jsp")

    生成的地址:原来请求地址+参数生成完整的URL即:

    http://localhost:8080/项目名/Manager/index.jsp

    ②绝对路径:response.sendRedirect("/Manager/index.jsp")

    生成的地址:web服务器本身地址+参数生成完整的URL  即:

    http://localhost:8080/Manager/index.jsp

    ③其他web应用地址

    response.sendRedirect("http://www.baidu.com")

    容器直接定向到该URL。

    3.在servlet处理请求之后转发到以下指定资源

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

    ①相对路径

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

    ②绝对路径

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

    生成的地址:  原来请求地址+参数生成完整的URL  即:

    http://localhost:8080/项目名/Manager/index.jsp

    转发用相对路径和绝对路径地址都一样。

    4. ServletContext.getRequestDispatcher(UrlString)

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

时间: 2024-08-12 21:54:11

关于转发和重定向的路径问题!的相关文章

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

Servlet中有两种方式获得转发对象(RequestDispatcher):一种是通过HttpServletRequest的getRequestDispatcher()方法获得,一种是通过ServletContext的getRequestDispatcher()方法获得: 重定向的方法只有一种:HttpServletResponse的sendRedirect()方法. 这三个方法的参数都是一个URL形式的字符串,但在使用相对路径或绝对路径上有所区别. ★ HttpServletResponse

jsp初识、servlet转发、转发与重定向的比较

jsp sun公司制定的一种服务器端动态页面技术规范 生成动态页面 jsp其实是一个以.jsp为后缀的文件,该文件的内容主要是html和少量的java代码 容器会将jsp文件自动转换成一个servlet然后执行. 如何写一个jsp文件 1.创建一个以.jsp为后缀的文件 2.在文件里面添加如下的内容: (1)html(css,js):直接写.不用写out.print (2)java代码: a.java代码片段 <% java语句: %> b.jsp表达式 <%= java表达式%>

Servlet &amp; JSP - 转发与重定向的区别

本文转载自:http://blog.csdn.net/kobejayandy/article/details/13762043 转发 转发的原理,可以通过下图展示: 浏览器的请求发送给组件 1,组件 1 经过一些处理之后,将 request 和 response 对象 “传递” 给组件 2,由组件 2 继续处理,然后输出响应(当然,也可以继续向其他组件 “传递”),这个传递的过程称之为 “转发”.整个过程只涉及一次浏览器和服务器之间的 “请求-响应” ,转发过程中的组件共享同一个请求 (requ

#HTTP协议学习# (十二)理解转发与重定向

本文转自:http://blog.csdn.net/meiyalei/article/details/2129120  生动清晰 解释一 转发是服务器行为,重定向是客户端行为.为什么这样说呢,这就要看两个动作的工作流程: 转发过程:客户浏览器发送http请求---->web服务器接受此请求-->调用内部的一个方法在容器内部完成请求处理和转发动作---->将目标资源发送给客户:在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的r

servlet的转发与重定向

转发和重定向都能让浏览器获得另外一个URL所指向的资源,但两者的内部运行机制有着很大的区别. 1.转发:有两种方式获得转发对象(RequestDispatcher):一种是通过HttpServletRequest的getRequestDispatcher()方法获得,一种是通过ServletContext的getRequestDispatcher()方法获得: 以前的request范围中存放的变量不会失效,就像把两个页面拼到了一起. 例如: request.getRequestDispatche

java web 中的转发和重定向

假设应用程序的 contextPath 为 /ctx,在 http://localhost:8080/ctx/a/b 资源中,我们转发和重定向到 http://localhost:8080/ctx/x/y 资源,分别应该怎么写? 转发,是在同一个应用程序中,请求从由资源 A 处理,到由资源 B 处理.资源 A 和资源 B 属于同一个应用程序的资源,它们总是相对于该应用程序的 contextPath 而言的.转发的资源可以使用相对路径(不以 "/" 开头)和绝对路径(以 "/&

JavaWeb学习之转发和重定向、会话技术:cookie、session、验证码实例、URLConnection使用(下载网页)(4)

1.转发和重定向 HttpServletResponse response 转发: RequestDispatcher dispatcher = request.getRequestDispatcher("/secondServlet"); request.setAttribute("pwd","123");//这里设置的值在secondServlet中可以获取到 dispatcher.forward(request, response);//调

servlet转发与重定向

HttpServletRequest: 表示浏览器向服务器发送的请求报文,由Tomcat创建然后作为参数传递给我们doget,dopost方法. 功能:getParameter()获取请求参数 getContextPath()获取当前项目名 request..getRequestDispatcher("1.html").forward(request, response);可以实现转发功能 HttpServletResponse: 表示服务器响应给浏览器的响应报文,由服务器创建然后作为

http页面转发和重定向的区别

一.调用方式 我们知道,在servlet中调用转发.重定向的语句如下:request.getRequestDispatcher("new.jsp").forward(request, response);//转发到new.jspresponse.sendRedirect("new.jsp");//重定向到new.jsp 在jsp页面中你也会看到通过下面的方式实现转发:<jsp:forward page="apage.jsp" /> 当