创建一个Servlet程序
在目录D:\cn\itcast\firstapp\servlet目录下,编写一个Servlet
由于,直接实现Servlet接口,来编写Servlet很不方便,需要实现很多方法
因此,可以通过继承Servlet接口的实现类javax.servlet.GenericServlet来实现
示例代码
HelloWorldServlet.java
package cn.itcast.firstapp.servlet;
import java.io.*;
import javax.servlet.*;
public class HelloWorldServlet extends GenericServlet{
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException{
//得到输出流PrinterWriter对象,Servlet使用输出流来产生响应
PrintWriter out=response.getWriter();
//使用输出流对象向客户端发送字符数据
out.println("Hello World");
}
}
可以看到,HelloWorldServlet类继承GenericServlet之后,只实现了service()方法
因为,GenericServlet类除了Servlet接口的service()方法之外,其他方法都已经实现了
因此,继承GenericServlet类比实现Servlet接口更加简单
编译程序
进入HelloWorldServlet.java所在目录,编译HelloWorldServlet.java文件
错误提示,程序包javax.servlet不存在
因为,Java编译器在CLASSPATH环境变量中,没有找到javax.servlet包,需要将Servlet相关jar包所在的目录,添加到CLASSPATH环境变量中
由于,Servlet程序是一个JavaEE程序,而不是JavaSE程序,因此,所有的jar文件,都需要自己手动的加入classpath环境变量中,进入Tomcat安装目录下的lib目录,包含许多与Tomcat服务器相关的jar文件,其中,servlet-api.jar文件就是与Servlet相关的jar文件
打开命令行窗口,通过set classpath命令,将servlet-api.jar文件所在的目录,添加到classpath环境变量中
命令
set classpath=%classpath%;D:\Tomcat\apache-tomcat-7.0.79\lib\servlet-api.jar
编译完成
在Tomcat的webapps目录下,创建目录chapter04
Chapter04为Web应用的名称,然后,在chapter04目录下创建\WEB-INF\classes目录,将HelloWorldServlet.class文件复制到classes目录下
注意
复制时需要将该文件所在的目录,\cn\itcast\firstapp\servlet一起复制过去
配置web.xml文件
进入目录WEB-INF,编写一个web.xml文件
web.xml文件的编写方式,参考Tomcat安装目录下的web.xml文件,该文件位于examples\WEB-INF子目录下
代码如下
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<servlet>
<servlet-name>HelloWorldServlet</servlet-name>
<servlet-class>cn.itcast.firstapp.servlet.HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/HelloWorldServlet</url-pattern>
</servlet-mapping>
</web-app>
配置信息
<servlet>
,用于注册Servlet
它的两个子元素<servlet-name>
和<servlet-class>,
分别用来指定Servlet名称,及其完整类名
<servlet-mapping>
,用于映射Servlet对外访问的虚拟路径,它的子元素<servlet-name>
的值,必须和<servlet>
元素中<servlet-name>
相同
<url-pattern>
,用于指定访问该Servlet的虚拟路径,该路径以正斜线/开头,表示当前Web应用程序的根目录
启动Tomcat服务器,在浏览器的地址栏中输入URL地址
http://localhost:8080/chapter04/HelloWorldServlet
访问HelloWorldServlet