使用注解创建Servlet

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
关键 如下标签省略了Web.xml 中的配置

@WebServlet("/myServlet")

在这里插入图片描述

MyServlet.java

package com.iris.servlet;

import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class MyServlet
 */
@WebServlet("/myServlet")
public class MyServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see Servlet#init(ServletConfig)
	 */
	public void init(ServletConfig config) throws ServletException {
		// TODO Auto-generated method stub
	}

	/**
	 * @see Servlet#destroy()
	 */
	public void destroy() {
		// TODO Auto-generated method stub
	}

	//当每次请求时就会调用此方法
	//一旦写了service就不会再去找doget,dopost
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

	 //当get请求时调用该方法
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

	//当doPost请求时调用该方法
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
}

HttpServlet

  1. 直接new的Servlet它是一个HttpServlet
  2. 它是GenericServlet的子类
class HttpServlet extends GenericServlet {

2.1GenericServlet实现了Servlet接口

class GenericServlet implements Servlet {

2.2 HttpServlet是专门负责处理http请求与响应的
2.3. 以后创建Servlet时,直接使用httpServlet

  1. HttpServlet方法
    1. service每一次发送请求的时候就会调用
      当写了service就会不再调用get或post
    2. doGet当发送get请求时调用
    3. doPost当发送post请求的时候调用
  2. 内部方法调用过程
    1. 当接收到一个请求时, tomcat就会找对应的service方法
    2. 如果当中servlet当中没有存在service方法,就会到它的父类当中去找
    3. 在父类当中找到service是参数为ServletRequest,在会内部把参数转为httpServlet
      在这里插入图片描述
    4. 转换完毕后会再继续调用参数为httpServletRequest的service方法
      在这里插入图片描述
    5. 在此方法当中会获取参数的类型,根据不同的参数类型再去调用不同的方法
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐