admin 管理员组文章数量: 894198
好吧好吧好吧
propagation:传播特性:表示不同的事务之间执行的关系
isolation:隔离级别:4种隔离级别,会引发不同的数据错乱问题
timeout:超时时间
readonly:只读事务:如果配置了只读事务,那么在事务运行期间,不容许对数据进行修改,否则抛出异常
设置哪些异常不会回滚数据
noRollBackfor:noRollBackfor = {ArithmeticException.class}
noRollBackforClassName:
设置哪些异常回滚
rollBackfor
rollBackforClassName
--------------------------------------------------------------------------------
@Transactional()
--------------------------------------------------------------------------------
@RequestMapping:表示用来匹配当前方法要处理的请求,其中/可以写也可以不写,一般推荐写上
例:@RequestMapping(“/hello”)
@RequestMapping可以添加在类上,也可以添加在方法上
方法:http://localhost:8888/springmvc_war_exploded/hello
类:http://localhost:8888/springmvc_war_exploded/hello/hello
当添加在类上的时候表示给所有的当前方法前添加一个 访问路径
什么时候需要在类上添加注解?
当包含多个Controller,通过在不同的Controller中包含同名的请求的时候,需要添加
@RequestMapping配置的参数
@RequestMapping (value="/hello",method = RequestMethod.POST)
value:表示要匹配的请求
method:表示请求的方式,post get
parms:表示要求请求中必须要包含的参数
必须要包含username的属性值
@RequestMapping(value="/hello",parms = {"username"})
不能包含的参数名称
@RequestMapping(value="/hello",parms = {"!username"})
必须要包含username,age俩个属性值,并且username的值为zhangsan
@RequestMapping(value="/hello",parms = {"username=zhangsan","age"})
headers:表示限制请求头中的相关属性值,用来做请求的限制
produces:限制请求中的Content-Type
consumers:限制响应中的Content-Type
@RequestMapping可以进行模糊匹配
?:替代任意一个字符
*:替代多个字符
**:替代多层路径
--------------------------------------------------------------------------------
springmvc处理过程:
1.浏览器要发生一个请求http://localhost:8080/springmvc_helloword_war_exploded/hello
2.首先交给tomcat容器
3.在web.xml文件中配了DispatcherServlet的类,所以此时会由当前的DispatcherServlet来接受请求
4.接受到请求之后找到对应的Controller,去Controller中寻找@RequestMapping注解标识的方法
5.找到匹配的方法之后,执行方法的逻辑
6.处理完成之后需要返回一个前端的页面名称,
7.有视图处理器来根据名称映射到对应的jsp页面的路径
8.DispatcherServlet拿到对应的路径地址之后返回给浏览器
--------------------------------------------------------------------------------
<servlet-mapping><!--添加前端控制器对应的mapping映射:映射所有的请求,因此最好从写成//*(区别) /:用来匹配所有请求,但是/不会拦截jsp页面 /*:用来匹配所有的请求,会拦截jsp页面<servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern> </servlet-mapping>
--------------------------------------------------------------------------------
@PathVariable可以获取请求路径中的值
在路径中要使用{变量名称}做标识,在方法参数中可以添加@PathVariable做识别,如果路径中的名称跟参数的名称不一致的时候,可以添加路径中的变量,推荐添加
--------------------------------------------------------------------------------
springmvc对请求参数的处理
在servlet中可以通过request.getParameter()来获取请求中的参数,但是在编写的springMVC的应用程序中,在具体请求的方法中并不包含request参数,那么我们应该如何获取请求中的参数?
需要使用一下几个注解:
@RequestParam:获取请求的参数
@RequestHeader:获取请求头信息
@CookieValue:获取cookie中的值
request.getParameter(name)
当发送请求的时候,找到对应的处理方法之后,会根据参数的的名称从request中获取对应的参数值,并封装到方法中,此时要求,方法的名字和url中的参数的名字必须一致,如果不一致,设置不成功
1.如果设置的值不同,同时又想让参数获取到对应的属性值,可以通过@RequestParam来使用
经常跟@PathVariable混淆,主要注意,俩个注解有不同的用处
public String testRequest(@RequestParam("username") String name){
System.out.println(name);
}
通过@RequestParam()获取参数值,拿到参数值再赋值给name
@RequestParam()的参数:
value:获取的参数值
required:表示当前属性值是否是必须存在的,默认值是true,表示请求中必须要包含此参数,如果没有,400,bad,request
defaultValue:如果传递参数值了,那么使用传递进来的参数,如果没有使用默认值
2.通过@RequestHeader:注解来表示
request.getHeader(“”User-Agent)
value:
required:
defaultValue
3.@CookieValue:
获取cookie中的值,使用@CookieValue注解@CookieValue("JSESSIONID")
Cookie[] cookie = request.getCookie();
--------------------------------------------------------------------------------
乱码问题解决:
需要设置request和response的编码方式,可以自己手动编写过滤器,也可以由现成的框架实现
(向服务器传输数据)post:必须要分别设置request和response的编码格式
(从服务器上获取数据)get:在tomcat的server.xml文件中添加URIEncoding=utf-8
在一个应用程序中可能会包含n个过滤器,这n个过滤器没有顺序,,如果设置了编码过滤器,那么要求将编码过滤器设置到最上面连,保证编码过滤器优先执行
本文标签: 好吧好吧好吧
版权声明:本文标题:好吧好吧好吧 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1688190674h190079.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论