JavaWeb学习心得之Servlet(一)

一、Servlet简介

       Servlet是sun公司提供的一门用于开发动态web资源的技术。

       Sun公司在其API中提供了一个Servlet接口,用户若想开发一个动态web资源,步骤如下:

  1. 编写一个Java类,实现Servlet接口
  2. 把开发好的Java类部署到Web服务器中。

二、Servlet的运行过程
       Servlet程序是由web服务器调用的,其过程如下:
  1. web服务器首先检查是否已经装载了该Servlet的实例对象,如果是执行第4步,否则执行第2步
  2. 装载并创建Servlet的一个实例对象
  3. 调用Servlet实例对象的init()方法
  4. 创建请求对象HttpServletRequest和响应对象HttpServletResponse,然后调用service()并将请求和响应对象作为参数传递进去
  5. web应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用destroy()方法
调用图:
JavaWeb学习心得之Servlet(一)_第1张图片

三、开发Servlet
        创建web工程,其目录结构如下:
JavaWeb学习心得之Servlet(一)_第2张图片
创建一个Servlet类:
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;
/**
 *   Servlet接口SUN公司定义了两个默认实现类,分别为:GenericServlet、HttpServlet。
 *   HttpServlet指能够处理HTTP请求的servlet,它在原有Servlet接口上添加了一些与HTTP协议处理方法,它比Servlet接口的功能更为强大。
 * 因此开发人员在编写Servlet时,通常应继承这个类,而避免直接去实现Servlet接口。
 *   HttpServlet在实现Servlet接口时,覆写了service方法,该方法体内的代码会自动判断用户的请求方式,如为GET请求,则调用HttpServlet的doGet方法,
 * 如为Post请求,则调用doPost方法。因此,开发人员在编写Servlet时,通常只需要覆写doGet或doPost方法,而不要去覆写service方法。
 * @author hanxin
 *
 */
public class ServletDemo01 extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//返回的数据类型是html
		response.setContentType("text/html");
		//获取输出流
		PrintWriter pw = response.getWriter();
		//输出内容
		pw.print("");
		pw.println("");
		pw.println("A Servlet");
		pw.println("");
		pw.println("this is doGet");
		pw.println("");
		pw.println("");
		pw.flush();
		pw.close();
	}

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//返回的数据类型是html
				response.setContentType("text/html");
				//获取输出流
				PrintWriter pw = response.getWriter();
				//输出内容
				pw.print("");
				pw.println("");
				pw.println("A Servlet");
				pw.println("");
				pw.println("this is doPost");
				pw.println("");
				pw.println("");
				pw.flush();
				pw.close();
	}
	
}

在web.xml文件中配置一个servlet

JavaWeb学习心得之Servlet(一)_第3张图片

       项目部署到tomcat后,访问http://localhost:8080/ServletDemo/servletDemo01.do,红色的是xml配置的资源路径(url-pattern),前面的是项目路径(请阅读Tomcat部分)
JavaWeb学习心得之Servlet(一)_第4张图片

注意事项:
  • 同一个servlet可以匹配多个servlet-mapping,但是同一个servlet-mapping不能匹配多个servlet
  • 'url-pattern可以使用通配符(*.扩展名或"/*"结尾
  • Servlet类中如果设置的成员变量,那么他是线程不安全的

你可能感兴趣的:(JavaWeb学习笔记)