好吧好吧好吧

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个过滤器没有顺序,,如果设置了编码过滤器,那么要求将编码过滤器设置到最上面连,保证编码过滤器优先执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值