文章目录
前言
在学习了第一个war包之后,浅浅记录一下其中所涉及到的知识点,学习的参考连接已放到最后。
一、Servlet
- Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。Servlet是用Java编写的服务器端程序,其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。
- Servlet接口:Servlet接口有5种方法,分别为:init,service和destroy是servlet的生命周期方法,这些方法由web容器调用。
- public void init(ServletConfig config)
初始化servlet,它是servlet的生命周期方法,由web容器调用一次 - public void service(ServletRequest request,ServletResponse response)
为传入的请求提供响应,它由Web容器的每个请求调用。 - public void destroy()
仅被调用一次,并且表明servlet正在被销毁 - public ServletConfig getServletConfig()
返回ServletConfig对象 - public String getServletInfo()
返回有关servlet的信息,如作者,版权,版本等
二、HttpServlet
- HttpServlet是Servlet接口的一个实现类,并且它是一个抽象类,servlet.http包中定义了采用HTTP通信协议(一个无状态协议)的HttpServlet类。
- HttpServlet中定义了很多方法:
- 处理GET请求:protected void doGet(HttpServletRequest req, HttpServletResponse res)
- 处理POST请求:protected void doPost(HttpServletRequest req, HttpServletResponse res)
- 处理HEAD请求:protected void doHead(HttpServletRequest req, HttpServletResponse res)
- 处理OPTIONS请求:
protected void doOptions(HttpServletRequest req, HttpServletResponse res) - 处理PUT请求:protected void doPut(HttpServletRequest req, HttpServletResponse res)
- 处理TRACE请求:
protected void doTrace(HttpServletRequest req, HttpServletResponse res) - 处理DELETE请求:
protected void doDelete(HttpServletRequest req, HttpServletResponse res) - 通过将请求和响应对象转换为http类型将请求调度到受保护的service方法:
public void service(ServletRequest req,ServletResponse res) - 从service方法接收请求,并根据传入的http请求类型将请求发送到doXXX()方法:
protected void service(HttpServletRequest req, HttpServletResponse res)
三、如何为Servlet类配置url
- 方法一:使用@WebServlet(url)
@WebServlet("/servletdemo01")
访问Servlet可以通过使用@WebServlet(url),给某个Servlet类配置个url
之后可以通过url来访问这个Servler类 -
方法二:在Servlet类里面配置url
<servlet> <servlet-name>ServletDemo02</servlet-name> <servlet-class>com.zfh.ServletDemo02</servlet-class> </servlet> <servlet-mapping> <servlet-name>ServletDemo02</servlet-name> <url-pattern>/servletDemo02</url-pattern> </servlet-mapping> <servlet> <servlet-name>ServletDemo03</servlet-name> <servlet-class>com.zfh.ServletDemo03</servlet-class> </servlet> <servlet-mapping> <servlet-name>ServletDemo03</servlet-name> <url-pattern>/servletDemo03</url-pattern> </servlet-mapping>
<servlet>,其中的中写的是servlet类名相同
<servlet-class>,其中写的servlet类的全名,加上package
<servlet-mapping>,设置url连接
<url-pattern>中配置的项必须与url完全精确匹配
<servlet-name>中写的是servlet类名相同
运行过程:url-pattern 标签中的值是要在浏览器地址栏中输入的 url,这个 url 访问名为 servlet-name 中值的 servlet,通过 servlet 标签中的 servlet-name 标签映射到 servlet-class 标签中的值,最终访问 servlet-class 标签中的 class
参考链接
Servlet HttpServlet类 - Servlet教程™ (yiibai.com)