JavaWeb基础 实现Servlet接口 简单示例

时间:2022-08-30 13:10:34

礼悟:
     公恒学思合行悟,尊师重道存感恩。叶见寻根三返一,江河湖海同一体。
          虚怀若谷良心主,愿行无悔给最苦。读书锻炼养身心,诚劝且行且珍惜。




       javaEE:7           
       javaSE:1.8
          JSTL:1.2.2  
      server:tomcat 8.5
    explorer:Firefox        
             os:windows7 x64
            ide:MyEclipse 2017



工程目录结构
JavaWeb基础 实现Servlet接口 简单示例

 

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		 xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
		 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
		 id="WebApp_ID" 
	 	 version="3.1">

	<servlet>
		<servlet-name>myFirstServlet</servlet-name>
		<servlet-class>jizuiku.web.servlet.MyServlet</servlet-class><!-- 执行的是这个类 -->
	</servlet>

	<servlet-mapping>
		<servlet-name>myFirstServlet</servlet-name> <!-- 两个name 相应就好 -->
		<url-pattern>/MyServletDemo</url-pattern><!-- 访问的是这个路径 -->
	</servlet-mapping>

</web-app>

 

Servlet接口实现类的代码

package jizuiku.web.servlet;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

/**
 * MyServlet的具体对象只有一个,属于单例模式。
 * 然后 可以新建一个MyServletTwo类,即可以存在多个Servlet类
 * 线程不安全的,效率高
 * 
 * @author 给最苦
 * @version V17.10.20
 */
public class MyServlet implements Servlet {
	
	/**
	 * 生命周期方法
	 * 它会在Servlet对象被销毁之前,执行一次.
	 * 展示Servlet对象留下的遗言
	 * 一般会在服务器关闭的时候,才会执行 
	 * 
	 * */
	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		System.out.println("执行destroy()...");
	}

	/**
	 * 获取Servlet的配置文件
	 * 
	 * */
	@Override
	public ServletConfig getServletConfig() {
		// TODO Auto-generated method stub
		System.out.println("执行getServletConfig()...");
		return null;
	}
	
	/**
	 * 获取Servlet的信息
	 * 
	 * @return 返回对Servlet的描述信息
	 * */
	@Override
	public String getServletInfo() {
		// TODO Auto-generated method stub
		System.out.println("执行getServletInfo()...");
		
		return null;
	}

	/**
	 * 生命周期方法,由tomcat来调用
	 * 它会在Servlet对象出生后,执行一次.
	 * 
	 * @param config tomcat负责传入这个参数
	 * */
	@Override
	public void init(ServletConfig config) throws ServletException {
		// TODO Auto-generated method stub
		System.out.println("执行init()...");
	}

	/**
	 * 生命周期方法
	 * 会被调用多次,每次处理请求都是在调用service方法
	 * 浏览器 进入一次指定的地址就会 调用service方法
	 * 
	 * */
	@Override
	public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("执行service()...");
	}

}

 

效果

  开启服务器

JavaWeb基础 实现Servlet接口 简单示例

 

  使用浏览器访问指定页面一次

JavaWeb基础 实现Servlet接口 简单示例

 

  控制台输出的变化
JavaWeb基础 实现Servlet接口 简单示例

 

  再次访问指定页面一次
JavaWeb基础 实现Servlet接口 简单示例

  目前 浏览器访问了指定页面两次

JavaWeb基础 实现Servlet接口 简单示例

 

  浏览器关闭所有页面,servlet类没有执行 destory()方法  
JavaWeb基础 实现Servlet接口 简单示例

 

  关闭服务器,servlet类 执行destory()方法

  JavaWeb基础 实现Servlet接口 简单示例

 

 


学习资源:itcast和itheima视频库。如果您有公开的资源,可以分享给我的话,用您的资源学习也可以。
博文是观看视频后,融入思考写成的。博文好,是老师讲得好。博文坏,是 给最苦 没认真。