第4章javaservlet技术剖析.

上传人:今*** 文档编号:107741120 上传时间:2019-10-20 格式:PPT 页数:55 大小:1.96MB
返回 下载 相关 举报
第4章javaservlet技术剖析._第1页
第1页 / 共55页
第4章javaservlet技术剖析._第2页
第2页 / 共55页
第4章javaservlet技术剖析._第3页
第3页 / 共55页
第4章javaservlet技术剖析._第4页
第4页 / 共55页
第4章javaservlet技术剖析._第5页
第5页 / 共55页
点击查看更多>>
资源描述

《第4章javaservlet技术剖析.》由会员分享,可在线阅读,更多相关《第4章javaservlet技术剖析.(55页珍藏版)》请在金锄头文库上搜索。

1、第4章 Java Servlet技术,主要内容,4.1 Servlet概述 4.2 Servlet生命周期 4.3 使用Servlet 4.4 Applet与Servlet通信,4.1 Servlet概述,Servlet是服务器端的小应用程序,用于响应客户端的请求;并且一般会把处理的结果以HTML的形式返回给客户端。 Servlet是由服务器端调用和执行的Java类。 Servlet与JSP有着直接的血缘关系。 (JSP代码就是先转换为Servlet,然后才被编译执行),Servlet介绍,什么是Servlet Servlet是服务器端的小应用程序,用于响应客户端的请求;并且一般会把处理的结果

2、以HTML的形式返回给客户端。 Servlet是由服务器端调用和执行的Java类。 Servlet与JSP有着直接的血缘关系。 (JSP代码就是先转换为Servlet,然后才被编译执行),Servlet介绍,Servlet的生命周期 当客户端第一次请求Sevlet时,Servlet被加载到内存 服务器创建这个Servlet的实例,并调用该对象的init()方法进行初始化 每当客户端发来请求的时候,容器创建请求对象和响应对象,并调用该对象的service()方法对用户的请求进行处理,并对用户进行响应 当服务器端不再需要该Servlet的时候,服务器调用destroy()方法卸载该Servlet

3、注意:在Servlet的生命周期中,service()方法是其中的核心。每当客户端向Servlet发出一个请求时,service()方法就会被调用。,Servlet介绍,默认条件下,service()方法会调用与HTTP请求相应的do功能。比如:客户是以GET方式提交请求,则service()方法会调用doGet()方法;客户是以POST方式提交请求,则service()方法会调用doPost()方法。 注意:用户在地址栏中输入该JSP页面的URL直接访问该页面时,使用的是get请求。 Servlet是用Java编写的且协议和平台都独立的服务器端的组件。与客户端组件Applet相对应。Serv

4、let扩展了面向请求/响应的服务器的模块,使用平台专用的API进行服务器端的编程。Servlet为服务器和基于Web的客户之间的通信提供了一条更为简单的途径。它的特殊用途包括: (1) 允许用户之间的合作。一个Servlet可以同时并发处理大量的请求,而且可以同步请求,因此使Servlets能够支持像在线会议这样的系统。Servlets能够并发地服务多个客户。,(2) 转发请求。Servlets能够转发请求到其它的服务器和Servlets,因此Servlets能够被用来在多个镜像同一个内容的服务器之间来平衡负载,在多个服务器上根据任务类型或者组织边界分割单一的逻辑服务。,4.2 Servlet

5、生命周期,图4.1 Servlet的生命周期,1. 初始化Servlet 当服务器载入一个Servlet时,服务器运行Servlet的init方法。初始化在客户请求被处理和Servlet被销毁之前完成。,2. Servlet_Client交互 初始化成功后,HTTP Servlet调用Service方法处理客户请求,Service方法将每个请求分配到处理这个请求的方法,从而支持标准的HTTP客户请求。HttpServlet类中的方法处理客户请求时使用以下两个参数: (1) HttpServletRequest对象:封装了从客户来的数据,主要提供了访问初始请求数据的方法和字段;访问客户数据时使用

6、getParameter方法得到一个已命名参数的值。 (2) HttpServletResponse对象:封装了对客户的响应。使用getWriter方法返回文本数据给客户(可以以HTML网页的形式表现出来)。,Service方法支配的HTTP请求如表13.1所示。,表4.1 Service方法支配的HTTP请求,通常,编写的Servlet应该重载处理它支持的HTTP交互的方法。如果出错,这些方法返回一个BAD_REQUEST(400)错误。当Servlet收到OPTIONS请求时,HttpServlet的Service方法调用doOptions方法。默认的doOptions的实现自动地决定了支

7、持何种HTTP选项和返回信息。HTTP Servlets通常能够并发地服务多个客户。如果Servlet中的这个方法对于客户访问共享资源是可行的,那么你可以通过创建在某一时刻只能处理一个客户请求的Servlet来处理并发。,3. 销毁Servlet Servlet一直运行直到服务器销毁它们,比如在系统管理员的要求下。当一个服务器销毁一个Servlet时,服务器运行Servlet的Destroy()方法。方法只运行一次,服务器将不再运行Servlet,直到服务器重新载入和重新初始化Servlet。,4.3 使用Servlet,4.3.1 编写Servlet 【例13.1】 在客户端填写“用户注册信

8、息”网页,并将此网页提交到后台服务器端Servlet,服务器端Servlet程序给予响应,并以网页的形式按行输出用户提交的基本信息。 1. 客户端 客户端是一个“用户注册信息”的HTML网页,如图13.2所示。用户输入个人信息,点击“确定”按钮,将表单数据提交到服务器,然后等待服务器的响应。Index.html源文件代码如下:, 用户注册信息收集 用户注册信息 , 姓名: 身份证号: 性别 男 女,职业 计算机业 医生 教师 军队 个性化宣言 ,图4.2 “用户注册信息”网页,在网页index.html中要注意表单的书写,表单的action属性对应服务器端的Servlet,本例中取值为http

9、:/192.100.100.43:8080/examples/Servlet/user.UserServlet;method属性是访问方法,本例中为POST方法。表13.2是表单中的元素标签和命名,可以看到除去“确定”和“清空”,其它的元素标签在第三栏都有一个对应的名字,Servlet通过这些名字获得用户在界面上输入的值,而用户单击“确定”按钮时,表单内容就提交到action属性指定的Servlet。,表4.2 表单元素标签及命名,2. 服务器端 服务器端Servlet收集用户界面输入的数据(见图4.3),然后按行返回这些内容,结果如图4.4所示。注意传输过程中中文字符可能会有出错情况,因此再

10、添加一个转换字段,使得Servlet能够正确打印输出。 /程序文件名:UserServlet.java package user; import java.io.*; import javax.Servlet.*; import javax.Servlet.http.*; public class UserServlet extends HttpServlet ,String name,number,sex,job,ta; public void init() throws ServletException super.init(); name = new String(); number =

11、 new String(); sex = new String(); job = new String(); ta = new String(); /解决中文转换问题 public String parseChinese(String inStr) ,String s = null; byte temp; if (inStr = null) /System.out.println(“Warn:Chinese null founded!“); return new String(“); try temp=inStr.getBytes(“iso-8859-1“); s = new String(t

12、emp); catch(UnsupportedEncodingException e) ,System.out.println (e.toString(); return s; public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException /获取用户界面输入的值 name = req.getParameter(“name“); number = req.getParameter(“number“); sex = req.getParameter(“

13、sex“); job = req.getParameter(“job“);,ta = req.getParameter(“ta“); /进行输出 res.setContentType(“text/html; charset=GB2312“); PrintWriter out = res.getWriter(); out.println(“); out.println(“注册信息返回结果“); out.println(“ 姓名:“ + parseChinese(name); out.println(“ 身份证号:“ + number); out.println(“ 性别:“ + parseChi

14、nese(sex) + “ 职业:“ + parseChinese(job); out.println(“个性化宣言:“ + parseChinese(ta) + “); ,图4.3 用户输入注册信息,图4.4 Servlet返回信息,4.3.2 编译、配置Servlet 安装的Java包是没有带Servlet的JAR文件,所以将D:Apache Tomcat 4.0commonlib目录下的Servlet.jar配置到路径包的安装路径下库的扩展目录中,编译时会自动连接库,如本书配置到的目录为D:j2sdk1.4.0_01jrelibext。在命令行提示符下键入命令javac UserServ

15、let.java编译文件,生成类UserServlet.class。,Servlet是服务器端组件,所以必须配置到服务器端。对于Tomcat 4.0服务器,将index.html配置到物理路径D:Apache Tomcat 4.0webappsROOTuser目录下,对应的网络路径就是http:/192.100.100.43:8080/user/index.html;将UserServlet配置到物理路径下的D:Apache Tomcat 4.0webappsexamplesWEB-INFclassesuser目录下,对应的网络地址就是http:/192.100.100.43:8080/exa

16、mples/Servlet/user.UserServlet。这些配置信息由index.html中的Action属性标明。,如果希望能够配置到根目录下,则在开始-程序-Apache Tomcat 4.0-Configuration中单击EditServer Configuration,然后找到行: - - 删除第二个,将以上语句变成: ,将机器重启动,使得配置文件生效,并在D:Apache Tomcat 4.0webappsROOTWEB-INF路径下建立classes目录,然后将UserServlet.java源文件中的语句行package user;去掉,重新编译成.class类文件并放入此目录,则action属性对应的网络地址为 http:/192.100.100.43:8080/Servlet/ UserServlet,4.4 Applet与Servlet通信,Applet与Servlet的通信过程的基本原理相当于HTML网

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号