1.Servlet技术
1.1 什么是servlet
- Servlet(Server Applet)是JavaEE规范之一,规范就是接口
- Servlet程序是JavaWeb三大组件(Filter过滤器、Listener监听器)之一
- Servlet是运行在服务器上的一个Java小程序,可以接受客户端发送过来的请求,并响应数据给客户端
public class HelloServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("hello servlet被访问");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
1.2 Servlet声明周期
- 执行servlet构造器方法,只在servlet程序会调用
- 执行init初始化方法,只在servlet程序会调用
- 执行service方法,每次访问都会调用
- 执行destroy销毁方法,web工程停止时调用
1.3 HttpServlet实现Servlet程序
public class HelloServlet2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doget");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("dopost");
}
}
1.4 Servlet继承体系
![继承体系](https://img-blog.csdnimg.cn/20210305103200949.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTQyMTUxMzE=,size_16,color_FFFFFF,t_70)
2. ServletContig类
- 从类名看,是Servlet程序的配置信息类
- servlet程序和servletConfig对象都是由tomcat负责创建,我们负责使用
- servlet程序默认是第一次访问的时候创建,ServletConfig是每个Servlet程序创建时,就创建一个对应的ServletConfig对象
2.1 ServletConfig类的三大作用
- 可以获取servlet程序的别名servlet-name的值
- 获取初始化参数init-param
- 获取ServletContext对象
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.servlet.HelloServlet</servlet-class>
<init-param>