Java Web Servlet速查笔记

1.什么是Servlet

Servlet是JavaWeb的三大组件之一,它属于动态资源。Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要

  • 接收请求数据
  • 处理请求
  • 完成响应

例如客户端发出登陆请求,或者输出注册请求,这些请求都应该由Servlet来完成处理!Servlet需要我们自己编写,每个Servlet必须实现javax.servlet.Servlet接口。

2.实现Servlet的方式

三中方式:

  • 1.实现javax.servlet.Servlet接口
  • 2.继承javax.servlet.GenericServlet类
  • 3.继承javax.servlet.http.HttpServlet

3.配置

<servlet>
    <servlet-name>ServletDemo1</servlet-name>
    <servlet-class>me.dddz.web.servlet.ServletDemo1</servlet-class>
    <init-param>
        <param-name>p1</param-name>
        <param-value>v1</param-value>
    </init-param>
    <init-param>
        <param-name>p2</param-name>
        <param-value>v2</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>ServletDemo1</servlet-name>
    <url-pattern>/servletdemo1</url-pattern>
</servlet-mapping>

<web-app>
    <context-param>
        <param-name>ctx-name</param-name>
        <param-value>ctx-value</param-value>
    </context-param>
</web-app>

url-pattern可以使用通配符

4.生命周期

void init(ServletConfig servletConfig) 只有在第一次访问之后立即执行
void service(ServletRequest servletRequest, ServletResponse servletResponse) 每次访问都会执行
void destroy() 服务器停止之后立即执行

5.特性

  • 单例
  • 线程不安全
  • 效率高
  • 类由我们自己定义,对象由tomcat创健,tomcat调用

6.ServletContext

1.概述
  • 一个项目只有一个ServletContext对象,称为application
  • 可以在N多个Servlet中获取这个唯一的对象,使用它可以给多个Servlet传递数据
  • Tomcat启动时创健
  • Tomcat停止时销毁
2.获取ServletContext
  • Servlet:init方法中servletConfig.getServletContext()
  • GenerocServlet:getServletContext()
  • HttpServler:this.getServletContext()
  • HttpSession:this.getServletContext()
  • ServletContextEvent:this.getServletContext()
3.域对象

ServletContext是JavaWeb四大域对象之一

  • PageContext
  • ServletRequest
  • HttpSession
  • ServletContext

所有域对象都有存储数据的功能,因为域对象内部有一个Map,用来存储数据,下面是Servlet对象用来操作数据的方法

  • void setAttribute(String name, Object value)
    用来存储一个对象,也可以称之为存储一个域属性
  • Object getAttribute(String name)
    获取数据
  • void removeAttribute(String name)
    移出数据
  • Enumeration getAttributeNames()
    获取所有域属性的名称
4.获取应用初始化参数

使用ServletContext来获取在web.xml文件中配置的应用初始化参数!应用初始化参数与Servlet初始化参数不同

    <web-app>
        <context-param>
            <param-name>ctx-name</param-name>
            <param-value>ctx-value</param-value>
        </context-param>
    </web-app>
5.获取资源相关方法
  • 1.获取真实路径
    String realPath = servletContext.getRealPath("/a.txt")
  • 2.获取资源流
    InputStream in = servletContext.getResourceAsStream("/a.txt")
  • 3.获取指定目录下所有资源路径
    Set set = context.getResourcePaths("/WEB-INF")
6.获取类路径下资源

类路径资源,对一个JavaWeb项目而言,就是/WEB-INF/classes和/WEB-INF/lib/每个jar包

  • Class

  • ClassLoader

  • 1.得到ClassLoader

    • 先得到Class,再得到ClassLoader
  • 2.调用其getResourceAsStream(),得到InputStream


如果对您有帮,请点赞转发收藏,您的支持是我创作的最大动力

猜你喜欢

转载自blog.csdn.net/weixin_48568292/article/details/107289101