Servlet第一个例子

我们通过代码和web.xml配置文件来介绍servlet的运行原理和生命周期.在这个例子中我们通过实现servlet接口来实现我们的代码。实现servlet接口就要实现接口中的所有方法。

一、代码部分(test.java)

import javax.servlet.*;
import java.io.*;

public class test implements Servlet {
	private int i;
	
	public test() {
	}

	/**
	 * 初始化servlet,该函数只会被调用一次(当用户第一次访问该servlet时)
	 */
	public void init(ServletConfig parm1) throws ServletException {
		System.out.println("init it");
		
		i = 0;
	}

	public ServletConfig getServletConfig() {
		return null;
	}

	/**
	 *这个函数用于处理业务逻辑,业务代码部分在这里实现(当用户访问该servlet时,该函数都会被调用)
	 */
	public void service(ServletRequest parm1, ServletResponse parm2)
			throws ServletException, IOException {
		
		System.out.println("service it");

		++i;
		
		PrintWriter pw = parm2.getWriter();
		pw.println("Hello World");
		pw.println(i);//从输入的i值便知道,servlet是单例模式工作的,不管哪个机子访问它,它的i值都会增加,所以在多用户并发访问,将解决线程同步的问题交由程序员来控制
	}

	public String getServletInfo() {
		return null;
	}

	/**
	 * 以下两种情况会调用destory 1、reload该servlet(在tomcat控制台中reload) 2、关闭tomcat,这个是强行结束了
	 */
	public void destroy() {
		System.out.println("destory it");
	}
}

 二、web.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">


	<servlet>
		<!--给servlet取名字,名字可以任意-->
		<servlet-name>hello</servlet-name>
		<!--指明servlet的路径,(包名+类名)-->
		<servlet-class>test</servlet-class>
	</servlet>
	<!-- Define the hello Servlet Mapping -->
	<servlet-mapping>
		<!--和servlet中的servlet-name一致-->
		<servlet-name>hello</servlet-name>
		<!--这是在浏览器中输入的访问该servlet的url,是任意的-->
		<!--浏览器根据这个pattern找到对应的servlet-name,再根据servlet-name找到对应的class-->
		<url-pattern>/list</url-pattern>
	</servlet-mapping>


	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>
  三、访问servlet

    1、启动tomcat
    2、输入http://127.0.0.1:8080/ServletTest/list 就可以访问servlet

四、servlet的生命周期
   当第一次访问servlet时,init()会被调用,然后调用service().接下来每次访问servlet时,service都会被调用。当关闭该servlet时,或者reload该项目时,destory被调用

你可能感兴趣的:(tomcat,Web,xml,servlet,javaee)