服务器端的重定向相关类
服务器端的重定向技术涉及到javax.servlet.ServletContext、javax.servlet.RequestDispatcher、javax.servlet.http.ServletRequest、javax.servlet.http.ServletResponse等几个接口。
服务器端的重定向方式
服务器端的重定向可以有两种方式,一是使用HttpServletResponse的sendRedirect()方法,一是使用RequestDispatcher的forward()方法。
HttpServletResponse.sendRedirect()方法
HttpServletResponse接口定义了可用于转向的sendRedirect()方法。
这个方法将响应定向到参数location指定的、新的URL。location可以是一个绝对的URL,如response.sendRedirect(\"http://java.sun.com\")也可以使用相对的URL。如果location以“/”开头,则容器认为相对于当前Web应用的根,否则,容器将解析为相对于当前请求的URL。这种重定向的方法,将导致客户端浏览器的请求URL跳转。从浏览器中的地址栏中可以看到新的URL地址,作用类似于上面设置HTTP响应头信息的实现。
RequestDispatcher.forward()方法
forward()方法将当前的request和response重定向到该RequestDispacher指定的资源。这在实际项目中大量使用,因为完成一个业务操作往往需要跨越多个步骤,每一步骤完成相应的处理后,转向到下一个步骤。比如,通常业务处理在Servlet中处理,处理的结果转向到一个JSP页面进行显示。这样看起来类似于Servlet链的功能,但是还有一些区别。一个RequestDispatcher对象可以把请求发送到任意一个服务器资源,而不仅仅是另外一个Servlet。 include()方法将把Request Dispatcher资源的输出包含到当前输出中。
注意,只有在尚未向客户端输出响应时才可以调用forward()方法,如果页面缓存不为空,在重定向前将自动清除缓存。否则将抛出一个IllegalStateException异常。
如何选择
RequestDispatcher.forward()方法和HttpServletResponse.sendRedirect()方法的区别是:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用Request Dispatcher.forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用HttpServletResponse.sendRequest()方法。
分享到:
相关推荐
本文将深入探讨JSP中的重定向技巧,包括服务器端重定向和客户端重定向,并分析它们的工作原理及适用场景。 首先,我们来看JSP页面重定向的三种主要方法: 1. 使用`response.sendRedirect()`方法,这是客户端重定向...
标题提到的"jsp重定向地址栏不改变的实例"就是针对这种场景的一个解决方案。下面我们将详细探讨JSP中的重定向以及如何实现地址栏不改变的重定向。 首先,了解JSP中两种常见的请求转发方式:请求转发(Request ...
当需要将文档移动到一个新的位置时,就需要使用JSP重定向了。 最简单的重定向方式就是使用response对象的sendRedirect()方法。这个方法的签名如下: public void response.sendRedirect(String location) throws ...
jsp 转发和重定向的区别 jsp 转发和重定向是两种常见的控制转移方式,它们都可以把控制从一个页面转到另一个页面,但是它们有很大的区别。 转发 jsp 转发是通过 `<jsp:forward>` 元素或 `request....
在Java Web开发中,JSP...总结,这个简单的JSP重定向类展示了如何处理HTTP请求参数和执行重定向操作。在实际的Web应用开发中,这些基本概念会结合更多的Java EE组件和最佳实践,构建出功能丰富的、健壮的用户交互系统。
是在服务器端起作用,当使用forward()时, Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个Servlet,JSP 或普通HTML文件,也即你的 form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的...
7. **性能优化**:提供关于JSP性能调优的策略,包括减少不必要的JSP重定向、合理使用缓存、优化EL表达式等。 学习这两本书籍,开发者将能够全面理解和掌握JSP技术,从而高效地构建Java Web应用。同时,通过加入不同...
6.jsp重定向 jsp可以使用response.sendRedirect()方法来执行浏览器重定向,例如:response.sendRedirect("http://ybwen.home.chinaren.com/index.html");。也可以物理地改变HTTP HEADER属性,例如:...
10. **调试和优化**:理解错误日志,使用开发工具如Eclipse、IntelliJ IDEA进行调试,以及掌握性能调优技巧,如减少不必要的JSP重定向,优化EL和JSTL的使用,都是JSP开发者必备技能。 通过深入学习和实践以上知识点...
13. **性能优化**:合理使用缓存、避免过多的数据库查询、减少不必要的JSP重定向,以及优化JSP页面的结构,都能提升应用性能。 14. **部署和调试**:了解如何在Tomcat、Jetty等Web服务器上部署JSP应用,以及使用IDE...
10. **性能优化**:JSP程序的性能优化包括减少不必要的JSP重定向、缓存结果、优化数据库查询等。第17章可能提供了关于提高JSP应用程序性能的技巧和最佳实践。 通过研究《JSP程序开发范例宝典》第17章的源代码和资料...
5. **响应处理**:上传成功后,Servlet可以通过JSP重定向或转发到一个新的页面,显示上传结果和可能的图片预览。 **图片下载** 1. **URL设计**:为图片提供一个下载链接,这个链接对应于一个处理图片下载的Servlet...
在JavaServer Pages (JSP) 技术中,标签、对象存储与提交、以及重定向和转发是核心概念,对于理解和开发动态Web应用程序至关重要。以下是对这些知识点的详细阐述: 1. JSP 标签: JSP标签是用于简化页面逻辑和提高...
JSPServlet的重定向技术是Web开发中两个关键的方法,用于改变HTTP请求的处理路径,以便将用户导向不同的页面或资源。这两种技术分别是`RequestDispatcher.forward()`和`response.sendRedirect()`,它们各有特点和...
在 Servlet 中,我们可以使用 request.getRequestDispatcher("new.jsp").forward(request, response) 语句来实现转发,而重定向可以使用 response.sendRedirect("new.jsp") 语句来实现。在 JSP 页面中,我们也可以...
5. JSP重定向 JSP(Java Server Pages)中的301重定向代码如下: ```jsp response.setStatus(301); response.setHeader("Location", "***"); response.setHeader("Connection", "close"); %> ``` 6. CGI/Perl...
8. **JSP 重定向** - `sendRedirect()` 用于客户端重定向,浏览器地址栏会显示新地址。 - `RequestDispatcher.forward()` 用于服务器端转发,地址栏不改变。 9. **JSP 内置对象** - `request`、`response`、`...
3. **应用软件**:部署的是用友的财务应用软件,该软件基于JAVA的JSP技术。 4. **中间件**:使用IBM WebSphere作为应用服务器。 5. **数据库**:采用Oracle数据库。 #### 三、网络拓扑与F5配置 根据文档描述,F5的...
失败则重定向到usercheck.jsp。 2、使用JSP中的session对象,模拟用户登陆。 (1)在7-5index.jsp中输入用户名和密码; (2)编写7-5deal.jsp,在其中模拟用户登陆(将用户信息保存在一个二维数组中,, 如果用户...