本章目标
掌握Servlet程序的基本组成
掌握Servlet程序的配置

 

实现要求
如果要开发一个可以处理HTTP请求的Servlet程序,肯定是要继承HttpServlet类,而且在自定义的Servlet类中至少还要覆写HttpServlet类中提供的doGet()方法
protected void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException

 

HelloServlet.java

package org.lxh.Servletdemo;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet {//继承HttpServlet
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {//覆写doGet()方法
		PrintWriter out = response.getWriter();//准备输出
		out.println("<html>");//输出html元素
		out.println("<head><title>a servlet</title></head>");//输出html元素
		out.println("<body>");//输出html元素
		out.println("<h3>hello wored</h3>");//输出html元素
		out.println("</body>");//输出html元素
		out.println("</html>");//输出html元素
		out.close();//关闭输出
	}
}

 

编译时会出现找不到servlet包的错误
如果用户使用手工的方式编译一个Servlet的话,则有可能在编译时会出现以下的错误提示:
    软件包 javax.servlet 不存在
    软件包 javax.servlet.http 不存在
这两个Servlet的开发包实际上是保存在%TOMCAT_HOME%\lib\servlet-api.jar路径下,但是由于现在使用javac命令编译的时候,是使用的JAVA SE环境编译的,但是Servlet本身已经属于JAVA EE的应用范畴,所以就出现了找不到开发包的情况,此时,有两种方式:
    一种是通过classpath指定,在classpath中加入此开发包的路径
    另外一种方式是将Servlet的开发包保存在%JAVA_HOME%\jdk1.6.0_02\jre\lib\ext目录之中  

 

配置web.xml文件

<servlet><!-- 定义servlet -->
   <servlet-name>hello</servlet-name><!-- 与 servlet-mapping 相对应 -->
   <servlet-class>org.lxh.Servletdemo.HelloServlet</servlet-class><!-- 定义包.类名称 -->
  </servlet>
  <servlet-mapping><!-- 映射路径 -->
   <servlet-name>hello</servlet-name><!-- 与servlet相对应 -->
   <url-pattern>/HelloServlet</url-pattern><!-- 页面的映射路径 -->
  </servlet-mapping>

 

效果图:

永远的“Hello World” —— 第一个Servlet程序_html

 

修改web.xml,增加多个映射路径

<servlet><!-- 定义servlet -->
   <servlet-name>hello</servlet-name><!-- 与 servlet-mapping 相对应 -->
   <servlet-class>org.lxh.Servletdemo.HelloServlet</servlet-class><!-- 定义包.类名称 -->
  </servlet>
  <servlet-mapping><!-- 映射路径 -->
   <servlet-name>hello</servlet-name><!-- 与servlet相对应 -->
   <url-pattern>/HelloServlet</url-pattern><!-- 页面的映射路径 -->
  </servlet-mapping>
  <!-- 
   修改web.xml,增加多个映射路径 go
   -->
  <servlet-mapping>
   <servlet-name>hello</servlet-name>
   <url-pattern>/Hello.asp</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
   <servlet-name>hello</servlet-name>
   <url-pattern>/Hello.jsp</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
   <servlet-name>hello</servlet-name>
   <url-pattern>/Hello/*</url-pattern>
  </servlet-mapping>
  <!-- end -->

效果图:

永远的“Hello World” —— 第一个Servlet程序_web.xml_02


 

小结
掌握Servlet的开发
掌握Servlet的配置