荐 JavaWeb三大件之Servlet基础2.x版本
程序员文章站
2022-04-03 12:04:54
1.什么是ServletServlet是JavaWeb的三大组件之一,它属于动态资源。Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要接收请求数据处理请求完成响应例如客户端发出登陆请求,或者输出注册请求,这些请求都应该由Servlet来完成处理!Servlet需要我们自己编写,每个Servlet必须实现javax.servlet.Servlet接口。2.实现Servlet的方式三中方式:1.实现javax.servlet.Ser...
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
本文地址:https://blog.csdn.net/weixin_48568292/article/details/107349476