springweb层控制类的使用
创始人
2024-03-20 04:38:06
0

首先我们要知道web层主要是有接收 处理 响应的功能,在spring框架中我们怎样才能比较简便的进行前后端数据交互呢?下面让我们来一起了解了解springweb层控制类的使用!!!

首先让我们来了解了解什么是控制类?

Spring可以通过@Controller注解自动发现你的控制器类以及@RequestMapping注解中的请求映射,这样就为你免去了在Bean配置文件中配置它们的麻烦。

那让我们了解了解下面的标签

  • @RestController
    类似于@service这些注解标签 表示此类是控制层类,并创建对象  
  • @RequestMapping(path="/loginCtl")用来为类和方法定义一个映射地址
    此方法在类和方法上可以使用,在类上使用,整个项目必须是唯一的,不能重复。如果是在方法上定义时,同一个类中的地址也必须是唯一的,可以使用path/value来定义地址。
    @RequestMapping(path="/loginCtl")==@RequestMapping(value="/loginCtl")

    在我们以前前端要往后端发送请求时用get/post方法进行发送,在框架中我们同时也是如此

  1.  @RequestMapping(path="/test")  没有指定请求方式,get/post都可以请求
  2.  @RequestMapping(path="/test",method = RequestMethod.POST) 指定post方法
  3.  @RequestMapping(path="/test",method = RequestMethod.POST) 指定get方法
  4.  @GetMapping(path="/login")  指定get方法
  5.  @PostMapping(path="/login") 指定post方法
  •  如果前端往后端用post方法,中文会乱码,这时候我们添加一个编码过滤器就会解决这个问题(具体怎么添加编码过滤器看springweb保姆级教学)
  • 控制器返回结果,@RestController 中包含@ResponseBody 的注解标签,所以方法返回结果默认是json格式,并将json字符串写到响应体中,返回一个对象时,必须要加入一个转json的第三方组件(具体怎么添加json组件看springweb保姆级教学)
  • 如何接收请求中的数据   

         before:使用request对象接收  req.getparameter();

 @RequestMapping(path="/test",method = RequestMethod.POST)//可以使用path和value进行定义@GetMapping(path="/test")public  String test(HttpServletRequest request, HttpServletResponse response){System.out.println(request.getParameter("num"));return "springweb";}

         now:在框架中我们可以直接在参数表中定义形参接收,还可以帮我们进行数据类型转换

@GetMapping(path="/test")//请求中的键名称与形参名一致注解被接收   不一致需要通过注解标签进行绑定public  String test(Integer num, @RequestParam("user_name") String user_Name,@RequestHeader("User-Agent")   String userAgent){System.out.println(num);return "springweb";
}

 直接使用对象接收:在保存表单数据中,数据比较多,请求你数据类型转换会有问题,但是   spring  框架较好的解决了这个问题

 @GetMapping(path="/login")//get请求中文没有问题,post请求中文有乱码问题(spring提供了一个编码的过滤器)public CommonResult login(Admin admin, Integer mark) {System.out.println(admin);Admin a=loginService.login(admin);CommonResult commonResult=new CommonResult(200,"保存成功");//可以对创建方法进封装return commonResult;}//在接收日期时,需要对其进行特殊处理
// @DateTimeFormat(pattern = "yyyy-MM-dd")//private Date birthday;
  • 添加跨域过滤器和拦截器(具体看springweb保姆级教学)

拦截器和过滤器的区别:

  • 过滤器是java Servlet规范中定义的,是当请求进入Servlet之前,可以对请求进行拦截,可以加入一些逻辑处理
  • 拦截器是spring框架中自己定义的功能,和过滤器位置不同
  • 拦截器值拦截进入到自己控制器中的请求,其余的不拦截

 搭建拦截器:

  1. 创建一个类实现HandlerInterceptor接口
  2. 重写接口中的preHandle()
  3. 配置拦截器

相关内容

热门资讯

湖北宝树堂律师事务所:法护正义... 在法治社会中,法律服务行业如同精密的齿轮,既承载着公平正义的价值追求,也推动着经济社会的高质量发展。...
今日冲击38℃!上海八月高温天... 东方网记者柏可林8月22日报道:强盛的副热带高压牢牢控制着申城,今天热力再度升级,上海中心气象台于9...
泰国刑事法院驳回对他信的起诉 新华社曼谷8月22日电(记者夏康静 高博)据泰国公共电视台22日报道,泰国刑事法院当天驳回对前总理他...
大豆玉米大丰收,美国农民更欲哭... 【文/观察者网 阮佳琪】 盛夏时节,美国中西部广袤的田野里,玉米和大豆迎着阳光茁壮生长。 然而,...
肇庆:发布5.0版营商环境政策 8月22日,肇庆市人民政府新闻办公室召开新闻发布会,介绍近年肇庆优化营商环境有关工作情况,并发布《肇...
英媒爆料:普京坚持要求乌克兰撤... 【文/观察者网 陈思佳】上周,俄罗斯总统普京和美国总统特朗普举行会晤,讨论如何解决俄乌冲突。据路透社...
男子与好友妻子发生不正当关系后... 2024年11月,赵某与付某妻子发生不正当性关系,后赵某将此事告诉了王某。12月29日,赵某又与王某...
涉嫌严重违法,龙清波被查 据惠水县监委消息:惠水县教育局局长龙清波涉嫌严重违法,目前正接受惠水县监委监察调查。 来源:黔南州...
大手发力了!《最终幻想14》热... 《最终幻想14》一直以来对其“禁止模组”的政策都较为宽松,声称使用模组违反游戏服务条款,但在实际执行...
驳你面子即将加盟米兰!莱奥直播... 在当今足球世界中,转会新闻总是备受关注,尤其是当一位新星即将加盟顶级联赛的球队时。近日,AC米兰的传...