第8章 Java Servlet基础

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

<Input Type=submit value="提交">
</FORM></BODY></HTML>
Computer.java
package star.moon; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Computer extends HttpServlet { public void init(ServletConfig config) throws ServletException { super.init(config); } public void service(HttpServletRequest request,HttpServletResponse response)throws IOException { response.setContentType("text/html;charset=GB2312"); PrintWriter out=response.getWriter();
我们编写的web.xml文件的内容如下(使用纯文本编辑) <?xml version="1.0" encoding="ISO-8859-1"?> <web-app> <servlet> <servlet-name>hello</servlet-name> <servlet-class>star.moon.Hello</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/lookHello</url-pattern> </servlet-mapping> </web-app>
第8章Java Servlet基础

JSP页面运行原理:当用户请求服务器上的一个JSP页面时, 服务器负责把JSP页面文件转译成一个JAVA文件,再将这 个Java文件编译生成字节文件,然后将这个字节文件加载 到内存,并通过它来执行它来响应请求。 服务器将字节码创建了一个对象,然后让这个对象调用方 法响应用户的请求,当多个用户请求同一个JSP页面时, 服务器启动多个线程,然后调用方法响应用户的请求。 Java Servlet技术就是在服务器端创建响应用户请求对象 的技术,被创建的对象习惯上称为一个Servlet对象。
8.3.1通过表单向Servlet提交数据
例8-1 JSP页面通过表单向Servlet提交一个正实数, Servlet负责计算这个数的平方根返回给客户。 Web.xml文件需要添加的内容如下:
<servlet> <servlet-name>computer</servlet-name> <servlet-class>star.moon.Computer</servlet-class> </servlet> <servlet-mapping> <servlet-name>computer</servlet-name> <url-pattern>/getResult</url-pattern> </servlet-mapping>
<?xml version="1.0" encoding="ISO-8859-1"?>
Web.xml文件中标记的内容和作用
<web-app>根标记: Xml文件必须有一个根标记,web.xml文件的根标记是<webapp>。 <servlet>标记: Web.xml文件中可以有若干个<servlet>标记,该标记的内容由 Tomcat服务器负责处理。 <servlet>标记需要有2个字标记: <servlet-name>:创建servlet对象的名字 <servlet-class>:指定Tomcat服务器用哪个类来创建Servlet 对象。 注意:<servlet>标记可以有多个,但要求<servlet-name>子 标记的内容互不相同;

下 面 的 例 子 是 一 个 简 单 的 Servlet 类 , 该 类 创 建 的 Servlet可以响应用户的请求,即用户请求这个Servlet 时,会在浏览器看到“您好,欢迎您。Hello,You are Welcome”,这样响应的信息。
例8-1 package star.moon; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Computer extends HttpServlet { public void init(ServletConfig config) throws ServletException { super.init(config); } public void service(HttpServletRequest request,HttpServletResponse response) throws IOException { response.setContentType("text/html;charset=GB2312"); //设置响应的MIME类型 PrintWriter out=response.getWriter();//获得一个向客户发送数据的输 出流 out.println(“<HTML><BODY>”); out.println(“您好,欢迎您。Hello,You are Welcome”); out.println(“</BODY></HTML>”); } }
直接继承或重写该方法。
service()方法的生命格式如下:
public void service(HttpServletRequest request,HttpServletResponse response)throws IOException
当Servlet对象成功创建和初始化后,该对象调用service()方 法来处理客户的请求并返回响应。 服务器将两个方法传递给该方法: (1)HttpServletRequest对象:封装了用户的请求信息 (2)HttpServletResponse对象:用来响应用户的请求 注:service()可以被调用多次,调用过程运行在不同的线程中, 互不干扰。
2. 编写web.xml文件 为了让Tomcat服务器用我们的字节码文件创建对 象,我们必须为Tomcat编写一个部署文件。 部署文件的命名: 该部署文件是一个XML文件,名字是web.xml,该文 件由Tomcat服务器负责管理。 部署文件的存放: web.xml文件保存到Web服务目录的WEB-INF子目录中。 如C:\JSP\WEB-INF目录
givenumber.jsp页面
<%@ page contentType="text/html;Charset=GB2312" %> <HTML><BODY ><Font size=2> <P>输入一个数,servlet求这个数的平方根: <FORM action=“getResult" method=post> <Input Type=text name=number>
Web.xml文件中标记的内容和作用
在web.xml文件中出现一个<servlet>标记就会对应地出现一个 <servlet-mapping>标记。 <servlet-mapping>也有两个子标记: <servlet-name>:创建servlet对象的名字 <url-pattern>: 用户请求servlet对象的url <servlet-mapping>标记用来指定用户用怎样的模式来请求 Servlet对象,如<url-pattern>标记的内容是“/lookHello”, 那么用户必须通过当前web服务目录来请求Servlet,如果用户 请求服务器运行Servlet对象hello为其服务,那么在浏览器的 地址栏中输入http://127.0.0.1/lookHeloo
2.部署Servlet
1. 字节码的保存 首先将Servlet源文件编译生成字节码文件,如上述例 子Servlet类编译后的字节码文件就是Hello.class。 为了让Tomcat服务器使用Hello.class字节码创建一个 Servlet对象,需要将Hello.class保存到某个Web服务 器目录中的子目录中。 如 果 Servlet 类 Hello 的 包 名 是 :star.moon. 首 先 将 Servlet源文件编译生成字节码文件:Hello.class ,然 后复制到: Web服务目录\WEB-INF\classes\star\moon 注:在创建新的子目录后,为了让Tomcat启用新的目录, 需重新启动Tomcat服务器。
5. Servlet的生命周期
一个Servlet对象的生命周期主要由下列3个过程组成:
(1) 初始化Servlet对象。Servlet对象第一次被请求加载时, 服务器初始化这个Servlet对象,即创建一个Servlet对象, 对象调用init()方法完成必要的初始化工作。
(2)诞生的Servlet对象再调用service()方法响应客户的请求。 (3)当服务器关闭时,调用destroy()方法,消灭Servlet对象。


1. Servlet对象的创建与使用
1.1 HttpServlet类

编写一个创建Servlet对象的类就是编写一个特殊类的子 类 , 这 个 特 殊 的 类 就 是 javax.servlet.http 包 中 的 HttpServlet类。HttpServlet类实现了Servlet接口,实 现了响应用户的方法.
注:init()方法只被调用一次,即在Servlet第一次被请求加载 时调用该方法。当后续的客户请求Servlet时,Web服务将 启 动 一 个 新 的 线 程 , 在 该 线 程 中 , Servlet 对 象 调 用 service()方法响应客户的请求。
service()方法
service()是HttpServlet类中的方法,我们可以在Servlet类中
destroy()方法

该方法是HttpServlet类中的方法,一个Servlet 类可以直接继承这个方法,一般不需要重写。 当服务器终止服务时,如果关闭服务器等, destroy()方法会被执行,消灭Servlet对象。

8.3通过JSP页面调用Servlet
请求servlet对象的方式: 1.再浏览器的地址栏中输入Servlet对象的 请求格式来运行一个Servlet。 2.通过一个JSP页面来请求一个Servlet, 也就是说让JSP页面负责数据的显示,让 servlet去做和处理数据有关的事情。
关于XML文件的标记
一个XML文件应当以XML声明作为第一行,在其前面不 能有空白、其他处理指令或注释。 XML文件的开始标识: XML声明以“<?xml”标识开始、以“?>”标识结束。 注: “<?” 和“xml”之间, “?>” 和“?>”之间不能有 空格。
Encoding属性: 如果在XML声明中没有显示地指定encoding属性的值, 那么该属性默认值为UTF-8编码。 也可以将encoding属性的值设置为“ISO-8859-1” 例如:

注:当Servlet对象hello被创建之后,如果修改了 创建servlet的Java源文件,并希望用新的Java文 件生成的字节码重新创建Servlet对象hello,那么 必须重新启动Tomcat服务器。
wk.baidu.com
8.2Servlet工作原理

Servlet有Tomcat服务器负责管理运行。 当多个客户请求一个Servlet时,服务器 为每个客户启动一个线程而不是启动一 个进程,这些线程由服务器来管理。
注意:修改web.xml文件不需要重启tomcat服务器
3.运行Servlet

用户可以根据web.xml部署文件来请求服务器执行 一个Servlet对象。 根据 web.xml文件中<servlet-mapping>标记指定 的格式输入请求。 例如:http://127.0.0.1:8080/lookHello
相关文档
最新文档