spring mvc配置理解2
WEB-INF是服务器的东西
将jsp文件存放到到WEB-INF下的作用
1.不允许用户通过浏览器修改文件
2.无法直接访问,必须通过servlet或者是控制器
WEB-INF(服务器的东西) ...META-INF(视频,音频) :都是安全目录,受服务器的保护,浏览器无法直接访问
一.SpringMVC的注解:
常用注解;
[email protected]: bean对象,主要用在实体包下
[email protected](仓库的意思):bean对象,主要用在持久层类
[email protected]:bean 对象,主要用在业务逻辑层类
4:@Controller:bean对象,主要用在控制器层类
5.:@Resource:注入对象:javax的注解
使用name,那么要求bena对象必须存在,byId/byName
如果什么都不用,依据byType
[email protected]: 注入对象:Spring的注解
自动注入:依据byType
[email protected]:注入对象,但是不能单独使用:Spring的注解
只能通过byName进行注入,一般需要配合@Autowired
使用@Resource和使用(@Autowired 和@Qualifier)区别?
@Resource:
使用了name属性,那么bean必须存在,不存在就报错
只要不使用name属性,才可以通过byType
(@Autowired 和@Qualifier:
优先根据name进行注入,如果name不存在就根据byType
这三个注解都可以使用在属性上,也可以使用在setXXX
[email protected]:url 映射
主要可以处理请求的url的映射地址,消息头,类型等信息
可以使用在类上或方法上
使用在类上可以标记url的根目录,可以区分不同包下的类,访问类下的方法时,可以在根目录下方法子目录 ,如/dao/save
二.常用的属性:
1.value:
指定请求的url路径
2.method:
请求方式:取值 :RequestMethod
3.consumes:
请求的Context-Type的类型
4.produces
标记返回的内容的类型
Accept的值必须包含
5.headers:
指定消息头,只有消息头的信息符合,才允许请求
6.params:
请求参数,要求当前的请求必须包含指定的参数名称或值
即是请求过来的参数的名字,如同request.getparameter("msg")
7.path:
请求的映射路径,等价value
8.name:
为映射路径,请求参数
[email protected]: 请求参数
标记请求的参数信息
常用属性:
1.name :参数名称,如果不写,默认的参数名称就是当前方法的形式参数名称
2.required:是否必须
3.defaultValue:默认值
[email protected]:获取请求的消息头
直接获取请求消息头的内容
常用属性:
1.name:请求消息头的key
2.defaultValue:默认值
3. @ModelAttribute:添加数据到Model
使用在方法上或者参数上,每次请求都会优先执行
方法:
方法无返回值,一般会有Model或者ModelMap
方法有返回值:那么会将返回值添加到Model中
参数:
修饰形式参数
要求:
1.必须指明哪个key
2.类型需要一致
@PathVariable: 获取请求路径的变量,动态获取url变量内容
主要用在RESTFUL格式的url模版
用在类上
指定的key
如果Model中也有该key,会将Session的key值赋值到Model
如果Model中也有key的值,也会赋值到Session中
sessionStatus.setComplete()清空内部维护的一个Session数据的map集合
,如果是同一HttpSession就removeAttribute,不同的HttpSession无操作
获取指定名称的Cookie的值
常用注解:
@Controller
@RequestMapping
@ModelAttribute
@SessionAttribute
@PathVariable
@CooieValue
Cookie:
浏览器维护的数据,在电脑磁盘上
每次在url请求时,浏览器会将当前网站的所有未失效的Cookie默认添加到Request Header
如果浏览器禁掉Cookie,那么如何保证同一Session
答案:URL重定向
六.HttpSession:
保存在服务器内存中,可以在多个页面中共享
一个域名一个浏览器的第一次请求网站就是Session的创建
切记HttpSession的关闭可不是浏览器的关闭
默认为30分钟空闲时间(当前时间和最后一次访问时间差)
HttpSession的结束条件:
1.网站停止
2.空闲时间超时 -->默认30分钟
3.invalidate:强制销毁
登录信息,多个页面共享,跟用户有关数据
Model:只用来存储数据到request.setAttrubute,增加和修改
ModelMap:完整的数据存储对象,可以对数据进行增删改查
(2).控制器的方法的参数:
1.HttpServletRequest/HttpServletResponse:请求和响应
2.HttpSession:session对象
3:Local本地化信息
4: TimeZone时区
5: Model :存储数据到request
6: ModelMap : 增改查
7: 普通数据类型(基本类型,string)
8: 自定义类数据类型
9: Map :等价于 ModelMap
10:数组
11: SessionStatus
12: @PathVariable、@RequestParam、@RequestHeader、@CookieValue、@ModelAttribute、@RequestBody
常用的参数:
Model
ModelMap
普通类型
自定义数据类型
七.SessionStatus
控制器的方法的返回值
1.void :view 的名称就是url映射名称
2. String:页面的名称或页面的路径
3.View :要返回的视图对象
4. ModelAndView :数据视图
5. Model
6. Map
7. HttpEntity<T> \ResponseEntity<T>
8、HttpHeaders
9、支持对象/集合/字符串的返回---json数据[email protected]
常用的返回值类型:
常用的返回值类型:
void
String
ModelAndView
集合
发起url请求-->DispatcherServlet-->HandlerMapping (key,value) -->HandlerAdapter(处理器适配器)->前拦截器-->Handler(处理器,控制器)(回调参数创建...) -->很强大(产生ModelAndView)0->后拦截器-->视图名称转换器ViewNameTransvertor-->ViewResolver视图解析器