springmvc的注解有哪些,作用是什么,spring的注解和springmvc的注解

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: