Java Web技术
2021-12-22 22:04:40 1 举报
AI智能生成
SpringMVC相关知识点总结
作者其他创作
大纲/内容
Controller 处理器或页面控制器
Validator,验证器
常用角色
解析rest占位符参数,并将数据赋值给方法形参
作用
指定与url中的参数名绑定
value
同value
name
是否是必选字段,默认为true
required
属性
@PathVariable
@RequestParam
@RequestBody
参数绑定有关
建立请求URL和处理方法之间的对应关系,利用AntMatcher原则进行匹配
作用在类上:第一级的访问目录
作用在方法上:第二级的访问目录
可以作用在方法和类上
指定请求路径上的url
path
value属性和path属性是一样的,AliasFor
GET
HEAD
POST
PUT
PATCH
DELETE
OPTIONS
TRACE
RequestMethod
405:Request method not supported
不满足时报错【405】
指定方法的请求方式
method
param
要求请求映射所匹配的请求必须携带param请求参数
!param
要求请求映射所匹配的请求必须不能携带params请求参数
param=value
要求请求映射所匹配的请求必须携带param请求参数且param=value
param!=value
要求请求映射所匹配的请求必须携带param请求参数但是param!=value
四种表达式限制
400:Parameter conditions not met for actual request parameters
不满足时报错【400】
指定限制请求参数的条件
params
header
要求请求映射所匹配的请求必须携带heade请求头信息
!header
要求请求映射所匹配的请求必须不能携带heade请求头信息
header=value
要求请求映射所匹配的请求必须携带heade请求头信息且header=value
header!=value
要求请求映射所匹配的请求必须携带heade请求头信息但是header!=value
404:failed to load resource data
不满足时报错【404】
发送的请求中必须包含的请求头
headers
指定处理请求的提交内容类型
consumes
指定返回的内容类型
produces
@RequestMapping
用应返回的状态代码和原因消息标记方法或异常类。 调用处理程序方法时或抛出指定的异常时,状态代码将应用于 HTTP 响应。 它会覆盖通过其他方式设置的状态信息,例如`ResponseEntity`或`redirect:`。
@ResponseStatus
将函数返回值装入responsebody中返回到前端,也就是将return返回值作为请求返回值,return的数据不会解析成返回跳转路径
@ResponseBody
请求有关
@Controller
@RestController
bean相关
常用注解
HttpServletRequest作为控制器方法的形参,此封装了当前请求的请求报文的对象;
HttpServletResponse作为控制器方法的形参,此封装了当前请求的请求报文的响应体;
通过ServletAPI获取
设置和请求参数同步的形参,当匹配到请求映射时,在DispatcherServlet中就会将请求参数赋值给相应的形参
字符串数组类型的形参,数组中包含了每一个数据
字符串类型的形参,此参数的值为每个数据中间使用逗号拼接的结果
若在请求参数中有个多个同名的请求参数,此时可以在控制器方法的形参中设置字符串数组或者字符串类型的形参接收此请求参数
控制器方法同名的形参获取
子主题
获取请求参数
全局异常处理
当DispatcherServlet中的throwExceptionIfNoHandlerFound配置为true时,当请求404时会抛出NoHandlerFoundException异常
NoHandlerFoundException
异常种类
异常处理
加载默认配置文件,但是路径必须在WEB-INF下,命名规范是springmvc-servlet.xml
ContextLoaderListener的作用就是启动Web容器时,读取在contextConfigLocation中定义的xml文件,自动装配ApplicationContext的配置信息,并产生WebApplicationContext对象,然后将这个对象放置在ServletContext的属性里,这样我们只要得到Servlet就可以得到WebApplicationContext对象,并利用这个对象访问spring容器管理的bean。简单来说,就是上面这段配置为项目提供了spring支持,初始化了Ioc容器。
如果不存在利用contextConfigLocation参数则默认加载“applicationContext.xml”
利用ContextLoaderListener
指定DispatcherServlet的初始化参数contextConfigLocation
加载的三种方式
利用ContextLoaderListener加载优先于DispatcherServlet,如果已指定Listener,则可以在DispatcherServlet中加载一个空的xml配置文件
重复加载问题
加载spring的配置文件
Spring MVC
ResourceBundle
获取Locale
messag_en_US.properties
message_zh_CN.properties
资源名+_语言_国别.properties
命名规则
资源文件
国际化
FilterChainProxy
Spring Security
常见的HTTP请求头
常见的HTTP响应头
常见的HTTP状态码
常见的HTTP请求类型
HTTP Head字段的可选值
Cache-Control字段被各个浏览器支持得较好,且优先级较高,会覆盖Expires等字段
Pragma:no-cache/Cache-Control:no-cache
后面跟一个日期和时间,超过这个时间值后,缓存内容失效
Expires
Last-Modified/Etag
浏览器缓存机制
HTTP协议解析
HTTP协议
应用于所有的web应用程序
tomcat/conf/web.xml
应用于应用程序本身
span style=\
文件路径
display-name
description
配置servlet的过滤器,与一个实现javaxs.servlet.Filter接口的类关联
filter-name:定义过滤器的名字,当有多个过滤器时不能同名
filter-class:指定实现这一过滤器的类,这个类负责具体的过滤事务
param-name
param-value
init-param:配置初始化参数
filter
设置过滤器负责过滤的url,每个filter必须有对应的,当有多个filter时filter-mapping的顺序决定了filter的加载顺序
定义过滤器的名字,当有多个过滤器时不能同名
filter-name
指定过滤器负责过滤的URL
url-pattern
filter-mapping
配置一个servlet,与一个servlet-mapping相关联
servlet-name:定义servlet的名称
servlet-class:定义servlet的类
指定web站台中的某个JSP网页的完整路径
jsp-file
servlet
用来定义servlet所对应的URL,包含两个子元素
指定servlet的名称
servlet-name
指定servlet对应的URL
servlet-mapping
会话配置
配置会话超时配置,单位为秒
session-timeout
session-config
示例
指定欢迎文件页列表配置
指定欢迎文件页
welcome-file
welcome-file-list
配置Tag Library,对JSPs的开源增强
设定Tag Library的唯一标识符,在Web应用中将根据这一标识符来引用Tag Library
指定和Tag Library对应的TLD文件的位置
taglib
配置资源引用
对所引用资源的说明
指定所引用资源的JNDI名字
res-ref-name
指定所引用资源的类名字
res-type
由容器来创建和管理resource
Container
同WEB应用来创建和管理Resource
Application
指定管理所引用资源的Manager,它有两个可选值
res-auth
resource-ref
security-constraint
login-config
Listener是Servlet提供的扩展点,一般用于对特定对象的生命周期和特定事件进行响应处理。
listener-class
listener
该元素用来声明应用范围(整个WEB项目)内的上下文初始化参数
设定上下文的参数名称。必须是唯一名称
设定的参数名称的值
context-param
web-app
配置元素(按顺序)
在web.xml中元素定义的先后顺序不能颠倒
SAXParseException
常见问题
web.xml配置
server.xml配置
web工程目录结构
指向Tomcat公用信息的位置,即tomcat的bin和lib目录
catalina.home
指向每个Tomcat目录私有信息的位置,即conf、logs、temp、webapps和work
catalina.base
属性配置
Tomcat
由servlet容器调用,仅在实例化servlet时调用一次
init()
仅允许在init成功之后调用,每次访问都会调用
service()
关闭servlet容器后调用
destory()
getServletConfig()
getServletInfo()
Servlet接口
加载servlet
初始化,调用init()
处理服务,调用service()
销毁,主动删除或者长时间不使用,调用destory()方法
卸载,调用完destory()之后等待垃圾回收,如果再次使用这个servlet,重新调用init初始化
生命周期
实现了Servlet所有方法
在service()方法中根据http请求头,分别调用doGet()、doPost()等方法
HttpServlet
Servlet是单例的
每次请求对象与响应对象都是新的
当多个用户访问Servlet的时候,服务器会为每个用户创建一个线程,当多个用户并发访问Servlet共享资源的时候会出现线程安全问提
如果一个变量需要多个用户共享,则应当在访问该变量的时候,加同步机制synchronized (对象){}
线程安全问题
特点
读取web.xml中配置的初始化参数,单个Servlet的参数信息
ServletConfig
当Tomcat启动的时候,就会创建一个ServletContext对象。它代表着当前web站点
所有的Servlet都共享着一个ServletContext对象,Servlet之间可以通过ServletContext实现通讯
ServletConfig获取的是配置的是单个Servlet的参数信息,ServletContext可以获取的是配置整个web站点的参数信息
利用ServletContext读取web站点的资源文件
实现Servlet的转发
ServletContext
Servlet
Java Web技术
0 条评论
回复 删除
下一页