




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Part 2 ServletServlet基础基础n了解什么是ServletnHelloworldServletn处理发往Servlet的客户端请求n处理Servlet发往客户端的响应nWeb应用程序的结构和部署2.1 了解什么是了解什么是Servletn了解Servlet的工作机制nServlet的生命周期一个Servlet就是Java编程语言中的一个类,它被用来扩展服务器的性能2.1 2.1 了解什么是了解什么是ServletServlet - -Servlet的工作机制传统的CGI形式的Web应用(Common Gateway Interface) CGI是外部应用程序(CGI程序)与W
2、eb服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的规程。个人主页-留言本n先由用户在客户端输入一些信息,如名字之类的东西。接着用户按一下留言(到目前为止工作都在客户端),浏览器把这些信息传送到服务器的CGI目录下特定的cgi程序中,于是cgi程序在服务器上按照预定的方法进行处理。在本例中就是把用户提交的信息存入指定的文件中。然后cgi程序给客户端发送一个信息,表示请求的任务已经结束。此时用户在浏览器里将看到留言结束的字样。整个过程结束。2.1 2.1 了解什么是了解什么是ServletServlet - -Servlet的工作机制基于Java技术的Web应用2.1 2.1 了
3、解什么是了解什么是ServletServlet - -Servlet的工作机制Servlet处理HTTP请求的工作机制 2.1 2.1 了解什么是了解什么是ServletServlet - -Servlet的工作机制Servlet的工作机制与传统的CGI方式的根本差异Servlet方式CGI方式处理请求多线程多进程2.1 2.1 了解什么是了解什么是ServletServlet - -Servlet的工作机制Java Servlet API 3.3 Servlet接口定义了基本servlet初始化、对客户请求服务、消亡的生存周期的方法,还定义了servlet与Servlet容器进行通信的方式
4、GenericServlet类是Servlet接口的一个抽象实现 HttpServlet类则针对HTTP协议这一特定的应用层协议进行了基本的实现 MyHttpServlet类继承HttpServlet的基本特性,并根据需要重写部分代码 nServlet的生命周期2.1 了解什么是了解什么是Servlet2.1 2.1 了解什么是了解什么是ServletServlet - -Servlet的生命周期Servlet接口定义了下列与Servlet生命周期相关的方法! 这些方法是由Servlet容器调用的 public void init(ServletConfig config) throws Se
5、rvletException;public void service(ServletRequest req, ServletResponse res) throws ServletException, java.io.IOException;public void destroy() ;2.1 2.1 了解什么是了解什么是ServletServlet - -Servlet的生命周期servlet的生命周期1、servlet的装入和实例化由servlet容器来负责。 2、容器通过调用servlet的init()方法来初始化servlet,并且传递一个ServletConfig对象给它 3、现在s
6、ervlet已经准备好处理客户的请求了。当请求到达容器时,容器负责把请求包装成ServletRequest对象,然后调用servlet的service()方法,同时也把包装好的ServletRequest对象作为参数通过service()方法传递给servlet。 4、servlet在service()中通过ServletRequest对象获得客户请求信息,并对请求进行处理,然后把响应信息包装为ServletResponse对象,通过service()方法返回给servlet容器。然后由容器从ServletResponse对象抽出响应信息并返回给客户端。5、一旦容器决定从服务中删除某个serv
7、let,它会调用该servlet的destroy()方法,servlet会在destroy()方法中释放它所占用的资源。然后容器释放servlet实例一遍系统进行垃圾回收 2.1 2.1 了解什么是了解什么是ServletServlet - -Servlet的生命周期ServletServlet基础基础HttpServlet类处理用户HTTP请求的过程 1、当客户请求到达Web服务器时,如果请求的资源是动态资源,则Web服务器会把该请求转交给Servlet容器, 2、Servlet容器会生成一个线程,同时把客户请求包装成HttpServletRequest对象,并调用Servlet实例的ser
8、vice()方法 3、service()方法会根据不同的HTTP请求形式,将用户请求分配给不同的方法来执行,这些方法的形式为doXXX()4、我们在doXXX()方法中编写代码,生成用户希望的响应信息,并将其填充到容器提供的HttpServletResponse对象中5、容器将HttpServletResponse对象的内容转换成Web服务器可理解的响应信息,并返回给客户端。2.1 2.1 了解什么是了解什么是ServletServlet - -Servlet的生命周期doXXX()方法 HTTPHTTP请求方法请求方法HttpServletHttpServlet相对应的方法相对应的方法 GE
9、TdoGet();POSTdoPost();PUTdoPut();HEADdoHead();DELETEdoDelete();OPTIONSdoOptions();TRACEdoTrace();2.1 2.1 了解什么是了解什么是ServletServlet - -Servlet的生命周期 在我们编写自己的Servlet时,如果想对用户的哪种HTTP请求进行处理,只需要覆盖相应的doXXX()方法就可以了。 例如,我们只想处理用户的GET请求,我们只需要覆盖HttpServlet类的doGet()方法的默认实现。 npackage com.mycompany.servlet;nimport j
10、avax.servlet.*;nimport javax.servlet.http.*;nimport java.io.*;n/处理HTTP请求必须继承自HttpServlet类npublic class BasicHttpServlet extends HttpServlet n/编写自己的doGet方法对客户端的GET请求进行处理npublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException n response.setCont
11、entType(text/html; charset=GBK);n PrintWriter out = response.getWriter();n out.println();n out.println(A Basic HttpServlet);n out.println();n out.println(HelloWorld!);n out.println();n 一个简单的HttpServlet的实现 Chapter 2 Servlet basicn了解什么是ServletnHelloworldServletn处理发往Servlet的客户端请求n处理Servlet发往客户端的响应nWeb应
12、用程序的结构和部署2.2 HelloworldServletn学习创建一个简单的Servlet一、设置一、设置Servlet的基本信息的基本信息二、确定标准二、确定标准Servlet的详细信息的详细信息 三、添加三、添加HTTP请求参数请求参数四、确定四、确定Servlet别名和访问路径模板别名和访问路径模板五、创建运行配置五、创建运行配置 六、修改六、修改Servlet源代码源代码七、运行、测试七、运行、测试Servlet3.2 HelloworldServlet在创建HelloworldServlet之前应首先:1、 创建一个项目2、创建一个名为HelloWorld的Web Applica
13、tion3、右键新建ServletMyFirstServlet类web.xml样例一修改修改Servlet的代码的代码n自行完成样例一第二章第二章 Servlet基础基础n了解什么是ServletnHelloworldServletn处理发往Servlet的客户端请求n处理Servlet发往客户端的响应nWeb应用程序的结构和部署2.3 处理发往Servlet的客户端请求 当用户的请求到达servlet容器后,请求将被容器转换为ServletRequest对象,如果用户请求使用的是HTTP协议,请求还将被进一步包装成为HttpServletRequest对象。 Servlet2.3分别定义了j
14、avax.servlet.ServletRequest接口和javax.servlet.http.HttpServletRequest接口。其中HttpServletRequest接口由ServletRequest接口扩展而成。 Servlet API 2.3规定,这两个接口的实现由容器生产厂商负责。对于使用HTTP协议的servlet,它所有对于用户请求的了解全部来自于容器传递给它的HttpServletRequest对象。3.3 处理发往Servlet的客户端请求Web浏览器Servlet容器ServletServlet容器将Http请求包装成HttpServletRequest对象,然后
15、发给Servlet的Service方法进行处理Web浏览器将Http请求发往Web服务器,Web服务器将 Servlet请求转发给Servlet容器我们必须在Servlet的doXXX方法中调用HttpServletRequest对象的特定方法,以解析客户端发来的HTTP请求的信息。HttpServletRequest接口提供了大量方法供HttpServlet获取用户请求信息。这些方法可以分别处理以下几类情形:q获取请求参数获取请求参数q提取请求标题信息q获取请求路径的信息q获取客户信息q获取请求中使用的属性 3.3 处理发往Servlet的客户端请求ServletRequest接口提供了三个
16、方法供servlet获得请求中的参数信息。npublic String getParameter(String name) 返回由name指定的用户请求参数的值。npublic Enumeration getParameterNames() 返回所有客户请求的参数名。npublic String getParameterValues(String name) 返回所有客户请求的参数值。2.3 处理发往Servlet的客户端请求 -用于获取请求参数的方法用于获取请求参数的方法样例二以下ServletRequest接口方法供servlet获得请求标题中的信息。npublic String getP
17、rotocol() 返回客户发出的请求所使用的协议和版本号(如HTTP/1.1)。npublic String getContentType() 返回请求的MIME类型,如果类型不明则返回null。npublic int getContentLength() 返回请求主体的大小,以字节为单位。长度未知返回1。2.3 处理发往Servlet的客户端请求 -提取请求标题信息提取请求标题信息MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指
18、定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。另外,HttpServletRequest接口增加了以下几个方法供servlet读取HTTP请求标题信息npublic java.lang.String getHeader(String name) 返回由name指定的字符串型的请求标题。 例如,要返回用户浏览器信息就查询user-agent标题: String browser=request.getHeader(user-agent);npublic long getDateHeader(String name) 对于一个代表日期类型的请求标题,应用用本方法来查
19、询。需要说明 的是它的返回值是long型的,表示从GMT时间1970年1月1日开始的毫秒数。npublic int getIntHeader(java.lang.String name) 对于整数型的请求标题则需要使用本方法来查询。npublic java.util.Enumeration getHeaderNames() 返回请求提供的所有标题的名字组成的一个Enumeration对象。3.3 处理发往Servlet的客户端请求 -提取提取请求标题信息请求标题信息http请求结构常见的HTTP请求标题HTTP响应的基本结构以下ServletRequest接口方法供servlet获取请求路径请
20、求路径npublic String getScheme() 返回用于建立请求的协议方案,如http、https或ftp。npublic String getServerName() 返回请求所要寻找的服务器的名字。npublic int getServerPort() 返回请求使用的端口号。3.3 处理发往Servlet的客户端请求 -获取获取请求路径的信息请求路径的信息以下ServletRequest接口方法供servlet获取客户信息客户信息npublic String getRemoteAddr() 返回客户的IP地址。npublic String getRemoteHost() 返回客户的完整的名字。2.3 处理发往Servlet的客户端请求 -获取获取客户信息客户信息 有时我们会利用HttpServl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 代办产品购销合同范例
- 商场招标合同范本
- 商铺改造项目合同范本
- 代注册授权合同范本
- 水利工程师水力学考试题含参考答案
- 1+x母婴考试模拟题(附参考答案)
- 高级西式面点师试题+答案
- 正常人体结构试题(附答案)
- 四川省德阳市高中2022级(2025届)高三质量监测考试(二)(德阳二诊)数学试卷(无答案)
- 技术经理年度工作总结
- 新教科版四年级上册科学全册重点题型练习课件(含答案)
- 防灾减灾地质灾害防御应对讲座培训课件ppt
- 2023年天津高考英语听力试题及原文
- 火力发电厂OVATION 与西门子控制系统之间通讯实现
- 家庭节约用水
- 电喷系统原理及故障维修手册
- 电力事业部岗位职责
- 走进现代舞智慧树知到答案章节测试2023年浙江大学
- 同济大学数据库课程期末考核试卷(A卷)
- 深基坑变形监测方案
- 公司首件确认表
评论
0/150
提交评论