知道了Servlet的作用后,我们来看一个Servlet的程序运行实例,为什么要看运行实例呢?因为要想成功运行一个Servlet程序,需要配置一些文件。

Servlet程序的编写


开发一个可以处理的HTTP请求的Servlet程序,肯定是要继承HttpServlet类,而且在自定义中Servlet类中至少还要覆写HttpServlet类中提供的doGet()方法,方法如下

  1. public void doGet(HttpServletRequest req,HttpServletResponse resp)  
  2.                throws ServletException,IOException 

从此方法中不难看出,此方法可以使用request和response对象。

理解不了不要担心,我们来以一个实例说明一下,从Hello World说起。

在Myeclipse中创建项目test,然后创建包Servlet,在包底下创建Servlet_01.java。如下图所示:

Servlet开发【02】一个Servlet程序运行详解_Servlet开发

建好项目后不要急着写代码,我们还要导入一个jar包----Servlet-api.jar,这是Servlet的jar包,这个包需要去网上下载,不过本文末尾附加了此包的下载链接

将jar包导入Myeclipse中的lib文件中

然后编写Servlet_01.java的代码,如下:

  1. Servlet_01.java  
  2. package Servlet;  
  3. import java.io.*;  
  4. import javax.servlet.ServletException;  
  5. import javax.servlet.http.*;  
  6. public class Servlet_01 extends HttpServlet{  
  7.     public void doGet(HttpServletRequest req,HttpServletResponse resp)  
  8.                throws ServletException,IOException{  //覆写doGet()方法  
  9.         PrintWriter out=resp.getWriter(); //准备输出  
  10.         out.println("<html>");  
  11.         out.println("<head><title>WEB开发</title></head>");  
  12.         out.println("<body>");  
  13.         out.println("<h1>Hello World</h1>");  
  14.         out.println("</body>");  
  15.         out.println("</html>");  
  16.         out.close();//关闭输出  
  17.     }  
  18. }  

        此代码中继承了HttpServlet,然后重写了doGer()方法,本程序首先从HttpServletResponse对象中取得一个输出流对象,然后通过打印输出HTML元素。

      在代码中request变成了req,response变成了resp,虽然名称变化了,但是其操作的功能是一样的,并没有变化

    大家可以看到,HTML的代码都是用out.println("<>")来输出的,这样很麻烦对吧,所以就是为了避免Servlet编程的这样麻烦,JSP才出世了,JSP就是为了输出方便才被广发应用的。也就是说JSP在一定程度上就是Servlet,Servlet要比JSP早。

    一个Servlet程序就编写好了,但是现在还没有办法访问和执行,因为我们得需要配置一些东西来支持Servlet的运行。

Servlet程序运行的前提配置操作

        虽然一个Servlet已经正常的开发完成了,但是现在此Servlet并不能被外部所访问,因为还缺少了另一个配置,这个配置就是映射的配置。即:每一个Servlet都必须通过web.xml文件进行映射的路径指定。这个web.xml在tomcat/webapps/test项目名称/WEB-INF/web.xml,用记事本打开,在<web-app></web -app>之间的随意某个地方写上如下代码:

  1. <servlet> 
  2.      <servlet-name>Servlet</servlet-name>        
  3.   <servlet-class>Servlet.Servlet_01</servlet-class> 
  4. </servlet> 
  5. <servlet-mapping> 
  6.      <servlet-name>Servlet</servlet-name> 
  7.   <url-pattern>/Servlet/Servlet_01</url-pattern> 
  8. </servlet-mapping> 

如下图所示:

Servlet开发【02】一个Servlet程序运行详解_Servlet程序运行_02

     ervlet-name 可以自己命名,但是两个servlet-name必须一致。

    servlet-class   为路径,就是包.类 的名称。

    url-pattern   为虚拟路径,访问的时候就通过这个路径进行访问,这个路径是自己命名的。

     整个命名中,只有servlet-class 中的内容是固定的,取决于自己包的名称和.java的名称,其他的都是自己命名的,但是自己命名的要自己记住。

运行操作

     修改完web.xml之后需要重启tomcat服务器,(注意:只要web.xml中的内容有变化,就必须重新启动服务器)如果没有错误的话,我们就可以在浏览器中输入:http://localhost:8080/项目名称/web.xml中配置的url-pattern的名称   ,在我们的这个项目中如下;http://localhost:8080/test/Servlet/Servlet_01

  

运行后如下图所示:

Servlet开发【02】一个Servlet程序运行详解_Servlet程序运行_03

  注意:
      此操作中,有三点是必须得注意的:               
   1.   web.xml中的配置一定要配置正确了,尤其是路径classpath是包名称    +类名称。在<url-pattern>中是在浏览器中写入的内容。                      
   2. 运行的时候在浏览器中输入的地址是 <url-pattern>中自己写的内容,比如在web.xml中的url-pattern>中写的是/A,那么在地址栏中输入的就是
http://localhost:8080/test/A
.
   3. 一定要注意覆写的方法,以及Servlet代码的写法。