Servlet对象全部由Servlet容器创建,并且Servlet对象的service()方法也由容器调用,那么一个Servlet对象能否直接调用另外一个Servlet对象的service()方法?很遗憾,不行。一个servlet对象无法获得另外一个servlet对象的引用,只能通过Servlet容器调用。假如一个请求,需要两个Servlet对象的service方法共同完成,该怎么做呢?
Servlet提供了三种方法:
一、请求转发
Servlet A对象转发到Servlet B对象时,ServletRequest ,ServletResponse,都是共用的,而HttpServletRequest 自定义的方法,则是不通用的,这个少稍微注意。
- Servlet A对象先对请求做a处理,然后把请求转发到其他Web组件,如Servlet B对象,由Servlet B对象继续完成后续操作
- javax.servlet.RequestDispatcher 接口,命名上可以看出来,请求路由接口,使用public void forward(ServletRequest request, ServletResponse response) throws ServletException, IOException;进行转发
- javax.servlet.RequestDispatcher 两种获取方式
- 调用ServletContext 的 public RequestDispatcher getRequestDispatcher(String path); path表示绝对路径,即以"/"开头的路径
- 调用ServletRequest 的 public RequestDispatcher getRequestDispatcher(String path);path表示相对路径,即相对于当前源Servlet组件的路径,不以"/开头
二、包含
- Servlet Main 输出时,需要包含header,leftNav,footer,多么典型的应用
- javax.servlet.RequestDispatcher 接口 public void include(ServletRequest request, ServletResponse response) throws ServletException, IOException; 使用这个方法,则可以包含这些通用页面或者组件
三、重定向
- 请求转发、包含,都是本应用内使用,如果需要使用其他的服务,则需要使用重定向。
- 用户请求Servlet对象时,Servlet对象处理业务后,返回http 状态码 302,响应中还包含了一个URL,客户端则会自动再次请求另外一个URL,并接收响应结果。
- javax.servlet.http.HttpServletResponse 的public void sendRedirect(String location) throws IOException; String location表示重定向的地址,以http://开头的地址则是绝对地址,可以是本应用,也可以是外部的web应用,以/开头,则是本地web 绝对地址应用
- 典型的应用,登陆时包含一个地址,登录成功之后,直接重定向到这个地址,省的用户再次点击。
相关推荐
servlet请求转发、请求重定向、请求包含 获取form数据
javaServlet请求转发和重定向.pdf
java servlet请求转发重定向 适合于初学者更好的了解页面跳转和原理
java-servlet-连接mysql-数据库.docx java-servlet-连接mysql-数据库.docx java-servlet-连接mysql-数据库.docx java-servlet-连接mysql-数据库.docx java-servlet-连接mysql-数据库.docx java-servlet-连接mysql-...
# 【javax.servlet-api-***.jar中文文档.zip】 中包含: 中文文档:【javax.servlet-api-***-javadoc-API文档-中文(简体)版.zip】 jar包下载地址:【javax.servlet-api-***.jar下载地址(官方地址+国内镜像地址)....
包含翻译后的API文档:jakarta.servlet-api-4.0.4-javadoc-API文档-中文(简体)版.zip; Maven坐标:jakarta.servlet:jakarta.servlet-api:4.0.4; 标签:servlet、api、jakarta、jar包、java、中文文档; 使用方法:...
# 【javax.servlet-api-***.jar中文文档.zip】 中包含: 中文文档:【javax.servlet-api-***-javadoc-API文档-中文(简体)版.zip】 jar包下载地址:【javax.servlet-api-***.jar下载地址(官方地址+国内镜像地址)....
包含翻译后的API文档:javax.servlet-api-4.0.0-javadoc-API文档-中文(简体)版.zip; Maven坐标:javax.servlet:javax.servlet-api:4.0.0; 标签:javax、servlet、api、中文文档、jar包、java; 使用方法:解压翻译...
包含翻译后的API文档:javax.servlet-api-4.0.1-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:javax.servlet:javax.servlet-api:4.0.1; 标签:javax、servlet、api、jar包、java、中英对照文档; 使用...
标签:alibaba、csp、sentinel、web、servlet、jar包、java、中英对照文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和...
javax.servlet-api-3.1.0.jar,处理找不到servlet JAR的问题
java\Servlet技术--小例子.pdf,利用java设计serverlet程序
包含翻译后的API文档:javax.servlet-api-4.0.0-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:javax.servlet:javax.servlet-api:4.0.0; 标签:javax、servlet、api、中英对照文档、jar包、java; 使用...
# 【javax.servlet-api-***.jar中文文档.zip】 中包含: 中文文档:【javax.servlet-api-***-javadoc-API文档-中文(简体)版.zip】 jar包下载地址:【javax.servlet-api-***.jar下载地址(官方地址+国内镜像地址)....
thrift 生成的java包servlet-api-2.5.jar
标签:container、glassfish、core、jersey、servlet、containers、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档
包含翻译后的API文档:jakarta.servlet-api-4.0.4-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:jakarta.servlet:jakarta.servlet-api:4.0.4; 标签:servlet、api、jakarta、jar包、java、中英对照...
JAVA实战项目源码-计算机毕业设计java专业-JJavaBean-Servlet-jsp-网上购物系统 本系统在Windows 操作系统环境下,用Java作为开发工具,实现的主要功能有:图书类别信息,图书信息,留言板,后台管理等功能。本文...
# 【javax.servlet-api-***.jar中文文档.zip】 中包含: 中文文档:【javax.servlet-api-***-javadoc-API文档-中文(简体)版.zip】 jar包下载地址:【javax.servlet-api-***.jar下载地址(官方地址+国内镜像地址)....
javax.servlet.jsp-api-2.3.1.jar