实现 Servlet 接口,要重写它的五个方法,但只有 service方法是比较常用的
// 初始化方法, 在 Servlet 被创建时执行,只执行一次
public void init(ServletConfig servletConfig) throws ServletException
// 获取 ServletConfig 对象
public ServletConfig getServletConfig()
// 提供服务方法, 每次Servlet被访问,都会调用该方法
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException
// 获取 Servlet 信息
public String getServletInfo()
// Servlet被销毁时,调用
public void destroy()
Servlet体系结构
// Servlet 访问路径
@WebServlet("/demo2")
public class ServletDemo2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("get...");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("post...");
}
}
Servlet 访问路径
Servlet要想被访问,必须配置其访问路径(urlPattern),一个Servlet可以有多个访问路径
优先级:精确路径
》目录路径
》扩展名路径
》 /*
》/
Response & Request
浏览器请求发送Http的请求数据,被 tomcat 解析,解析之后把这些数据放到 request 对象里。
所以 request 对象里 装了一大堆的请求数据。
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 获取 request 里封装的请求数据
String name = req.getParameter("name");
// 使用 response 设置响应数据
resp.setHeader("content-type","text/html;charset=utf-8");
resp.getWriter().write("<h1>" + name + ",欢迎您!</h1>");
}
response 可以来设置响应数据
Request的继承体系
Tomcat 需要解析数据,封装为 request 对象,并且创建 request 对象传递到 service方法中。