当前位置: 首页 > news >正文

建个网站多少钱源码下载网站有哪些

建个网站多少钱,源码下载网站有哪些,网站让女友做网站模特,网站建设好公司一、概述 1.1简介 Restful就是一个资源定位及资源操作的风格。不是标准也不是协议#xff0c;只是一种风格。基于这个风格设计的软件可以更简洁#xff0c;更有层次#xff0c;更易于实现缓存等机制。 1.2功能 资源#xff1a;互联网所有的事物都可以被抽象为资源 资源操作…一、概述 1.1简介 Restful就是一个资源定位及资源操作的风格。不是标准也不是协议只是一种风格。基于这个风格设计的软件可以更简洁更有层次更易于实现缓存等机制。 1.2功能 资源互联网所有的事物都可以被抽象为资源 资源操作使用POST、DELETE、PUT、GET使用不同方法对资源进行操作。 分别对应 添加、 删除、修改、查询。 1.3优点 隐藏资源的访问行为无法通过地址得知对资源是何种操作书写简化  1.4RESTful入门案例 //设置当前请求方法为DELETE表示REST风格中的删除操作//PathVariable注解用于设置路径变量路径参数要求路径上设置对应的占位符并且占位符名称与方法形参名称相同RequestMapping(value /users/{id},method RequestMethod.DELETE)ResponseBodypublic String delete(PathVariable Integer id){System.out.println(user delete... id);return {module:user delete};} DELETE http://localhost:8080/users/1 类型形参注解 位置SpringMVC控制器方法形参定义前面 作用用于将URL中的路径变量绑定到方法参数上。这样当用户访问一个包含路径变量的URL时这些路径变量的值将被自动传递给相应的方法参数 RequestBody  RequestParam  PathVariable的区别  区别 RequestParam用于接收url地址传参或表单传参RequestBody用于接收json数据PathVariable用于接收路径参数使用{参数名称}描述路径参数 应用 后期开发中发送请求参数超过1个时以json格式为主RequestBody应用较广如果发送非json格式数据选用RequestParam接收请求参数采用RESTful进行开发当参数数量较少时例如1个可以采用PathVariable接收请求路径变量通常用于传递id值 1.5RESTful快速开发 改进 package com.yanyu.controller;import com.yanyu.pojo.Book; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*;//Controller //ResponseBody配置在类上可以简化配置表示设置当前每个方法的返回值都作为响应体 //ResponseBody RestController //使用RestController注解替换Controller与ResponseBody注解简化书写 RequestMapping(/books) public class BookController {// RequestMapping( method RequestMethod.POST)PostMapping //使用PostMapping简化Post请求方法对应的映射配置public String save(RequestBody Book book){System.out.println(book save... book);return {module:book save};}// RequestMapping(value /{id} ,method RequestMethod.DELETE)DeleteMapping(/{id}) //使用DeleteMapping简化DELETE请求方法对应的映射配置public String delete(PathVariable Integer id){System.out.println(book delete... id);return {module:book delete};}// RequestMapping(method RequestMethod.PUT)PutMapping //使用PutMapping简化Put请求方法对应的映射配置public String update(RequestBody Book book){System.out.println(book update...book);return {module:book update};}// RequestMapping(value /{id} ,method RequestMethod.GET)GetMapping(/{id}) //使用GetMapping简化GET请求方法对应的映射配置public String getById(PathVariable Integer id){System.out.println(book getById...id);return {module:book getById};}// RequestMapping(method RequestMethod.GET)GetMapping //使用GetMapping简化GET请求方法对应的映射配置public String getAll(){System.out.println(book getAll...);return {module:book getAll};} }RestController 类型类注解 位置基于SpringMVC的RESTful开发控制器类定义上方 作用 是Spring框架中的一个注解用于标识一个类是一个RESTful风格的控制器。它是Controller和ResponseBody注解的组合表示这个类中的方法返回的是数据而不是视图。使用RestController注解可以简化代码不需要在每个方法上添加ResponseBody注解同时也可以让Spring自动将方法返回的数据转换为JSON格式。这样就可以方便地构建RESTful风格的API。 GetMapping  PostMapping PutMapping DeleteMapping 类型方法注解 位置基于SpringMVC的RESTful开发控制器方法定义上方 作用设置当前控制器方法请求访问路径与请求动作每种对应一个请求动作例如GetMapping对应GET请求  属性 value默认请求访问路径 1.6案例实现 实体类 package com.yanyu.pojo;import lombok.*;Data Builder AllArgsConstructor NoArgsConstructor ToString public class Book {private Integer id;private String type;private String name;private String description;}控制类 package com.yanyu.controller;import com.yanyu.pojo.Book; import org.springframework.web.bind.annotation.*;import java.util.ArrayList; import java.util.List;RestController RequestMapping(/books) public class BookController {PostMappingpublic String save(RequestBody Book book){System.out.println(book save book);return {module:book save success};}GetMappingpublic ListBook getAll(){System.out.println(book getAll is running ...);ListBook bookList new ArrayListBook();Book book1 new Book();book1.setType(计算机);book1.setName(SpringMVC入门教程);book1.setDescription(小试牛刀);bookList.add(book1);Book book2 new Book();book2.setType(计算机);book2.setName(SpringMVC实战教程);book2.setDescription(一代宗师);bookList.add(book2);Book book3 new Book();book3.setType(计算机丛书);book3.setName(SpringMVC实战教程进阶);book3.setDescription(一代宗师呕心创作);bookList.add(book3);return bookList;}} 测试 POST http://localhost:8080/books Content-Type: application/json{id : 11111,type : 计算机丛书,name : Springmvc,description : 好书}GET http://localhost:8080/books 配置类-过滤器 package com.itheima.config;import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;Configuration public class SpringMvcSupport extends WebMvcConfigurationSupport {//设置静态资源访问过滤当前类需要设置为配置类并被扫描加载Overrideprotected void addResourceHandlers(ResourceHandlerRegistry registry) {//当访问/pages/????时候从/pages目录下查找内容registry.addResourceHandler(/pages/**).addResourceLocations(/pages/);registry.addResourceHandler(/js/**).addResourceLocations(/js/);registry.addResourceHandler(/css/**).addResourceLocations(/css/);registry.addResourceHandler(/plugins/**).addResourceLocations(/plugins/);} }二、拦截器 2.1概述 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。 **过滤器与拦截器的区别**拦截器是AOP思想的具体应用。 过滤器 servlet规范中的一部分任何java web工程都可以使用在url-pattern中配置了/*之后可以对所有要访问的资源进行拦截 拦截器 拦截器是SpringMVC框架自己的只有使用了SpringMVC框架的工程才能使用拦截器只会拦截访问的控制器方法 如果访问的是jsp/html/css/image/js是不会进行拦截的 浏览器发送一个请求会先到Tomcat的web服务器Tomcat服务器接收到请求以后会去判断请求的是静态资源还是动态资源如果是静态资源会直接到Tomcat的项目部署目录下去直接访问如果是动态资源就需要交给项目的后台代码进行处理在找到具体的方法之前我们可以去配置过滤器(可以配置多个)按照顺序进行执行然后进入到到中央处理器(SpringMVC中的内容)SpringMVC会根据配置的规则进行拦截如果满足规则则进行处理找到其对应的controller类中的方法进行执行,完成后返回结果如果不满足规则则不进行处理这个时候如果我们需要在每个Controller方法执行的前后添加业务具体该如何来实现?这个就是拦截器要做的事。 2.2入门案例 拦截器配置 package com.yanyu.interceptor;import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.springframework.stereotype.Component; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView;Component //定义拦截器类实现HandlerInterceptor接口 //注意当前类必须受Spring容器控制 public class ProjectInterceptor implements HandlerInterceptor {Override//原始方法调用前执行的内容//返回值类型可以拦截控制的执行true放行false终止public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {String contentType request.getHeader(Content-Type);HandlerMethod hm (HandlerMethod)handler;System.out.println(preHandle...contentType);return true;}Override//原始方法调用后执行的内容public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println(postHandle...);}Override//原始方法调用完成后执行的内容public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println(afterCompletion...);} }这段代码是一个基于Spring MVC的拦截器。它实现了HandlerInterceptor接口并重写了preHandle、postHandle和afterCompletion三个方法。在preHandle方法中首先获取请求头中的Content-Type然后将其与处理器对象进行类型转换最后输出preHandle...。postHandle方法中只输出postHandle...。afterCompletion方法中只输出afterCompletion...。这个拦截器的作用是在请求处理过程中对请求进行预处理、后处理和完成处理。 监听器 package com.yanyu.config;import com.yanyu.interceptor.ProjectInterceptor; 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 ProjectInterceptor projectInterceptor;//设置静态资源访问过滤当前类需要设置为配置类并被扫描加载Overrideprotected void addResourceHandlers(ResourceHandlerRegistry registry) {//当访问/pages/????时候从/pages目录下查找内容registry.addResourceHandler(/pages/**).addResourceLocations(/pages/);}Overrideprotected void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(projectInterceptor).addPathPatterns(/books,/books/*);} } 测试 POST http://localhost:8080/books Content-Type: application/json{id : 11111,type : 计算机丛书,name : Springmvc,description : 好书} 2.3运行流程 2.4拦截器参数 前置处理方法 原始方法之前运行preHandle public boolean preHandle(HttpServletRequest request,HttpServletResponse response,Object handler) throws Exception {//handler:被调用的处理器对象本质上是一个方法对象对反射中的Method对象进行了再包装return true; }使用handler参数可以获取方法的相关信息,例如 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {HandlerMethod hm (HandlerMethod)handler;String methodName hm.getMethod().getName();//可以获取方法的名称return true; }后置处理方法 Override//原始方法调用后执行的内容public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println(postHandle...);} 前三个参数和上面的是一致的。 modelAndView: 如果处理器执行完成具有返回结果可以读取到对应数据与页面信息并进行调整 因为咱们现在都是返回 json 数据所以该参数的使用率不高。 完成处理方法 拦截器最后执行的方法无论原始方法是否执行 public void afterCompletion(HttpServletRequest request,HttpServletResponse response,Object handler,Exception ex) throws Exception {System.out.println(afterCompletion); } //ex:如果处理器执行过程中出现异常对象可以针对异常情况进行单独处理 //因为我们现在已经有全局异常处理器类所以该参数的使用率也不高。2.5拦截器链配置 拦截器执行的顺序是和配置顺序有关。就和前面所提到的运维人员进入机房的案例先进后出。 当配置多个拦截器时形成拦截器链 拦截器链的运行顺序参照拦截器添加顺序为准 当拦截器中出现对原始处理器的拦截后面的拦截器均终止运行 当拦截器运行中断仅运行配置在前面的拦截器的 afterCompletion 操作
http://www.zqtcl.cn/news/185106/

相关文章:

  • 网站建设好学么模版型网站是怎样的
  • 网站维护建设费应计入科目高端营销型网站制作
  • 推荐几个好的网站wordpress 加载数据库表格也卖弄
  • 承德网站开发找人做网站安全吗
  • 百度网站推广电话眼镜网站怎么做竞价
  • 邢台建设银行官方网站为什么建设网站很多公司没有
  • 闵行做网站费用湖南正规网络营销哪家便宜
  • 找个公司做网站需要注意什么wordpress用户名长度
  • 推荐几个没封的正能量网站营销技巧和营销方法视频
  • html mip 网站桂林市临桂区
  • 做网站如何月入10万建行app怎么注册登录
  • 建设一个旅游网站毕业设计建设网站的功能定位是什么原因
  • wordpress网站导航模板杭州建设网站的公司
  • 如何做视频解析网站wordpress 关闭评论
  • 安福网站建设微信开发者工具怎么下载
  • 网罗设计网站威海网页设计制作公司
  • 网站用cmswordpress插件怎么做
  • 如何办好公司网站元器件网站搭建
  • 建设领域行政处罚查询网站wordpress数据库发文章
  • 怎么做网页的多开器宿迁seo优化
  • 别人帮做的网站怎么修改病句店铺引流的30种方法
  • 网站备案幕布怎么申请绍兴cms建站模板
  • 做网站熊掌号软件设计公司排名
  • 深圳 做网站学做西点的网站
  • 静态网站安全性百度服务平台
  • 网站vi设计公司网站建设app
  • 书店网站建设策划书总结每天看七个广告赚40元的app
  • 做网站的属于什么专业成都广告制作安装公司
  • 天津市网站建设公司网站制作费用
  • 网站制作公司 郑州wordpress图片中文不显示解决