springmvc的注解有哪些,作用是什么,spring的注解和springmvc的注解
如何解决写爬虫IP受阻的问题?立即使用。
推荐教程:《java视频教程》
springmvc常用5种注解是哪些?
springmvc常用5种注解为:
I .基于组件的评论:
1.@Component在类定义前添加@Component注释,会被spring容器识别,变成bean。
2.@Repository注释Dao实现类(特殊的@Component)
3.@Service用于标注业务逻辑层,(特殊@Component)
4.@控制器用于控制层标注,(特殊@组件)
以上四个标注都是在类上标注的,被标注的类最初会被spring描述成一个bean,然后统一管理。
二、请求和参数注释:
1、@RequestMapping:用于处理请求地址映射,可以作用于类和方法。
value:定义请求request的映射地址。
方法:请求地址的定义方法,包括[get,post,head,options,put,patch,delete,trace。]默认情况下接受get请求,如果请求方法与定义的方法不同,则请求无法成功。
params:定义请求request中必须包含的参数值。
headers:定义请求请求必须包含一些指定的请求头,如:request mapping(value=/something ,headers= Content-type=text/* ,这意味着请求必须包含 text/html 和 text/plain 的Content-type头才能成为匹配的请求。
消费者:定义要求提交的内容类型。
produces:指定要返回的内容类型,只有当指定的类型包含在请求头的(Accept)类型中时,才会返回。
@ request mapping(value=/request test . do ,params={name=sdf},headers={Accept-Encoding=gzip,deflate,br},method=RequestMethod。获取)
公共字符串getIndex(){
System.out.println(“请求成功”);
返回“索引”;
}上面的代码将请求指示为GET请求。请求参数必须包含参数name=sdf,然后请求头的类型必须为accept-encoding=gzip,deflate,br。
通过这种方式,请求可以被注释约束。
2.@RequestParam:用于获取传入参数的值。
值:参数的名称。
必选:定义传入参数是否必要,默认值为true,(类似于@RequestMapping的params属性)
@ request mapping(/request params 1 . do )
公共字符串request params 1(@ request param(required=false)字符串名称){
system . out . println( name= name);
返回“索引”;
}
@ request mapping(/request params 2 . do )
公共字符串request params 2(@ request param(value= name ,required=false)字符串名称){
system . out . println( name= names);
返回“索引”;
}这两种请求参数的方法是一样的。当显示声明值的名称时,参数名称与value相同。如果没有显示声明,则参数名与函数参数的变量名相同。
3.@PathViriable:用于定义路径参数值。
值:参数的名称。
必选:定义传入的参数是否为必选值。
@ request mapping(/{ my name }/path variable 2 . do )公共字符串path variable 2(@ path variable(value= my name )字符串名称){
system . out . println( myname= name);返回“索引”;
}这个路径声明{myname}为路径参数,那么这个路径将是任意的,@PathVariable将能够根据值得到路径的值。
4.@ResponseBody:作用于方法,可以以某种格式返回整个返回结果,比如json或xml格式。
@ request mapping(/{ my name }/path variable 2 . do )
@ResponseBody
公共字符串path variable 2(@ path variable(value= my name )字符串名称){
system . out . println( myname= name);
返回“索引”;
}它不返回页面,而是直接在页面上打印字符串“index”,实际上类似于下面的代码。
PrintWriter out=resp . getwriter();
out . print( index );
out . flush();5、@CookieValue:用于获取请求的Cookie值
@ request mapping(/request params . do )
公共字符串request params(@ CookieValue( JSESSIONID )字符串cookie){
返回“索引”;
}
6、@ModelAttribute:
用于将参数保存到模型中,您可以注释方法或参数。当批注在方法上时,该方法将在处理器方法执行之前执行,然后返回的对象将存储在会话(前提上带有@SessionAttributes批注)或模型属性中。标记方法时指定了@ modelattribute ("attributename ")。如果未指定,则返回类型的类名(首字母小写)将用作属性名。
@ModelAttribute(user )
公共用户实体getUser(){
user entity user entityr=new user entity();
userentityr . set username( asdf );
返回userEntityr
}
@RequestMapping(/modelTest.do )
公共字符串get users(@ model attribute( user )user entity user){
system . out . println(user . get username());
返回“/index”;
}和上面的代码一样,使用了annotation @ model attribute( user ),在控制器执行之前执行,然后会生成一个名为user的模型数据。在控制器中,我们通过参数上标注的@ModelAttribute获取参数,然后将模型应用到控制器中。我们也可以在jsp页面中使用它。
body $ { user . username }/body7、@SessionAttributes
默认情况下,Spring MVC将模型中的数据存储到请求域中。当请求完成时,数据变得无效。如果你想跨页使用。那么你需要使用session。而@SessionAttributes注释可以使模型中的数据存储在会话域中。当与@ModelAttribute(user )一起使用时,相应名称的模型值将保存在会话中。
@控制器
@RequestMapping(/test )
@ session attributes(value={ user , test1})
公共类LoginController{
@ModelAttribute(user )
公共用户实体getUser(){
user entity user entityr=new user entity();
userentityr . set username( asdf );
返回userEntityr
}
@RequestMapping(/modelTest.do )
公共字符串get users(@ model attribute( user )user entity用户,HttpSession会话){
system . out . println(user . get username());
system . out . println(session . get attribute( user ));
返回“/index”;
}
}结合上例的代码,添加了@SessionAttributes注释,然后请求了两次。在第一个会话中,名为user的属性不存在,在第二个请求中,发现会话中有另一个属性。这是因为,在第一个请求中,模型数据直到请求完成并返回后才保存在会话中,而先前的模型可以在第二个请求中获得。
注意:@ model attribute( user )userEntityUser获取标注内容时,会先查询会话中是否有对应的属性值,然后再查询模型。
相关文章:《java开发教程》以上是springmvc的五种常见注释。更多详情请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。