JSP  部署和运行Servlet
在这一节中,我们将通过一个例子来帮助读者理解Servlet的开发和部署过程,现在开发一个简单的Servlet,其功能就是向客户端输出一个字符串“这是第一个Servlet例子”。案例的开发主要有下列步骤。
1.编写Servlet文件
编写一个Servlet,实际上就是实现编写一个实现javax.servlet.Servlet接口的类。为了简化Servlet的编写,Servlet API中给我们提供了之处HTTP的协议的javax.servlet.http.HttpServlet类,我们只需从HttpServlet类继承一个子类,在子类中完成相应的功能就可以。
打开记事本,输入下列代码:
package test;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloServlet extends HttpServlet{
public void init(ServletConfig config) throws ServletException
    {super.init(config);}
  public void service(HttpServletRequest reqest,HttpServletResponse response) throws IOException
    { //获得一个向客户发送数据的输出流:
      response.setContentType("text/html;charset=GB2312");//设置响应的MIME类型。
      PrintWriter Writer();
      out.println("<html><body>");
      out.println("<img src=baner.jpg width=100%>");
      out.println("<font color=blue size=7>这是第一个Servlet例子</font>");
      out.println("</body> </html>");
    }
  public void destroy(){}
}
将上述代码保存,名称为HelloServlet.java。打开Tomcat服务器目录C:\Tomcat 6.0\webapps\JSPExample\WEB-INF,在该文件夹下建立classes文件夹(如果有就不需要创建),将编写好的HelloServlet.java文件放到classes文件夹下。
在该文件中,引入了一个java.io包,一个javax.servlet包,javax.servlet.http包,创建的类HelloServlet继承HttpServlet类,HttpServlet类是实现Servlet程序必须要继承的类。该类包含
三个方法,init()、service()和destory()方法。其中init方法属于初始化方法,service()方法处理用户请求,destroy()方法销毁资源。在service()方法中,主要负责输出响应字符串。其中代码“response.setContentType()方法表示设置响应网页的编码形式”,代码“PrintWriter Writer()”表示获得一个输出流对象out。
2.编译Servlet文件
Servlet文件放置完成后,就可以编译该Servlet文件了。在编译Servlet程序之前,还需要配置一个classpath路径,作为Servlet运行时要加载的类库包。打开Tomcat6.0安装目录C:\Tomcat 6.0\lib,在该文件夹下存在两个jar压缩包,分别为servlet-api.jar和jsp-api.jar包。记住这两包的路径。
在桌面上右击【我的电脑】|【属性】,单击【高级】|【环境变量】,会显示【环境变量】窗口,在该窗口新建classpath系统变量名,如果该变量名存在直接追加到后面。假设classpath变量名存在,则单击【编辑】按钮,在弹出的【编辑系统变量】对话框中,加入刚才两个压缩包的路径,如:“C:\Tomcat 6.0\lib\servlet-api.jar;C:\Tomcat 6.0\lib\jsp-api.jar;”。如图5-2所示:
图5-2  环境变量配置
如果变量名称不存在,单击【新建】按钮,其过程同上述步骤相同。
上述操作完成后,打开命令提示符的窗口。进入到HelloServlet.java文件所在路径,即“C:\Tomcat 6.0\webapps\JSPExample\WEB-INF\classes”。使用 “javac –d  . Hello.java” 命令编译HelloServlet.java文件。如图5-3所示:
图5-3  编译Hello文件
文件编译成功后,会自动的在C:\Tomcat 6.0\webapps\JSPExample\WEB-INF\classes\目录下,创建一个名称test的文件夹(如果test文件夹存在,就会自动保存到此文件夹),HelloServlet.java生成的class文件已经被放置其中。
3.部署Servlet文件
HelloServlet.java文件编译完成后,并不能运行Servlet文件,还需要配置l文件。进入到C:\Tomcat 6.0\webapps\JSPL\WEB-INF目录下。假设l不存在,则新建l文件并配置,其代码如下所示:
<?xml version="1.0" encoding="iso-8859-1"?>
<web-app version="2.4"
    xmlns="java.sun/xml/ns/j2ee"
    xmlns:xsi="/2001/XMLSchema-instance"
    xsi:schemaLocation="java.sun/xml/ns/j2ee
    java.sun/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>test.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
jsp编译过程      <url-pattern>/HelloServlet</url-pattern>
  </servlet-mapping>
</web-app>
上述代码为l文件的完整代码。如果l文件存在,只需要把黑体部分加入带XML文件中即可。
在l文件中,<?xml version="1.0" encoding="ISO-8859-1"?>语句表示该XML文件的版本是1.0,使用的编码形式是ISO-8859-1,这里也可以采用GB2312,GBK,UTF-8等编码形式。<web-app>是XML文件的根节点,根节点中包含一个没有前缀的命名空间。web-app标记包含两个子标记。
servlet标记表示要加载的Servlet类所在位置,及Servlet的名称。其中包含两个子标记,<servlet-name>标记表示Servlet类的名称,该名称可以自由的命名,实际上该名称是类的实例化对象,在这里类的名称和类名最好保持一致。<servlet-class>表示Servlet类存在的位置,该类存在与test包下。
<servlet-mapping>标记表示访问Servlet类的时候,采用的URL路径。<servlet-name>是Servlet类的实例化名称,要和<servlet>标记中的名称保持一致。<url-mapping>是在访问这个Servlet时,在IE地址栏中输入的名称,该名称可以改变,这里需要注意名称的格式。
4.访问Servlet文件
上述步骤完成后,打开IE浏览器,在地址栏中输入localhost:8080/JSPExample/HelloServlet,单击【转到】,会显示如图5-4所示窗口:
图5-4  显示字符串信息
在第一次运行Servlet文件,需要配置classpath路径,当再次运行Servlet文件就不需要配置了。但是,每次运行一个Servlet文件,都需要在l文件中配置Servlet的名称,路径,URL名称。这里需要注意的是,每次修改Servlet源文件编译后,都需要重新启动Tomcat服务器,才能把修改的结果显示在客户端。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。