Servlet入门案例(三)Servlet的生命周期、api和请求方式、工作原理、注解开发

Servlet的API:

HttpServletResponse:是对响应信息的封装。
HttpServletRequest:是对请求信息的封装。

Servlet(接口)
|-GenericServlet(抽象类)
       |-HttpServlet(抽象类)
             |-FirstServlet(自定义的servlet)

我们自定义的类是否实现了servlet接口,是我们判断该类是否是servlet的唯一标准。

Servlet类的生命周期:

一个servlet对象从创建到销毁的整个过程。
Servlet接口方法:
Init()方法
Destroy()方法
Service()方法。

  • 1.当客户端有请求过来时,都会去执行service方法。每一个请求都会去调用servlet的service方法。
  • 2.当servlet对象被创建出来时,servlet对象会自动执行init方法。当第一次请求过来时,servlet容器会实例化出servlet对象。Servlet对象是单实例的。所有的客户端请求都会使用第一次请求创建的servlet对象。
  • 3.当tomcat停止服务时。Servlet会被销毁掉。销毁前,servlet会调用destroy方法。
    servlet的生命周期
    因此得出结论:
    Servlet是单实例的,所有的请求公用一个servlet对象。那么servlet对象不要定义属性。

面试常见servlet生命周期的问题:

  • 1.谁创建了servlet。
  • 2.创建servlet的时机。
  • 3.三个方法的调用时机。
  • 4.什么时候servlet被销毁。

Servlet的请求方式

  • 1.在浏览器里面直接输入url可以请求servlet
  • 2.使用超链接 <a / href=”/appName/url-pattern”>点我
  • 3.form提交的方式请求servlet Form的action=”/appName/url-pattern”

让form表单和servlet结合起来,收参
在这里插入图片描述

三.Servlet的工作原理

Servlet的工作原理

四.Servlet的注解开发

servlet的注解开发
注解开发实例:

package com.macw.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.macw.services.UserServices;
import com.macw.services.impl.UserServiceImpl;

/**
 * @author 超伟
 * @2019年6月5日 下午9:30:52
 * @博客:https://blog.csdn.net/MacWx
 */
@WebServlet("/register")
public class RegisterServlet extends HttpServlet {
	public void service(HttpServletRequest req,HttpServletResponse resp)
			throws IOException,ServletException{
		String name = req.getParameter("username");
		String pwd = req.getParameter("password");
		System.out.println("username="+name+"\tpwd="+pwd);
		UserServices service = new UserServiceImpl();
		boolean register = service.Register(name,pwd);
		if (register) {
			req.getRequestDispatcher("/login.jsp").forward(req, resp);
		}else{
			req.setAttribute("error", "注册失败,请重新注册!");
			req.getRequestDispatcher("/register.jsp").forward(req, resp);
		}
	}
}

五.乱码问题

乱码问题解决办法

猜你喜欢

转载自blog.csdn.net/MacWx/article/details/92383769