据说你叫Java(一)--Servlet简介

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

是什么

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

简单点说,咱们平时放在Tomcat上运行的的Java后端代码就能够称为Servlets Programweb

一张图能够看出Servlet在web程序中的位置。数据库

clipboard.png

因此,Servlet就是接收浏览器或其余HTTP客户端发来的请求,根据请求操做数据库,并返回请求所须要的数据。apache

怎么用

设置CLASSPATH

因为Servlet不是Java平台标准版的组成部分,因此须要为编译器指定Servlet类的路径。windows

windows下的C:\autoexec.bat中添加如下代码后端

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

Unix中的.cshrc文件中添加api

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

正常咱们配置Tomcat的时候就已经配置好了,不须要单独进行配置浏览器

生命周期

Servlet生命周期能够当作从建立到终止的全过程。tomcat

  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

大功告成!

图片描述

相关文章
相关标签/搜索