本章目标
掌握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>
效果图:
修改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 -->
效果图:
小结
掌握Servlet的开发
掌握Servlet的配置