servlet
什么是servlet?
servlet 是javaee 规范之一 规范就是接口
servlet 是javaweb 的三大组件 三大组件 分别是 servlet 程序 filter 过滤器 listener 监听器
servlet 是运行在服务器上的一个java 小程序 它可以接受客户端 发送过来的请求 并响应数据给客户
手动实现servlet 程序
编写一个类实现 servlet 接口
实现service 方法 处理请求并响应数据
到 web.xml 中去配置servlet 程序的访问地址
package day8;
import javax.servlet.*;
import java.io.IOException;
/**
* @auther qwh
* @create 2023-07-2023/7/27 15:33
*/
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被访问了");
}
//获取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 标签给tomcat 配置servlet程序 -->
<servlet>
<!-- servlet-name标签 servlet 程序起一个别名(一般是类名)-->
<servlet-name>HelloServlet</servlet-name>
<!-- servlet-class 是servlet程序的全类名-->
<servlet-class>day8.HelloServlet</servlet-class>
</servlet>
<!-- servlet-mapping 标签给servlet程序配置访问地址-->
<servlet-mapping>
<!-- servlet-name 标签的作用是告诉服务器 我当前配置的地址给那个servlet程序使用-->
<servlet-name>HelloServlet</servlet-name>
<!-- 配置访问路径-->
<url-pattern>/Hello</url-pattern>
</servlet-mapping>
</web-app>
servlet的生命周期
1.执行servlet构造方法
2.执行init初始化方法
第一步第二步是在第一次访问的时候创建servle程序会调用
3.执行service方法
第三步每次访问都会调用
4.执行destory销毁方法
第四步在web工程停止的时候调用
通过继承HttpServlet方式实现Servlet程序
一般在实际项目开发中。都是使用继承HttpServlet类的方式实现Servlet程序
1.编写一个类去继承HttpServlet类的方式去实现Servlet程序
2.根据业务需要重写doGet或doPost方法
3.到web.xml中的配置Servlert 程序的访问地址
ServletConfig类
Servlet类从类名上看就知道是Servlet程序的配置信息类
Servlet和ServletConfig对象都是tomcat负责,我们负责使用
Servlet程序默认是第一次范文的时候创建 ServletConfig 是每个Servlet 程序创建时 就创建SevletConfig对象
ServletConfig 类的三大作用
1.可以获取Servlet程序的别名Servlet-name的值
2.初始化参数init-Param
3.获取ServletConfig对象
ServletContext类
什么 是ServletContext?
1.ServletContext是一个接口,它表示Servlet的上下文
2.一个web工程只有一个ServletContext对象
3.ServletContext是一个域对象
4.ServletContext是现web工程部署启动的时候创建,在web工程停止的时候销毁
什么是域对象
域对象 是可以像map一样存取数据 叫域对象
这里的域指的是存取数据的操作范围,整个web工程
存数据 取数据 删除数据
map put() get() remove()
域对象 setAttribute() getAttribute() removeAttribute()
ServletContext类的四个作用
1.获取web.xml中配置的上下文参数 context-param
2.获取当前工程的路径 格式 /工程路径
3.获取工程部署后的服务器硬盘上的绝对路径
4.像map一样存取数据