`
aaa1aaaaa
  • 浏览: 10124 次
  • 性别: Icon_minigender_1
  • 来自: 江西
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

重定向和请求分派

 
阅读更多

(1)请求的重定向

HttpServletResponset接口提供的sendRedirect()方法用于生成302响应码和Location响应头,从而通知客户端去重新访问Location响应头中指定的URL,其完整的定义语法如下:

public void sendRedirect(String location) throws IOException;

其中的location参数指定了重定向的URL,它可以使用绝对URL和相对URL,Servlet容器会自动将相对URL转换成绝对URL后,再生成location头字段。

重定向的例子 response.sendRedirect(“secuse“);

注:重定向是两个servlet类结合而使用的,即是两次向服务器提交请求。一个servlet类不能完成操作,当用户运行到sendRedirect()时,会生成302响应码,意思是再次提交请求,在localtion的url的带领下,去访问secuess的servlet类,从而完成实现,但是在secuess中不能再次提交request的请求,否则返回的是null。因为每一次请求都是独一的。

(2)请求的分派

1.Servlet API中定义了一个RequestDispatcher接口,俗称请求分派器。它定义了如下两个方法:

(1)public void forward(ServletRequest request, ServletResponse response) throws ServletException,IOException;

(2)public void include(ServletRequest request, ServletResponse response) throws ServletException,IOException

2.请求的转发:

调用ServletContext接口提供的getRequestDispatcher(String url)方法。

调用ServletRequest接口提供的getRequestDispatcher(String url)方法

3.例子:

RequestDispatcher rd = request.getRequestDispatcher("fail");

//请求的转发,向前 ------------ 一个请求对象

rd.forward(request, response);

//请求的转发

rd.include(request, response);

forwrod和include的区别:forword是在页面跳转之后直接输出,不会再返回,而include则是把我当前的目录包含,输出

(3)两者比较:

1.请求转发只能是同一个web站点

重定向不仅可以定向到当前的web程序,还可以访问其他的站点的资源

2. 重定向在完成操作后,地址栏会发生变化,由初始的URL地址变成重定向的目标URL

请求转发过程结束后,浏览器地址栏保持初始的URL地址不变。

3.请求分派的发起者和被调用者之间共享相同的request实例和response实例,它们属于同一个“请求/响应”过程;而重定向的发起者和被调用者使用各自的request实例和response实例,它们各自属于独立的“请求/响应”过程

分享到:
评论

相关推荐

    请求重定向个请求分派

    请求重定向和请求分派技术详解 请求重定向和请求分派是 MVC 架构中关键的技术,它们在 Web 应用程序中扮演着重要的角色。本文将详细介绍请求重定向和请求分派的概念、实现方法和应用场景。 一、请求重定向 请求...

    Java_Web_培训

    ### Java Web 培训知识点总结 #### 一、前言和体系结构 ...它采用了请求/响应模型,客户端... - 了解请求重定向和请求分派的概念及应用场景。 通过以上内容的学习,可以为深入理解和掌握Java Web开发打下坚实的基础。

    Head First Servlets & JSP 学习笔记

    5. **重定向与请求分派**: - **重定向(Redirect)**:使用`sendRedirect()`方法,浏览器会发起新的请求到指定URL,地址栏显示新URL。 - **请求分派(Forward)**:通过`RequestDispatcher`的`forward()`方法,...

    head_first_servlet&jsp学习笔记

    3. **重定向与请求分派**:重定向改变浏览器地址,分派则在服务器内部转发请求。 【Web应用属性与监听器】 1. **属性与参数**:属性是动态存储在特定范围(请求、会话、上下文)的数据,参数通常是配置项。 2. **...

    2021-2022计算机二级等级考试试题及答案No.935.docx

    12. Model1架构:在JSP应用中,Model1架构中一个JSP页面既负责视图也负责控制器,通过请求转发或重定向将请求分派给其他页面。 13. PowerPoint母版:幻灯片母版通常包含多个占位符,用于设置全局样式和布局,而备注...

    express-route-versioning:根据版本将请求分派到路由的 Express 中间件

    #express-route-versioning 一种风格的中间件,用于根据 HTTP 标头值将执行流重定向到多个分支。 已测试并用于带有路由的 REST API 版本控制,但其他应用程序可能适用。 ##Features 通过version.use(options)自定义...

    经典的Java Web 培训教材

    - 使用`RequestDispatcher`接口实现请求分派,可以让应用中的其他组件(如JSP页面)来接管全部或部分请求处理任务,实现更灵活的控制流。 - `forward()`方法用于将请求转发到另一个资源,保持当前请求上下文不变,...

    2021-2022计算机二级等级考试试题及答案No.9840.docx

    6. 在Model1架构中,JSP页面作为控制器,可以使用转发或重定向把请求分派给其他JSP页面,通常使用请求Dispatcher进行转发。 7. 查询和视图都是数据查询工具,但查询主要用于检索数据,而视图可以更新数据源,除非...

    深入JavaServlet网络编程

    3. 服务:每当收到HTTP请求,Servlet容器会调用`service()`方法,根据请求类型分派到`doGet()`、`doPost()`等具体处理方法。 4. 销毁:当Servlet不再需要时,容器调用`destroy()`方法,释放资源。 三、Servlet容器 ...

    Servlets编程指南

    - `service()`方法处理每个来自客户端的请求,根据请求类型分派到`doGet()`或`doPost()`等方法。 - `destroy()`方法在Servlet不再需要时调用,释放资源。 3. **部署描述符** (`web.xml`) - 部署描述符是Web应用...

    servlet 源码

    - `RequestDispatcher`接口用于在Servlet之间转发和重定向请求。 - `forward()`方法将请求转发给另一个资源,而`redirect()`则告诉客户端重新发起一个新的请求。 6. **过滤器(Filter)**: - Filter是Servlet...

    java零基础自学 之 Servlet 技术1-4课时

    7. **转发与重定向**:在Servlet中,可以通过`RequestDispatcher`的`forward()`方法将请求转发到其他资源,或者使用`Response.sendRedirect()`方法进行重定向,两者在处理请求流程上有所不同。 8. **会话管理**:...

    jsp+servlet最简单的增删改查

    1. **请求分派**:Servlet可以使用`RequestDispatcher`将请求分派到JSP页面,例如在处理完业务逻辑后显示结果。 ```java RequestDispatcher dispatcher = request.getRequestDispatcher("result.jsp"); dispatcher....

    三大框架jar包

    Spring MVC是其用于构建Web应用的一部分,通过DispatcherServlet接收请求,然后根据配置将请求分派给对应的控制器。Spring的优点在于它的松耦合特性,使得组件间的依赖可以通过XML或注解来声明和管理。 Hibernate是...

    servlet讲解资料

    - **服务**:每次有新的请求到达,Servlet容器都会调用Servlet的service()方法,根据请求类型分派到doGet()或doPost()等具体方法。 - **销毁**:当Servlet不再需要时,服务器会调用destroy()方法释放资源,然后...

    servlet快速学习文档

    - **转发与重定向**:Servlet可以使用RequestDispatcher的`forward()`方法在内部转发请求,或者使用`sendRedirect()`方法让客户端发起新的请求。 - **会话管理**:通过HttpSession接口,Servlet可以存储和检索用户...

    Java自设计练习servlet的小项目

    - 实践如何在Servlet中转发和重定向请求,以及如何在`session`和`cookie`中存储用户信息。 - 学习如何配置和使用Servlet容器,如Tomcat,部署Web应用。 通过这个项目,开发者可以巩固Servlet的基础知识,逐步掌握...

    Java开发指南-Servlets和JSP篇

    - **服务**:每当有新的请求到达,`service()`方法会被调用,根据请求类型分派到`doGet()`或`doPost()`等方法。 - **销毁**:Web应用停止或Servlet不再需要时,`destroy()`方法被调用,释放资源。 2. **JSP**: ...

    相关servlet学习代码

    Servlet是Java Web开发中的核心组件,它是一种服务器端的Java应用程序,主要用于处理和响应客户端(如浏览器)的请求。在本"相关servlet学习代码"资料中,你将找到关于Servlet基础以及一些实用功能实现的详细示例。...

    Java Servlets编程指南

    - **服务**:每当有新的请求到达,`service()`方法会被调用,根据请求类型分派到`doGet()`或`doPost()`等方法。 - **销毁**:当Servlet不再需要时,容器会调用`destroy()`方法释放资源,然后销毁Servlet实例。 2....

Global site tag (gtag.js) - Google Analytics