`

Servlet 重导定向问题

阅读更多
response.sendRedirect 与 request.getRequestDispatcher(url).forward(request,response)区别

  服务器端进行转向的4种方法:  
  1.   ServletContext的getRequestDispatcher()   
  2.   ServletContext的getNamedDispatcher()   
  3.   ServletRequest的getRequestDispatcher()   
  4.   ServletResponse的sendRedirect()进行转向。 
 
  1.2.3   功能大于等于   forward() 重导功能
4.   sendRedirect()          
  使用forward方法,因为这些这样比较高效。只有在forward方法不能使用时(比如要转向到一个非本web应用),再使用ServletResponse的sendRedirect()方法。  
   
  <jsp:fordward>与   sendRedirect   方法的比较  
  虽然   <jsp:fordward>与   sendRedirect   方法,都可以将浏览器浏览的网页,重导至另一个网页,但是两者在原理上是不太相同。  
  a. <jsp:fordward>   :   动作是利用伺服端,将资料输出至缓冲区的机制,在前一个网页尚未输出到客户端前,取消资料的输出,然后输出另一个网页的资料,达到重导浏览器的效果。  
  优点:   两网页间可以分享   request   对象内的变量。  
  b. sendRedirect   :   动作是透过   HTTP   协议的   Header   ,   对浏览器下达重导指令,因此,不牵涉到服务器端缓冲区的问题。  
  不过由于   sendRedirect   方法作用于客户端,所以重导前后网页无法分享存在于   request   对象内的变量。  
  Solution:   response.sendRedirect(“test.jsp?key=view”)  
  今天才搞清楚这个原理,ServletResponse就是在客户端响应返回数据,在这里ServletResponse不保留,request.setAttribute()的属性,如果用response.sendRedirect重导话,一些数据最好绑定到session里,数据一多,服务器吃不消,建议用ServletRequest来重导。
0
2
分享到:
评论

相关推荐

    servlet线程安全问题

    Servlet 线程安全问题 Servlet 线程安全问题是指在使用 Servlet 编程时,如果不注意多线程安全性问题,可能会导致难以发现的错误。Servlet/JSP 技术由于其多线程运行而具有很高的执行效率,但这也意味着需要非常...

    javax.servlet jar包---解决找不到javax.servlet.*等问题

    当你遇到“找不到javax.servlet.*”这样的错误时,通常是因为你的项目缺少了这个库,所以需要引入`javax.servlet.jar`来解决问题。 1. **Java Servlet简介** Java Servlet是Java平台上的一个标准,用于扩展服务器...

    servlet+导jar包步骤.rar

    本教程将详述Servlet的基本概念以及如何在IntelliJ IDEA 2018中导入所需的jar包。 Servlet的核心功能是扩展Web服务器的能力,使得开发者能够创建动态、交互式的Web应用。Servlet通过实现 javax.servlet.Servlet 或 ...

    servlet输出JS乱码问题

    知识点:Servlet输出JS乱码问题解析与解决方案 一、Servlet与JS输出背景 Servlet是Java Web应用中的核心组件,主要用于处理客户端发送的HTTP请求,并生成响应。在Web开发中,Servlet经常被用来处理业务逻辑,然后...

    servlet基础与servlet容器模型

    Servlet是一个Java类,遵循javax.servlet.Servlet接口,它允许开发者扩展服务器的功能。当用户向Web服务器发送一个请求时,Servlet会接收到这个请求,处理数据,然后返回响应。Servlet的主要生命周期方法包括:`init...

    servlet源码 servlet-api-src javax.servlet.Servlet源码

    这对于优化性能、调试问题以及自定义Servlet行为都非常有帮助。 在实际开发中,我们通常不会直接实现`Servlet`接口,而是继承`HttpServlet`类,因为它已经为我们提供了一些基础的HTTP方法实现。例如,`doGet()`和`...

    日志管理系统SERVLET SERVLET SERVLET

    刚刚接触java时做的日志管理系统,做的很简单,适合初学着 servlet servlet servlet servlet servlet日志管理系统 servlet servlet servlet servlet servlet日志管理系统 servlet servlet servlet servlet servlet...

    解决找不到javax.servlet.*等问题servlet jar包

    解决找不到javax.servlet.*等问题servlet jar包,放在项目里直接Build Path即可使用。

    用于servlet程序的开发的servlet-jar包

    Servlet是Java平台上的一个核心组件,它允许开发者创建动态web应用程序。Servlet API是Java Servlet规范的一部分,它定义了服务器端程序如何与HTTP协议交互以及如何处理来自web客户端的请求并返回响应。`servlet.jar...

    servlet.jar包

    5. javax.servlet.RequestDispatcher:用于转发请求和包含资源,支持请求的定向。 6. javax.servlet.ServletRequest和ServletResponse:分别表示HTTP请求和响应,提供了获取请求数据和设置响应内容的方法。 此外,...

    servlet api 与servlet src

    在开发过程中,理解Servlet API和源码对于提高代码质量、优化性能以及解决问题都至关重要。通过对Servlet API的深入学习,开发者可以更好地掌握Web应用程序的架构设计和实现,从而提升开发效率和应用性能。

    servlet笔记,servlet的总结

    使用完这些资源后,应及时关闭或释放,以避免资源泄露和性能问题。合理管理资源对于保持服务器稳定运行至关重要。 #### 十、结论 Servlet作为Java Web开发的基础技术之一,提供了强大的功能来处理HTTP请求和生成...

    javaEE servlet-api

    Servlet API还提供了Filter的概念,允许开发者在请求到达Servlet之前和响应离开Servlet之后对其进行拦截和处理。`javax.servlet.Filter`接口定义了`doFilter()`方法,这使得我们可以实现如认证、日志记录、数据过滤...

    Servlet中文API文档 servlet

    Servlet是Java平台上的一个核心技术,用于构建动态Web应用程序。Servlet API是Java Servlet规范的一部分,它定义了服务器端Java程序如何与HTTP协议交互,以及如何处理来自Web客户端的请求并生成响应。这份"Servlet...

    servlet api servlet api

    &lt;servlet-name&gt;MyServlet&lt;/servlet-name&gt; &lt;servlet-class&gt;com.example.MyServlet&lt;/servlet-class&gt; &lt;/servlet&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;MyServlet&lt;/servlet-name&gt; &lt;url-pattern&gt;/myservice &lt;/servlet...

    servlet 笔记

    ### Servlet基础知识及应用详解 #### 一、Servlet概述 Servlet是一种服务器端的Java技术,用于扩展应用程序的功能。它主要用于Web应用程序开发,可以处理客户端发送到Web服务器的各种请求,并且能够生成动态网页。...

    javax.servlet.jar下载

    Files contained in javax.servlet.jar: META-INF/MANIFEST.MF javax/servlet/http/LocalStrings.properties javax.servlet.http.HttpSessionBindingListener.class javax.servlet....

    Servlet

    容器负责Servlet的加载、初始化、服务和销毁过程,以及线程安全问题。开发者无需关心这些细节,只需关注业务逻辑。 四、Servlet配置 在Web应用的`web.xml`配置文件中,可以声明Servlet,指定Servlet类、URL映射、...

    jakarta-servletapi-4-src.zip servlet源码

    《深入理解Jakarta Servlet API 4.0源码》 Servlet技术是Java Web开发的核心,它为Web应用程序提供了服务器端的编程接口。Jakarta Servlet API 4.0是Servlet规范的最新版本,它包含了对HTTP协议处理、生命周期管理...

Global site tag (gtag.js) - Google Analytics