没有合适的资源?快使用搜索试试~ 我知道了~
java_Servlet入门教程
需积分: 15 1 下载量 117 浏览量
2013-08-12
00:44:11
上传
评论
收藏 867KB PDF 举报
温馨提示
![preview](https://dl-preview.csdnimg.cn/5909551/0001-c0df3b2c5f47b773ef5ff86e17651ee4_thumbnail.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
试读
51页
java_Servlet入门教程,快速了解java_Servlet,并且使用
资源推荐
资源详情
资源评论
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/release/download_crawler_static/5909551/bg1.jpg)
教 学 活 动 首 页
基 本 内 容
第 7 章 Java Servlet
教学目的与要求:通过本章的学习让学生了解如何用 servlet 读写文件,用 servlet 访
问数据库;理解 servlet 工作原理,servlet 共享变量的使用;掌握编译和安装 servlet,
通过 JSP 页面调用 servlet,HttpServlet 类,掌握会话管理。
教学内容:
7.1 servlet 工作原理
7.2 编译和安装 servlet
7.3 通过 JSP 页面调用 servlet
7.4 servlet 共享变量
7.5 HttpServlet 类
7.6 用 servlet 读写文件
7.7 用 servlet 访问数据库
7.8 会话管理
教学基本要求:
了解:用 servlet 读写文件,用 servlet 访问数据库
理解:servlet 工作原理,servlet 共享变量
掌握:编译和安装 servlet,通过 JSP 页面调用 servlet,HttpServlet 类,会话管理
教学重点教学难点:
servlet 工作原理,编译和安装 servlet,通过 JSP 页面调用 servlet,HttpServlet 类,
会话管理
教学方法:
教学手段:多媒体教学和计算机程序演示
教学小结: (见教学进程)
作业与思考:见课后习题
课后记载:
1
![](https://csdnimg.cn/release/download_crawler_static/5909551/bg2.jpg)
教 学 进 程
第 7 章 Java Servlet
我们已经知道,SUN 公司以 Java Servlet 为基础,推出了 Java Server Page。JSP 提供
了 Java Servlet 的几乎所有好处,当一个客户请求一个 JSP 页面时,JSP 引擎根据 JSP 页面
生成一个 Java 文件,即一个 servlet。这一章,将对 servlet 做一个较详细的介绍,这不仅
对于深刻理解 JSP 有一定的帮助,而且通过学习 servlet,还能使我们选择使用
JSP+javabeans+servlet 的模式来开发我们的 Web 应用程序。
我们已经知道,用 JSP 支持 JavaBeans 这一特点,可以有效的管理页面的静态部分和页
面的动态部分。另外,我们也可以在一个 JSP 页面中调用一个 servlet 完成动态数据的处理,
而让 JSP 页面本身处理静态的信息。因此,开发一个 Web 应用有两种模式可以选择:
(1) JSP+javabeans
(2) JSP+javabeans+servlet
7.1 Servlet 工作原理
servlet 由支持 servlet 的服务器:servlet 引擎,负责管理运行。当多个客户请求一
个 servlet 时,引擎为每个客户启动一个线程而不是启动一个进程,这些线程由 servlet 引
擎服务器来管理,与传统的 CGI 为每个客户启动一个进程相比较,效率要高的多。
7.1.1 Servlet 的生命周期
学习过 Java 语言的人对 Java Applet(Java 小应用程序)都很熟悉,一个 Java Applet
是 java.applet.Applet 类的子类,该子类的对象由客户端的浏览器负责初始化和运行。
servlet 的运行机制和 Applet 类似,只不过它运行在服务器端。一个 servlet 是 javax.servlet
包中 HttpServlet 类的子类,由支持 servlet 的服务器完成该子类的对象,即 servlet 的初
始化。
Servlet 的生命周期主要有下列三个过程组成:
(1)初始化 servlet。servlet 第一次被请求加载时,服务器初始化这个 servlet,即创
建一个 servlet 对象,这对象调用 init 方法完成必要的初始化工作。
(2)诞生的 servlet 对象再调用 service 方法响应客户的请求。
(3)当服务器关闭时,调用 destroy 方法,消灭 servlet 对象。
init 方法只被调用一次,即在 servlet 第一次被请求加载时调用该方法。当后续的客户
请求 servlet 服务时,Web 服务将启动一个新的线程,在该线程中,servlet 调用 service 方
法响应客户的请求,也就是说,每个客户的每次请求都导致 service 方法被调用执行。
7.1.2 init 方法
该方法是 HttpServlet 类中的方法,我们可以在 servlet 中重写这个方法。
方法描述:
public void init(ServletConfig config) throws ServletException
servlet 第一次被请求加载时,服务器初始化一个 servlet,即创建一个 servlet 对象,
这个对象调用 init 方法完成必要的初始化工作。该方法在执行时,servlet 引擎会把一个
2
![](https://csdnimg.cn/release/download_crawler_static/5909551/bg3.jpg)
SevletConfig 类型的对象传递给 init()方法,这个对象就被保存在 servlet 对象中,直到
servlet 对象被消灭,这个 ServletConfig 对象负责向 servlet 传递服务设置信息,如果传递
失败就会发生 ServeletException,servlet 就不能正常工作。
我们已经知道,当多个客户请求一个 servlet 时,引擎为每个客户启动一个线程,那么
servlet 类的成员变量被所有的线程共享。
7.1.3 service 方法
该方法是 HttpServlet 类中的方法,我们可以在 servlet 中直接继承该方法或重写这个
方法。
方法描述:
public void service(HttpServletRequest request HttpServletResponse
response) throw
ServletException,IOException
当 servlet 成功创建和初始化之后,servlet 就调用 service 方法来处理用户的请求并
返回响应。Servlet 引擎将两个参数传递给该方法,一个 HttpServletRequest 类型的对象,
该对象封装了用户的请求信息,此对象调用相应的方法可以获取封装的信息,即使用这个对
象可以获取用户提交的信息。另外一个参数对象是 HttpServletResponse 类型的对象,该对
象用来响应用户的请求。和 init 方法不同的是,init 方法只被调用一次,而 service 方法可
能被多次的调用,我们已经知道,当后续的客户请求 servlet 服务时,Servlet 引擎将启动一
个新的线程,在该线程中,servlet 调用 service 方法响应客户的请求,也就是说,每个客户
的每次请求都导致 service 方法被调用执行,调用过程运行在不同的线程中,互不干扰。
7.1.4 destroy 方法
该方法是 HttpServlet 类中的方法。servlet 可直接继承这个方法,一般不需要重写。
方法描述:
public destroy()
当 Servlet 引擎终止服务时,比如关闭服务器等,destroy()方法会被执行,消灭 servlet
对象。
7.2 编译和安装 servlet
7.2.1 简单的 servlet 例子
在下面的例子 1 中,Hello 扩展了 HttpServlet。
例子 1
servlet 源文件
Hello.java:
import java.io.*;
import javax.servlet.*;
3
![](https://csdnimg.cn/release/download_crawler_static/5909551/bg4.jpg)
import javax.servlet.http.*;
public class Hello extends HttpServlet
{ public void init(ServletConfig config) throws ServletException
{super.init(config);
}
public void service(HttpServletRequest reqest,HttpServletResponse response)
throws IOException
{ //获得一个向客户发送数据的输出流:
PrintWriter out=response.getWriter();
response.setContentType("text/html;charset=GB2312");//设置响应的 MIME
类型。
out.println("<HTML> <BODY>");
out.println("Simple servlet");
out.println("</body> </html>");
}
}
7.2.2 编译 servlet
为了编译 servlet 源文件,需要 HttpServlet、HttpServletRequest 等类,JDK 内置包
中并不包含这些类文件。为了能编译 servlet 源文件得到创建 servlet 用的字节码文件,需
要在环境变量中包含 servlet.jar,这个 jar 文件在 TOMCAT 安装目录的 common\lib 文件下,
如图 7.1 所示(也可以到 sun 公司网站下载编译 servlet 所需要的类)。
对于 window2000,用鼠标右键点击“我的电脑”,弹出菜单,然后选择属性,弹出“系
统特性”对话筐,再单击该对话框中的高级选项,然后点击按钮“环境变量”,编辑 classpath,
添加新的环境变量的值:
D:\Tomcat\jakarta-tomcat-4.0\common\lib\servlet.jar;
我们将上述 servlet 的源文件 Hello.java 保存到 F:\2000,然后编译生成字节码文件
Hello.class
7.2.3 存放 servlet 的目录
(1)所有 web 服务目录可使用的 servlet 的存放位置
图 7.1 编译 servlet 所需要的 jar 文件
4
![](https://csdnimg.cn/release/download_crawler_static/5909551/bg5.jpg)
如果让所有 web 服务目录都可以使用该 servlet,那么创建这个 servlet 的字节码文件
需存放在 Tomcat 安装目录的 classes 目录中,例如,本书所用机器的目录就是:
D:tomcat\Jakarta-tomcat-4.0\classes,如图 7.1 所示。
我们已经知道,servlet 第一次被请求加载时,服务器初始化一个 servlet,即创建一
个 servlet 对象,这对象调用 init 方法完成必要的初始化工作。如果你对 servlet 的源文件
进行了修改,并将新的字节码文件存放到 classes 中,如果服务器没有关闭的话,新的 servlet
不会被创建,因为,当后续客户请求 servlet 服务时,已初始化的 servlet 将调用 service
方法响应客户。
(2)只对 examples 服务目录可用的 seclet 的存放目录
examples 是 TOMCAT 引擎的默认 web 服务目录之一。
如果想让某个 servlet 只对 examples 目录可用,那么创建该 servlet 的字节码文件只
需存放在 webapps/example/Web-inf/classes 目录中。
存放在该目录中的 servlet 和存放在上面(1)中所述目录中的 servlet 有所不同,服
务器引擎首先检查 webapps/example/Web-inf/classes 目录中的创建该 servlet 的字节码文
件是否被修改过,如果重新修改过,就会用消灭 servlet,用新的字节码重新初始化 servlet。
如果经常调试 servlet,可以把 servlet 放在 webapps/example/Web-inf/classes。需
要注意的是,当用户请求 servlet 服务时,由于服务器引擎每次都要检查字节码文件是否被
修改过,导致服务器的运行效率降低。
7.2.4 运行 servlet
如果一个 servlet 对所有的 web 服务目录可用,那么只要在服务器引擎启动后,在浏览
器地址栏键入:
http://localhost:8080/web 服务目录/servlet/创建 servlet 类的名字
即可,例如,对于用上述 Hello 创建的 servlet,
(1) Root 服务目录
http://localhost:8080/servlet/Hello
(2) friend 目录(我们自定义的一个 web 服务目录)
http://localhost:8080/friend/servlet/Hello
如果是只对 examples 服务目录可用的 servelt,那么只要在服务器引擎启动后,在浏览
器地址栏键入:
http://localhost:8080/examples/servlet/创建 servlet 类的名字
5
剩余50页未读,继续阅读
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/17fb94322ee64265a5f15e482de0e467_u011018552.jpg!1)
迭代造轮子
- 粉丝: 0
- 资源: 7
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)