Servlet的生命周期与servlet简单实例编写

servlet一般编写顺序:
//1.创建自己的类来实现servlet接口
//2.在service方法里面写代码
//3.在web.xml配置
MyFirstServlet类

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/*
 * 一个servlet只能处理一个请求
 * 应该指定servlet处理哪个请求
 * 需要在web.xml里面配置servlet的详细信息
 */
//1.创建自己的类来实现servlet接口
//2.在service方法里面写代码
//3.在web.xml配置
public class MyFirstServlet implements Servlet{

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public ServletConfig getServletConfig() {
		// TODO Auto-generated method stub
		return null;
	}
//获取servlet信息
	@Override
	public String getServletInfo() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void init(ServletConfig config) throws ServletException {
		// TODO Auto-generated method stub
//功能:1.获取servlet的别名
	//2.获取servlet的初始化参数
	//3.获取servletContext对象,代表当前servlet的上下文,代表当前的web项目
	}
//服务
	@Override
	public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//service方法是用来处理来自客户端的请求
		System.out.println("我是第一个Servlet");
		//ServletResponse res给浏览器发送一个响应
		//获取一个写数据的对象
		PrintWriter writer= res.getWriter();
		writer.write("Hello World");
	}
}

MySecondServlet类

package test;

import java.io.IOException;
import java.io.PrintWriter;


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


public class MySecondServlet implements Servlet {

	public MySecondServlet() {
		System.out.println("我是servlet的构造器");
	}
	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		
	}
	@Override
	public ServletConfig getServletConfig() {
		// TODO Auto-generated method stub
		System.out.println("我是getServletConfig");
		return null;
	}
	@Override
	public String getServletInfo() {
		// TODO Auto-generated method stub
		System.out.println("我是getServletInfo");
		return null;
	}
	@Override
	public void init(ServletConfig config) throws ServletException {
		// TODO Auto-generated method stub
		System.out.println("我是init(ServletConfig config)");
	}
	@Override
	public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("Servlet复习");
		PrintWriter writer=res.getWriter();
		writer.write("你好");
	}
}

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">
  <display-name>Servlet</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
  <!-- 配置servlet的名字,相当于给servlet起个别名-->
    <servlet-name>MyFirstServlet</servlet-name>
    <!--配置servlet类的全名-->
    <servlet-class>test.MyFirstServlet</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>MySecondServlet</servlet-name>
    <servlet-class>test.MySecondServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  <!--刚才配置的servlet的别名-->
    <servlet-name>MyFirstServlet</servlet-name>
    <!--这个servlet用来处理哪个请求,先查找静态资源,如果找不到就找动态资源,这个属于动态资源-->
    <url-pattern>/helloWorld</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>MySecondServlet</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>
</web-app>

在这里插入图片描述
servlet的生命周期
当我们第一次访问Servlet时:

  • 1.创建一个Servlet对象
  • 2.调用Init方法
  • 3.调用Service方法
  • 非第一次访问时:
    只调用service方法来处理请求,整个运行期间只创建了一个servlet对象。
    servlet时单实例,多线程运行
    销毁时调用destroy方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值