Servlet教程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Servlet 使用入门
目标
理解HTTP Servlet 基础知识 使用 Servlet API 理解Servlet 的生命周期
2
什么是 SERVLET?
Servlet (java服务器小程序)是一个用 Java 编写的程序, 此程序在服务器上运行以处理客户端请求.是按照Servlet 规范编写的java类
23
总结 2-2
Servlet 的生命周期包含三种方法,分别 是 init(),service() 和 destroy() Servlet 既可以扩展 GenericServlet 类, 也可以扩展 HttpServlet 类 MyEclipse 是用于开发 Web 应用程序(如 Servlet,Applet 和 JSP)的一种非常有 用的软件
根据HTTP请求方法的类型, protected的service()调用 doXXX()方法之一
15
SERVLET 的生命周期 2-1
Servlet 容器创建 Servlet 的一个实例 Servlet 的生命周期就是指创建 Servlet 实例之后其存在的时间以及何时消失 生命周期的 3个方法为:
向服务器请求信息
响应客户端请求
8
JAVAX.SERVLET 包 2-2
javax.servlet 包的类为:
ServletInputStream 类
用于从客户端读取 二ቤተ መጻሕፍቲ ባይዱ制数据
ServletOutputStream 类
用于将二进制数据 发送到客户端
9
JAVAX.SERVLET.HTTP 包
javax.servlet.http 包的接口为:
init() service() destroy()
16
SERVLET 的生命周期 2-2
生命周期的各个阶段为:
实例化
Servlet 容器创建 Servlet 的实例
初始化 服务 销毁 不可用
该容器调用 init() 方法
如果请求 Servlet,则容器调用 service() 方法
销毁实例之前调用 destroy() 方法 销毁实例并标记为垃圾收集
response.setContentType("text/html;charset=GBK"); PrintWriter out= response.getWriter(); out.println("<html><body> 您好!</body></html>");
创建设置文本格式 和 PrintWriter 对 象的方法以将数据 发送给客户端
servlet
释放内存,关闭Web服 务器调用destroy方法
关闭服务器
释放内存
客户
11
SERVLET实现:SERVLET接口(续)
Servlet实例化 把"配置"信息放在ServletConfig的对象中 调用init(ServletConfig config)方法
返回
getServletConfig方法
HttpServletRequest 接口
提供 HTTP 请求信息
HttpServletResponse 接口
提供 HTTP 响应
10
SERVLET实现:SERVLET接口
init方法 实例化调用 init方法 内存 service方法: 客户请求和响应调用该方法
servlet
请求 响应 请求 响应 客户
} }
演示:示例 1
20
SERVLET 的部署
web.xml文件中配置Servlet
<servlet> <servlet-name>clientservlet</servlet-name> <servlet-class>chapter2.ClientServlet</servlet-class> </servlet> 两个名称必须相同 <servlet-mapping> <servlet-name>clientservlet</servlet-name> <url-pattern>/clientservlet</url-pattern> </servlet-mapping>
Servlet 运 行于服务 器上
请求 客户端 响应
3
SERVLETAPI
Servlet的框架是由两个java包组成: javax.servlet和javax.servlet.http javax.servlet包中定义了所有的servlet类 都必须实现的接口和类. javax.servlet.http包中定义了采用HTTP协 议通信的HttpServlet类 Servlet的框架的核心 是:javax.servlet.Servlet接口,所有的 Servlet都必须实现这一接口.
i我们自己编写的servlet要
继承HttpServlet,一般要覆 盖doPost或者doGet方法.
iHttpServlet类的doGet方法
用于接收Get请求,doPost 方法用于接收Post请求.
13
SERVLET 体系结构
Servlet GenericServlet HttpServlet 用户自定义的 Servlet
21
LOGINSERVLE.JAVA 代码
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(CONTENT_TYPE); response.setCharacterEncoding("GB2312"); public void userInterface(HttpServletResponse response)throws PrintWriter out = response.getWriter(); IOException try { { String username = request.getParameter("username"); PrintWriter out=response.getWriter(); String password = request.getParameter("password"); out.println("<html>"); if (username.equals("") || password.equals("")){ out.println("<head><title>loginservlet</title></head>"); userInterface(response); out.println("<body bgcolor=\"#ffffff\">"); } out.println("<h1 align=center>欢迎第一次使用 欢迎第一次使用Servlet</h1>"); 欢迎第一次使用 else{ out.println("<form method=post action=/ServletModule/loginservlet"); out.println("<b>"+username + "</b> 欢迎第一次使用 欢迎第一次使用Servlet<br/>"); out.println("<br/>"); out.println("<b>今天的日期是:</b>" + new Date()); 今天的日期是: 今天的日期是 用户名: 用户名 }out.println("用户名:<input type='text' name='username'><br/>"); 密码: 密码 } out.println("密码:<input type='password' name='password'><br/>"); out.println("<input 提交'><br/>"); 提交 catch(Exception e){ type=submit value='提交 out.println("</form>"); userInterface(response); out.println("</body>"); } out.println("</html>"); out.close(); } } } 演示:示例2
12
SERVLET实现: GENERICSERVLET类和HTTPSERVLET类
abstract GenericServlet public abstract service(request,response) 继承 HttpServlet protected void service(request,response) public void service(request,response) protected void doGet(request,response) protected void doPost(request,response)
17
HELLOWORDSERVLET
编写一个HelloWordServlet类
18
部署HELLOWORLDSERVLET
在web.xml中部署Servlet后才能够使用 Servlet
19
简单 SERVLET 的结构
需要导入的包
用于处理 GET 请 求的方法
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class ClientServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) 这是一个显示 HttpServletRequest throws IOException, ServletException 接口一些 和 HttpServetResponse { 方法的简单 Servlet
public void doPost(HttpServletRequest req,HttpServletResponse res)
doPost() 方法处理客户端作出的 POST 请求.
6
HTTP SERVLET 基础知识
有两个参数:HttpServletRequest和 HttpServletResponse,这两个类实现了 ServletRequest接口和ServletResponse接口 ServletRequest接口中封装了客户请求信息. 如客户请求方式,参数名,参数值,客户端正在 使用的协议,以及发出客户请求的远程主机信 息等 ServletResponse接口为Servlet提供了返回相 应结果的方法
14
SERVLET实现: GENERICSERVLET类和HTTPSERVLET类(续)
servlet收到一个请求 这个public的service()方法 调用protected的service() 方法
调用public的service()方法
把参数分别转换为 HttpServletRequest和 HttpServletResponse
7
JAVAX.SERVLET 包 2-1
javax.servlet 包的接口为:
ServletConfig 接口 ServletContext 接口
在初始化的过程中由 Servlet 容器使用 定义 Servlet 用于获取来自 其容器的信息的方法
ServletRequest 接口 ServletResponse 接口
4
SERVLETAPI
5
HTTP SERVLET 基础知识
HttpServlet 类提供一个抽象类以创建 HTTP Servlet
public void doGet(HttpServletRequest req,HttpServletResponse res)
doGet() 方法处理客户端作出的 GET 请求.
22
总结 2-1
Servlet 运行于服务器上,它接受请求并 用请求的数据响应客户端 HTTP 是一个广泛使用的协议,用于在客户 端和服务器之间传输数据 Servlet 广泛使用 HTTP 协议,因此称为 HTTP Servlet HTTP Servlet接收 HTTP 请求并发送HTTP 响应 Servlet API 包含在两个包中,即 javax.servlet 和 javax.servlet.http 中
相关文档
最新文档