基础Web开发的支持

控制器开发
前面已经将项目构建好,Model(模型)也已经开发完毕,接下来我们先开发控制器。
JSON 的支持
ISON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也
易于机器解析和生成。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家
族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等),这些特性使JSON成为理
想的数据交换语言。
早期人们习惯使用XML 进行信息交互,后来JSON的使用更加简单,到了现在信息交互
大部分都以JSON为主。早期在Soring体系中使用JSON 还比较复杂,需要配置多项XML和
注解,现在在Soring Boot体系中,对JSON支持简单而又完善,在Web层使用仅仅只需要
一个注解即可字成在rom ktiiaovu.crm.web.controller包下创建控制器UserController.java,提
供一个 getUser方法:

@RestController
public class UserController {
        @Resource
    private Uservice userService;
    @RequestMapping(value = "/getUser",method = RequestMethod.GET)
    public User getUser(Long usrId){
       User user=userService.getUser(usrId);
        return user;
    }

@RestController 注解相当于@ResponseBody+ @Controller合在一起的作用,如果
Web层的类上使用了 @RestController注解,就代表这个米中所有的方法都会以JSON
的形式返回结果,也相当于JSON 的一种快捷使用方式;当然,如果想返回页面继续
使用@Controller注解也是可以的。
RequestMapping(value="/getUser", method= RequestMethod.GET),以/getUser的方式
去请求,method= RequestMethod.GET是指只可以使用GET的方式去请求,如果使用
POST的方式去请求的话,则会报405 不允许访问的错误。
RESTful的支持
什么是RESTful
RESTful是最流行的一种互联网软件架构.REST(Representational State Transfer,表述性状态转移)一词是由Roy Thomas Fielding 在他2000年博士论文中提出的,定义了他对互联网软件的架构原则,如果一个架构符合REST原则,则称它为RESTful架构
RESful架构一个核心概念是资源从RESful的角度看,网络里的任何东西都是资源,它可以是一段文本.一张图片.一首歌曲.一种服务等,每个资源都对应一个特定的URI,并用它进行标示,访问这个URI就可以获得这个资源
Spring Boot对RESTful的支持
Spring Boot全面支持开发RESTful程序,通过不同的注解来支持前端的请求,除了经常使用的注解外,Spring Boot还提了一些组合注解,这些注解来帮助简化常用的HTTP方法的映射,并更好地表达被注解方法的语义
.@GETMapping,处理Get请求
.@PostMapping,处理Post请求
.@PutMapping,用于更新资源
.@DeleteMapping,处理删除请求

.@PatchMapping,用户更新部分资源

其实这些组合注解就是我们使用的@RequestMapping的简写版本,RESTful在请求的类型中就指定了对资源的操控.@GetMapping(value="/xxx")等价于@RequestMapping(value="/xxx",method=RequestMethod.GET)
视图(JSP)开发
5.3.1整合JSP
JsP (JavaServer Pages,Java服务器页面)是一个简化的Servlet设计,它是由Sun
Microsystems公可伯子、叶多公可参与一起建立的一种动态网页技术标准。SP技术类似ASP
技术,它是在传统的网贝HTML(标准通用标记语言的子集)文件(.html)中插入 Java程序
段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。用JSP开发的 Web
应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
JSP其实就是Java为了支持 Web开发而推出的类前端Servlet,可以在JSP中写Java
或者 Html语法等,后端根据JSP语法渲染后返回到前端显示,在没有模板引擎之前JSP是
Java程序员开发人员的首选,到现在仍然有很多公司使用JSP开发后台管理系统。本节内容将
介绍如何在 Spring Boot项目中使用JSP。
过滤器和拦截器
Web项目中控制器可以处理具体的业务请求,公共功能的处理则可以利用AOP的思想,通过过滤器拦截器实现,过滤器和拦截器都属于面向切面编程的具体实现.两者的主要区别一下几个反面
.Filter是依赖于Servlet,属于Servlet规范的一部分,而拦截器则是独立存在的,可以在任何情况下使用
.Filter的执行由Servlet容器回调完成,而拦截器通常通过动态代理的方式来执行
.Filter的生命周期有Servlet容器管理,而拦截器则可以通过loC容器来管理,因此可以通过注入等方式来获取其他Bean的实例,因此使用会更方便.
自定义过滤器
Filter也称之为过滤器,可以在前端拦截所有用户的请求。Web 开友人贝通过 Filter 技术,
对Web服务器管理的所有Web资源,例如JSP、Servlet、控制器、静态图片文件或静态 HTML
文件等进行拦截,从而实现一些特殊的功能。例如,实现URL 级别的权限访问控制、过滤敏
感词汇、排除有XSS威胁的字符、记录请求日志等一些高级功能。
Spring Boot内置了一些 Filter,比如,处理编码的OrderedCharacterEncodingFilter和请求
转化的 HiddenHttpMethodFilter,也支持根据我们的需求来可以自定义Filter.
自定义Filter有两种实现方式,第一种是使用@WebFilter,第二种是使用
FilterRegistrationBean,经过实践之后发现使用@WebFilter自定义的过滤器优先级顺序不能生
效(只能根据Filter类名的字母顺序倒序排列,且优先级都高于FilterRegistrationBean配置的过滤
器),因此推荐使用第二个方案。
自定义 Filter两个步骤:
.实现 Filter 接口,重写其中的doFilter()方法;
.添加@Configuration 注解,将自定义Filter加入过滤链。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值