复习:
Tomcat服务器
web应用的目录结构:
|-静态资源
|-WEB-INF(客户端不可见)
|-web.xml: 应用相关配置 - Servlet
|-classes: java编译后的字节码文件
|-lib: jar包
Servlet:
HttpServlet:doGet/doPost
Servlet的配置:
1.使用注解 - 常用 @WebServlet("资源路径")
2.在web.xml文件中进行配置
<servlet>
<servlet-name>自定义
<servlet-class>Servlet的全限定类名
<servlet-mapping>
<servlet-name>必须和servlet标签中一样
<url-pattern>/自定义资路径
Servlet对象:
默认:第一次接收请求的时候
<load-on-startup>
request对象: 一次请求
response对象: 一次请求
____________________________________________
一、Servlet:
1.概念
2.执行步骤
3.执行原理
4.生命周期
5.Servlet相关配置
1).web.xml配置相关
* 完全匹配 -只能通过具体的资源名 来访问这个资源
<url-pattern>/demo01</url-pattern>
* 目录匹配,可以使用通配符 *
<url-pattern>/*</url-pattern>
* 后缀匹配
<url-pattern>*.do</url-pattern>
* 特殊的匹配: / 所有的资源
<url-pattern>/</url-pattern>
2).注解配置Servlet
2.5 和 2.5以上的版本,只有2.5以上的版本才支持注解的配置
在类上使用@WebServlet()
* @WebServlet(urlPatterns="资源地址")
* @WebServlet(value="资源地址")
* @WebServlet("资源地址")
@WebServlet 原码
public @interface WebServlet {
String name() default "";
* 相当于是<servlet-name>
String[] value() default {};
* 代表urlPatterns的属性配置
String[] urlPatterns() default {};
* 相当于<url-pattern>
int loadOnStartup() default -1;
* 相当于<load-on-startup>
WebInitParam[] initParams() default {};
boolean asyncSupported() default false;
String smallIcon() default "";
String largeIcon() default "";
String description() default "";
String displayName() default "";
}
__________________________________________
二、注解:
* 写法:@xx
* 关键词: @interface
* 常见注解:
@Deprecated - 过时的,过期的
@Override - 重写
@SuppressWarnings() - 压制警告
@SuppressWarnings("rawtypes")
@SuppressWarnings("unused")
@SuppressWarnings({"rawtypes","unused"})
@SuppressWarnings("all")
* 注解属性:
* 写法: 类型 属性名() [default]
* 属性如果有default则可以不用添加参数
* 属性如果没有添加fefault则需要传参
* 注意事项:
* 属性没有设定默认值,就必须传参
* 只有当传入的属性只有一个,并且是value时
那么属性名可以省略
* 属性类型是数组是,只有一个值,可以不使用{}
如果是有多个值,就必须添加{}
* 注解的作用:
在一定程度上可以取代xml配置文件
___________________________________________
三、ServletConfig对象和 ServletContext对象
1.ServletConfig对象
* 作用:
1).获取当前Servlet的名字
2).获取servlet的初始化参数
3).获取ServletContext对象
2.ServletContext对象
1).获取方式
* config.getServletContext()
* request.getServletContext()
* this.getServletContext()
* this 表示HttpServlet
2)特点:
在整个应用中,只有一个ServletContext对象,所有的servlet资源和所有的客户端都可以共享
3).生命周期:
创建: 服务器启动时创建
销毁: 服务器关闭销毁
4).作用:
a.获取应用路径名称
b.获取应用的初始化参数
在web.xml文件添加配置
<!--设置应用的初始化参数-->
<context-param>
<param-name>configPath</param-name>
<param-value>
classes:config.properties
</param-value>
</context-param>
c.获取应用中资源的绝对路径
* src/a.txt
* web/b.txt
* WEB-INF/c.txt
* 工程下/d.txt
d.存取数据
* 存储所有客户端共享的数据
* 例如: 网站的访问量,文章的阅读量..
* 域对象: 存数据,取数据 有范围的对象
* 存储: ServletContext域对象以map进行存储
* ServletContext域的范围:
* 参照生命周期
* 应用[服务器]运行期间,所有客户端和所有资源共享
* API:
* setAttribute(name,value)
* getAttribute(name,value)
* removeAttribute(name,value)
name-String value-Object