Servlet
2019-05-16 / JAVA / 1009 次围观 / 0 次吐槽 /Servlet简介
Servlet是sun公司提供的一门用于开发动态web资源的技术。
Sun公司在其API中提供了一个servlet接口
Servlet 是运行在 Web 服务器中的小型 Java 程序(即:服务器端的小应用程序)。
servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web 客户端的请求。
若想开发一个动态web资源(即开发一个Java程序向浏览器输出数据),要完成2个步骤:
编写一个Java类,实现servlet接口。
把开发好的Java类部署到web服务器中。
Servlet的执行过程
Servlet作用处理请求
当浏览器访问一个http://localhost:8080/hello/hello 路径,就向tomcat发送一个请求
Servlet生命周期(重要)
Servlet生命周期四个状态:实例化-->初始化-->服务->销毁
出生:(实例化-->初始化)第一次访问Servlet就出生(默认情况下)
活着:(服务)应用活着,servlet就活着
死亡:(销毁)应用卸载了servlet就销毁。
Servlet的创建时机
默认情况下Servlet在第一次使用Servlet时才创建
可以在web.xml中设置load-on-startup为2,Servlet就会启动时调用构造方法和初始化方法
Servlet实现的三种方式
实现javax.servlet.Servlet接口
继承javax.servet.GenericServlet类(适配器模式)
继承javax.servlet.http.HttpServlet类(模板方法设计模式)
servlet结构
Servlet映射细节
掌握Servlet映射规则
通配符* 代表任意字符串,如图:
url-pattern: *.do 以*.字符串的请求都可以访问 注:不要加/
url-pattern: /* 任意字符串都可以访问
url-pattern: /action/* 以/action开头的请求都可以访问
匹配规则:
优先级:从高到低
绝对匹配--> /开头匹配 --> 扩展名方式匹配
如果url-pattern的值是/,表示执行默认映射。所有资源都是servlet
Servlet的线程安全问题
Servlet是单例:多线程每次访问都是同一个对象
解决线程安全问题的最佳办法,不要写全局变量,尽量不要,而写局部变量。
Servlet的注解映射
Servlet 3.0 注解配置
注意:在配置映射时,路径要加斜杠,不然会报错
ServletContext
Context:上下文
ServletContext: 代表的是整个应用。一个应用只有一个ServletContext对象。是单例对象 。
作用:
域对象:在一定范围内(当前应用),使多个Servlet共享数据。
常用方法:
void setAttribute(String name,object value);//向ServletContext对象的map中添加数据
Object getAttribute(String name);//从ServletContext对象的map中取数据
void rmoveAttribute(String name);//根据name去移除数据
获取全局配置信息
第一步:在web.xml中配置一个context-param
第二步:获取web.xml中的配置
获取资源路径
String getRealPath(String path);
根据资源名称得到资源的绝对路径.
可以得到当前应用任何位置的任何资源
Servlet的转发
转发图解
代码实现
- 上一篇:JavaWEB应用程序
- 下一篇:HTTP
Powered By Cheug's Blog
Copyright Cheug Rights Reserved.