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生命周期的问题:
- 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的注解开发
注解开发实例:
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);
}
}
}