`
chenfei
  • 浏览: 25993 次
  • 来自: ...
最近访客 更多访客>>
社区版块
存档分类
最新评论

servlet

    博客分类:
  • java
阅读更多
Servlet可以将发送给自己的请求转发给另一个URL地址,这个URL地址可以是html、jsp、servlet或其他的http地址。 Servlet中的请求转发有三种形式,主要是通过HttpServletRequest对象和HttpServletResponse对象实现。

 
 
public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{

//......

1.request.getRequestDispatcher("/url").include(request,response);

2.request.getRequestDispatcher("/url").forward(request,response);

3.request.sendRedirect("/url");

//......

}



    三种方式的区别是:

include:将url中的内容包含到当前的servlet输出当中,在服务器端完成,一般叫做包含;
forward:将当前的Request和response对象交给指定的url处理,一般称作转发请求;在服务器端完成,客户端地址栏看到的路径还是当前请求的servlet路径;
sendRedirect:指示客户端重新发起一次请求,第二次请求指向其参数的url,一般称作重定向;客户端的地址栏将改变为url值,是由客户端发起的第二次请求。
include与forward的区别:
include是把别人包含进来,forward则是丢掉自己
include是把另一个servlet/jsp处理过后的内容拿过来与本身的servlet的内容一起输出;
forward是把请求的内容转发到另一个servlet/jsp中。在forward之前,在原始的servlet中不能对输出做flush。最终只有被被forward去的servlet的内容被输出。

在原始servlet中设置的响应状态码和响应头会被include的servlet忽略。include的servlet在处理的时候只会保留进入include的servlet之后的状态码和状态头。
对于forward,在两个servlet设置的状态码和状态头都会被用到。

使用include转发时,response的编码格式不是UTF-8,所以请求时会出现乱码现象,因此需要显示的response的编码修改为UTF-8/GBK/GB2312。

不管是include、forward还是sendRedirect,在该行代码执行之后的语句仍然被执行,只是输出到response的内容没有作用了。

总结:

sendRedirect与include、forward的区别在于是不是同一个Request,sendRedirect会有两次交互;

include与forward的区别在于输出的内容,include包含两者的结果,而forward只有forward一个,以及响应头。

分享到:
评论

相关推荐

    Java用注解的方式定义一个Servlet

    用注解的方式定义一个Servlet,就不用在web.xml中配置了。Servlet的访问URL是Servlet的必选属性,可以选择使用urlPatterns或者value定义。  像上面的AnnotationServlet可以描述成@WebServlet(name="Annotation...

    jakarta.servlet-api-4.0.4-API文档-中英对照版.zip

    赠送jar包:jakarta.servlet-api-4.0.4.jar; 赠送原API文档:jakarta.servlet-api-4.0.4-javadoc.jar; 赠送源代码:jakarta.servlet-api-4.0.4-sources.jar; 赠送Maven依赖信息文件:jakarta.servlet-api-4.0.4....

    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....

    jakarta.servlet-api-4.0.4-API文档-中文版.zip

    赠送jar包:jakarta.servlet-api-4.0.4.jar; 赠送原API文档:jakarta.servlet-api-4.0.4-javadoc.jar; 赠送源代码:jakarta.servlet-api-4.0.4-sources.jar; 赠送Maven依赖信息文件:jakarta.servlet-api-4.0.4....

    基于 Servlet+jsp+mysql 开发 javaWeb 学生宿舍管理系统

    基于 Servlet+jsp+mysql 开发 javaWeb 学生宿舍管理系统基于 Servlet+jsp+mysql 开发 javaWeb 学生宿舍管理系统基于 Servlet+jsp+mysql 开发 javaWeb 学生宿舍管理系统基于 Servlet+jsp+mysql 开发 javaWeb 学生宿舍...

    javax.servlet-api-4.0.0-API文档-中文版.zip

    赠送jar包:javax.servlet-api-4.0.0.jar; 赠送原API文档:javax.servlet-api-4.0.0-javadoc.jar; 赠送源代码:javax.servlet-api-4.0.0-sources.jar; 赠送Maven依赖信息文件:javax.servlet-api-4.0.0.pom; ...

    servlet-api。jar

    SERVLET

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

    javax.servlet的jar包,解决找不到javax.servlet.*等问题的!欢迎下载!!

    jersey-container-servlet-core-2.22.2-API文档-中文版.zip

    赠送jar包:jersey-container-servlet-core-2.22.2.jar; 赠送原API文档:jersey-container-servlet-core-2.22.2-javadoc.jar; 赠送源代码:jersey-container-servlet-core-2.22.2-sources.jar; 赠送Maven依赖信息...

    javax.servlet-api-4.0.1-API文档-中英对照版.zip

    赠送jar包:javax.servlet-api-4.0.1.jar; 赠送原API文档:javax.servlet-api-4.0.1-javadoc.jar; 赠送源代码:javax.servlet-api-4.0.1-sources.jar; 赠送Maven依赖信息文件:javax.servlet-api-4.0.1.pom; ...

    servlet 8个最基础demo

    我们老师教学演示的servlet例子 从简单到难文件夹有八个demo供初学者学习 servlet01 servlet02 servlet03 servlet04 servlet05 servlet06 servlet07 servlet08 servlet是在服务器上运行的小程序。这个词是在Java ...

    javax.servlet-3.0.0.v201112011016-API文档-中文版.zip

    赠送jar包:javax.servlet-3.0.0.v201112011016.jar; 赠送原API文档:javax.servlet-3.0.0.v201112011016-javadoc.jar; 赠送源代码:javax.servlet-3.0.0.v201112011016-sources.jar; 赠送Maven依赖信息文件:...

    servlet基础与servlet容器模型

    servlet基础与servlet容器模型

    servlet-api.jar

    servlet.jar ,Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。 使用 Servlet,您可以收集来自网页...

    javax.servlet 的JAR包

    javax.servlet JAR包,解决找不到 import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; jar包问题

    利用servlet技术实现一个简单的聊天室

    实验1: 利用servlet实现一个简单的聊天室 实验目的 (1) 理解servlet的工作原理 (2) 掌握servlet编程基本技能 实验内容及要求 1. 利用servlet技术实现一个简单的聊天室,实现多人同时交流。当发送聊天信息时,信息...

    Servlet项目实践 实现学生信息系统的全部代码

    Servlet项目实践 实现学生信息系统的全部代码 一、Servlet简介  Servlet是sun公司提供的一门用于开发动态web资源的技术。  Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java...

    servlet文档API中文版

    这是一份关于2.1版Java Servlet API的说明文档,作为对这本文档的补充。 1.2 谁需要读这份文档 这份文档描述了Java Servlet API的最新版本2.1版。所以,这本书对于Servlet的开发者及servlet引擎的开发者同样...

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

    servlet.jar.zip用于servlet程序的开发

    servlet api servlet api

    servlet apiservlet apiservlet apiservlet api

Global site tag (gtag.js) - Google Analytics