本文是菜鸟教程阅读笔记,详细请前往菜鸟教程

是什么

Java Servlet是运行在Web服务器上的程序,它是作为来自Web浏览器和服务器上的数据库之间的中间层。

简单点说,我们平时放在Tomcat上运行的的Java后端代码就可以称为Servlets Program

一张图可以看出Servlet在web程序中的位置。

clipboard.png

所以,Servlet就是接收浏览器或其他HTTP客户端发来的请求,根据请求操作数据库,并返回请求所需要的数据。

怎么用

设置CLASSPATH

由于Servlet不是Java平台标准版的组成部分,所以需要为编译器指定Servlet类的路径。

windows下的C:\autoexec.bat中添加以下代码

set CATALINA=C:\apache-tomcat-5.5.29
set CLASSPATH=%CATALINA%\common\lib\servlet-api.jar;%CLASSPATH%

Unix中的.cshrc文件中添加

setenv CATALINA=/usr/local/apache-tomcat-5.5.29
setenv CLASSPATH $CATALINA/common/lib/servlet-api.jar:$CLASSPATH

正常我们配置Tomcat的时候就已经配置好了,不需要单独进行配置

生命周期

Servlet生命周期可以看成从创建到终止的全过程。

  1. 通过调用init()方法进行初始化

  2. 调用service()方法来处理客户端的请求

  3. 通过调用destory()方法终止。

  4. 最后通过JVM的垃圾回收器进行垃圾回收

常用的方法

init()方法

init()方法是用来创建Servlet的,通常可以指定Servlet在服务器启动的时候进行创建。

public void init() throws ServletException {
    //初始化
}

Servlet一旦被创建,服务器每接收一个请求时,都会产生一个新的线程,并调用service()方法。

service()方法

service()方法是处理请求的主要方法,也就是说我们的业务逻辑都是通过这个方法或者这个方法的变式来实现的。

public void service(ServletRequest request, 
                    ServletResponse response) 
      throws ServletException, IOException{
}

doGet()doPost()方法是每次服务请求中最常用的方法,分别用于处理GET和POST请求。

destroy()方法

destroy()方法可以让Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动。


实现一个简单的Servlet

在Eclipse中新建一个Dynamic Web Project项目。

clipboard.png

接着,在src目录下新增一个package,命名为com.servletLearn。再在这个包下面新增一个HelloWorld.java
Alt text

添加以下代码到HelloWorld.java

package com.servletLearn;
/*
 * @description 第一个servlet实例
 * @author dahan
 */
// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// 扩展 HttpServlet 类
public class HelloWorld extends HttpServlet {

  private String message;
  public void init() throws ServletException
  {
      // 执行必需的初始化
      message = "Hello World";
  }
  public void doGet(HttpServletRequest request,HttpServletResponse response)
          throws ServletException, IOException
  {
      // 设置响应内容类型
      response.setContentType("text/html");
      // 实际的逻辑是在这里
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
  }
  public void destroy()
  {
      // 什么也不做
  }
}

配置web.xml

<web-app>
  <servlet>
      <servlet-name>HelloWorld</servlet-name>
      <servlet-class>com.servletLearn.HelloWorld</servlet-class>
  </servlet>

  <servlet-mapping>
      <servlet-name>HelloWorld</servlet-name>
      <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

启动Tomcat,打开http://localhost:8080/servlet-learn/HelloWorld

clipboard.png

大功告成!

图片描述


大汉
267 声望9 粉丝