您的位置:首页 > 游戏 > 手游 > 广告设计与制作好找工作吗_网络工程师介绍_市场调研的基本流程_网络服务器多少钱一台

广告设计与制作好找工作吗_网络工程师介绍_市场调研的基本流程_网络服务器多少钱一台

2024/12/23 1:48:24 来源:https://blog.csdn.net/2201_75555400/article/details/143452909  浏览:    关键词:广告设计与制作好找工作吗_网络工程师介绍_市场调研的基本流程_网络服务器多少钱一台
广告设计与制作好找工作吗_网络工程师介绍_市场调研的基本流程_网络服务器多少钱一台

ok了家人们今天我们学习SpringMvc,之后学习SpringBoot,let‘s go

.拦截器

6.1 拦截器概述

Spring MVC 的处理器拦截器类似于 Servlet 开发中的过滤器
Filter ,用于对处理器 ( 自己编写的 Controller) 进行预处理和后
处理。用户可以自己定义一些拦截器来实现特定的功能。谈到
拦截器,还要向大家提一个词 —— 拦截器链( Interceptor
Chain )。拦截器链就是将拦截器按一定的顺序联结成一条
链。在访问被拦截的方法或字段时,拦截器链中的拦截器就会
按其之前定义的顺序被调用。
类别
使用范围拦截范围
拦截
SpringMVC
只会拦截访问的控制器方法的
请求
过滤
任何web项目
任何资源 (servlet, 控制
,jsp,html )
我们要想自定义拦截器, 要求必须实现:
HandlerInterceptor 接口。

6.2 自定义拦截器

  • 定义拦截器
package com.cjx.Interceptor;import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@Component
public class MyInterceptor implements HandlerInterceptor {//执行方法前执行@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("preHandle...");//false表示不执行该方法return true;}//执行方法后执行@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println("postHandle");}//方法执行后(如果返回一个jsp页面执行)@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println("afterCompletion");}
}
  • 配置加载拦截器
package com.cjx.config;import com.cjx.Interceptor.MyInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;//当前类需要设置为配置类,并被扫描加载
@Configuration
public class SpringMvcSupport extends WebMvcConfigurationSupport {@Autowiredprivate MyInterceptor myInterceptor;//配置加载拦截器@Overrideprotected void addInterceptors(InterceptorRegistry registry) {super.addInterceptors(registry);//注册拦截器,可以注册多个registry.addInterceptor(myInterceptor).addPathPatterns("/emp","/emp/**");}@Overrideprotected void addResourceHandlers(ResourceHandlerRegistry registry) {//当访问/pages/xxxx时候,从/pages目录下查找内容//http://loclahost:8080/js/axios-0.18.0.jsregistry.addResourceHandler("/pages/**").addResourceLocations("/pages/");registry.addResourceHandler("/js/**").addResourceLocations("/js/");registry.addResourceHandler("/css/**").addResourceLocations("/css/");registry.addResourceHandler("/img/**").addResourceLocations("/img/");registry.addResourceHandler("/plugins/**").addResourceLocations("/plugins/");}
}

.RESTFul风格的URL

7.1 RESTful简介

RESTful 就是一个资源定位及资源操作的风格。不是标准也不
是协议,只是一种风格。基于这个风格设计的软件可以更简
洁,更有层次。
操作
请求方式
查询操作Get
保存操作
POST
删除操作
DELETE
更新操作
PUT
http : //localhost:8080/springmvc02/user/queryUser
ById?id= 1 查询
http : //localhost:8080/springmvc02/user/saveUser
新增
http : //localhost:8080/springmvc02/user/updateUse
r 更新
http : //localhost:8080/springmvc02/user/deleteUse
rById?id=1 删除

 使用RESTful操作资源:使用URL+请求方式确定具体的动作

http : //localhost:8080/springmvc02/user/1
查询 ,GET
http : //localhost:8080/springmvc02/user
新增 ,POST
http : //localhost:8080/springmvc02/user
更新 ,PUT
http : //localhost:8080/springmvc02/user/1
删除 ,DELETE

RESTFul风格好处:

  • 安全:使用问号键值对的方式给服务器传递数据太明显,
    容易被人利用来对系统进行破坏。使用 REST 风格携带数
    据不再需要明显的暴露数据的名称。
  • 风格统一: URL 地址整体格式统一,从前到后始终都使用
    斜杠划分各个单词,用简单一致的格式表达语义。
     
  • 简洁:过去做增删改查操作需要设计 4 个不同的 URL ,现在
    一个就够了。
查询 / emp / editEmp ? empId = 2 / emp / 2 请求方式:GET
保存 / emp / saveEmp / emp 请求方式:POST
更新 / emp / updateEmp / emp 请求方式:PUT
删除 / emp / removeEmp ? empId = 2 / emp / 2 请求方式:DELETE

7.2 RESTFul案例

@Controller
public class EmpController {
//根据ID查询
@RequestMapping(value =
"/emp/{empId}",method = RequestMethod.GET)
@ResponseBody
public Result
findById(@PathVariable("empId") Integer empId){
Result result=new Result(20001,"查询成
功",empId);
return result;
}
//查询所有
@RequestMapping(value = "/emp",method =
RequestMethod.GET)
@ResponseBody
public Result findAll(){
Result result=new Result(20002,"查询成
功",null);
return result;
}
//保存
@RequestMapping(value = "/emp",method =
RequestMethod.POST)
@ResponseBody
public Result save(@RequestBody Emp emp){
Result result=new Result(20003,"保存成
功",emp);
return result;
}
//删除
@RequestMapping(value =
"/emp/{empId}",method = RequestMethod.DELETE)
@ResponseBody
public Result delete(@PathVariable("empId")
Integer empId){
Result result=new Result(20004,"删除成
功",empId);
return result;
}//修改
@RequestMapping(value = "/emp",method =
RequestMethod.PUT)
@ResponseBody
public Result update(@RequestBody Emp emp){
Result result=new Result(20005,"修改成
功",emp);
return result;
}
}

 7.3 注解优化

@RestController
@RequestMapping("/emp")
public class EmpController {
//根据ID查询
@GetMapping("/{empId}")
@ResponseBody
public Result
findById(@PathVariable("empId") Integer empId){
Result result=new Result(20001,"查询成
功",empId);
return result;
}
//查询所有
@GetMapping
@ResponseBody
public Result findAll(){
Result result=new Result(20002,"查询成
功",null);
return result;
}
//保存
@PostMapping
@ResponseBody
public Result save(@RequestBody Emp emp){
Result result=new Result(20003,"保存成
功",emp);
return result;
}
//删除
@DeleteMapping("/{empId}")
@ResponseBody
public Result delete(@PathVariable("empId")
Integer empId){
Result result=new Result(20004,"删除成
功",empId);
return result;
}
//修改
@PutMapping
@ResponseBody
public Result update(@RequestBody Emp emp){
Result result=new Result(20005,"修改成
功",emp);
return result;
}
}

ok了家人们明天见byebye

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com