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

深圳seo优化推广品牌网站建设优化公司

深圳seo优化推广,品牌网站建设优化公司,寻找昆明网站建设,太原定制网站建设制作公司SpringMVC涉及组件#xff1a; DispatcherServlet : SpringMVC提供#xff0c;我们需要使用web.xml配置使其生效#xff0c;它是整个流程处理的核心#xff0c;所有请求都经过它的处理和分发#xff01;[ CEO ]HandlerMapping : SpringMVC提供#xff0c;我们需要进行… SpringMVC涉及组件 DispatcherServlet :  SpringMVC提供我们需要使用web.xml配置使其生效它是整个流程处理的核心所有请求都经过它的处理和分发[ CEO ]HandlerMapping :  SpringMVC提供我们需要进行IoC配置使其加入IoC容器方可生效它内部缓存handler(controller方法)和handler访问路径数据被DispatcherServlet调用用于查找路径对应的handler[秘书]HandlerAdapter : SpringMVC提供我们需要进行IoC配置使其加入IoC容器方可生效它可以处理请求参数和处理响应数据数据每次DispatcherServlet都是通过handlerAdapter间接调用handler他是handler和DispatcherServlet之间的适配器[经理]Handler : handler又称处理器他是Controller类内部的方法简称是由我们自己定义用来接收参数向后调用业务最终返回响应结果[打工人]ViewResovler : SpringMVC提供我们需要进行IoC配置使其加入IoC容器方可生效视图解析器主要作用简化模版视图页面查找的但是需要注意前后端分离项目后端只返回JSON数据不返回页面那就不需要视图解析器所以视图解析器相对其他的组件不是必须的[财务] 1.快速体验使用MVC接收数据 在Maven项目中新建模块并转换成Web项目 导入依赖 propertiesspring.version6.0.6/spring.versionservlet.api9.1.0/servlet.apimaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding /propertiesdependencies!-- springioc相关依赖 --dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion${spring.version}/version/dependency!-- web相关依赖 --!-- 在 pom.xml 中引入 Jakarta EE Web API 的依赖 --!--在 Spring Web MVC 6 中Servlet API 迁移到了 Jakarta EE API 因此在配置 DispatcherServlet 时需要使用Jakarta EE 提供的相应类库和命名空间。--dependencygroupIdjakarta.platform/groupIdartifactIdjakarta.jakartaee-web-api/artifactIdversion${servlet.api}/versionscopeprovided/scope/dependency!-- springwebmvc相关依赖 --dependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion${spring.version}/version/dependency/dependencies 创建Controller类 Controller RequestMapping(param) public class ParamController {//后端直接接收// /param/data?namerootage18// 形参列表,填写对应名称的参数即可! 请求参数名 形参参数名即可!// 1. 名称相同 2.可以不传递 不报错RequestMapping(data)ResponseBodypublic String data(String name,int age){System.out.println(接收到name name , age age);return 成功给前端返回name name , age age;} } Spring MVC核心组件配置类 Configuration ComponentScan(com.example) public class MvcConfig {//Bean方式配置handlerMapper和handlerAdapterBeanpublic RequestMappingHandlerMapping handlerMapping(){return new RequestMappingHandlerMapping();}Beanpublic RequestMappingHandlerAdapter handlerAdapter(){return new RequestMappingHandlerAdapter();} } SpringMVC环境搭建 /*** description: 可以被web项目加载,会初始化ioc容器,会设置dispatcherServlet的地址* author UserName*/ public class SpringMvcInit extends AbstractAnnotationConfigDispatcherServletInitializer {// service mapper层的ioc容器的配置Overrideprotected Class?[] getRootConfigClasses() {return new Class[0];}// 设置我们项目对应的配置 springmvc controllerOverrideprotected Class?[] getServletConfigClasses() {return new Class[]{MvcConfig.class};}// 配置springmvc内部自带servlet 的访问地址 !Overrideprotected String[] getServletMappings() {return new String[]{ /};} } 运行测试      ​​​​​ 2.SpringMVC数据接收 ResponseBody注解 用来标识方法或者方法返回值表示方法的返回值是要直接返回给客户端的数据而不是由视图解析器来解析并渲染生成响应体viewResolver没用。 1.访问路径设置 1.1 在RequestMapping注解指定精确地址匹配。 Controller public class HelloController {RequestMapping(springmvc/hello) //对外访问的地址 到handlerMapping注册的注解ResponseBody //直接返回字符串给前端,不要找视图解析器!!!public String hello(){System.out.println(HelloController.hello);//返回给前端return hello springmvc!!;} } 1.2 通过使用通配符匹配多个类似的地址。 Controller public class HelloController {RequestMapping(springmvc/*)ResponseBody //直接返回字符串给前端,不要找视图解析器!!!public String handleAllBooks() {// 匹配所有以 /books/ 开头的路径System.out.println(匹配到一层springmvc/*);return 一层springmvc/*;}RequestMapping(springmvc/**)ResponseBody //直接返回字符串给前端,不要找视图解析器!!!public String handleBookDetails() {// 匹配所有以 /books/ 开头的路径及其子路径System.out.println(匹配到多层springmvc/**);return 多层springmvc/**;} } 运行访问 ### GET http://localhost:8080/springmvc/aaa ### GET http://localhost:8080/springmvc/aaa/bb//输出 springmvc/* springmvc/** 1.3 标记类标记handler方法 Controller RequestMapping(springmvc) public class HelloController {RequestMapping(hello)//底层是字符串拼接但mvc会自动加“/”号ResponseBody //直接返回字符串给前端,不要找视图解析器!!!public String hello() {System.out.println(hello mvc);return hello mvc;} } 运行访问 ### GET http://localhost:8080/springmvc/aaa/bb//输出 hello mvc 1.4 附带请求方式限制 默认情况下RequestMapping(/logout) 任何请求方式都可以访问 RequestMapping(value/login,methodRequestMethod.GET) 等于- GetMapping(value/login) GetMapping PostMapping PutMapping DeleteMapping PatchMapping 可以特定指定但违背请求方式会出现405异常 Controller public class UserController {/*** method RequestMethod.POST 可以指定单个或者多个请求方式!* 注意:违背请求方式会出现405异常!*/RequestMapping(value {/user/login} , method RequestMethod.POST)ResponseBodypublic String login(){System.out.println(UserController.login);return login success!!;} // PostMapping(value {/user/login}) // ResponseBody // public String login1(){ // System.out.println(UserController.login); // return login success!!; // }RequestMapping(value {/user/register},method {RequestMethod.POST, RequestMethod.GET})ResponseBodypublic String register(){System.out.println(UserController.register);return register success!!;}} 2.param参数接收 Controller RequestMapping(param) public class ParamController {//后端直接接收// /param/data?namerootage18// 形参列表,填写对应名称的参数即可! 请求参数名 形参参数名即可!// 1. 名称相同 2.可以不传递 不报错RequestMapping(data)ResponseBodypublic String data(String name,int age){System.out.println(name name , age age);return 成功给后台返回name name , age age;}//注解指定//指定任意的请求参数名 要求必须传递 要求不必须传递 给与一个默认值// /param/data1?accountrootpage1// account必须传递 page可以不必须传递如果不传递默认值就是1/*** RequestParam - 形参列表 指定请求参数名 或者是否必须传递 或者 非必须传递设置默认值* 用法 RequestParam(value指定请求参数名,如果形参名和请求参数名一致可以省略,* required false 前端是否必须传递此参数默认是必须 不传400异常,* defaultValue 1 当非必须传递 false ,可以设置默认值)*/GetMapping(data1)ResponseBodypublic String data1(RequestParam(value account) String username,RequestParam(required false,defaultValue 1) int page){System.out.println(username username , page page);return username username , page page;}//特殊值// 一名多值 key1key2 直接使用集合接值即可//param/data2?hbs吃hbs玩hbs学习//不加注解RequestParam 将 hbs对应的一个字符串直接赋值给集合 类型异常//加了注解经理就会将集合 add加入对应的字符串GetMapping(data2)ResponseBodypublic String data2(RequestParam ListString hbs){System.out.println(hbs hbs);return ok;}//使用实体对象接值 用户注册用户的信息 -》 对应的实体类 -》 插入到数据库 表//param/data3?name二狗子age18 准备一个对应属性和get|set方法的实体类即可 - 形参列表声明对象参数即可RequestMapping(data3)ResponseBodypublic String data3(User user){System.out.println(user user);return user.toString();} } 测试data3 3. 动态路径参数接收 动态路径设计: /user/{动态部分}/{动态部分} Controller RequestMapping(path) ResponseBody public class PathController {// path/账号/密码//动态路径设计 {key} * {key} 在形参列表获取传入的参数//接受路径参数 String account,String password - 接受param格式参数// 必须使用 PathVariableRequestMapping({account}/{password})public String login(PathVariable(value account) String username, PathVariable String password){System.out.println(username username , password password);return username username , password password;} } 运行测试 4. JSON参数接收 前端传递 JSON 数据时Spring MVC 框架可以使用 RequestBody 注解来将 JSON 数据转换为 Java 对象。RequestBody 注解表示当前方法参数的值应该从请求体中获取并且需要指定 value 属性来指示请求体应该映射到哪个参数上 实体类 public class Person {private String name;private int age;private String gender;// getter 和 setter 略 } 使用 RequestBody 注解 RequestMapping(value json) Controller ResponseBody public class JsonController {PostMapping(data)public String data(RequestBody Person person) {System.out.println(person person);return person.toString();} } pom.xml 加入jackson依赖 dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.15.0/version /dependency 使用EnableWebMvc配置 /*TODO: 导入handlerMapping和handlerAdapter的三种方式 1.自动导入handlerMapping和handlerAdapter [推荐] 2.可以不添加,springmvc会检查是否配置handlerMapping和handlerAdapter,没有配置默认加载 3.使用Bean方式配置handlerMapper和handlerAdapter */ EnableWebMvc//handlerAdapter配置了json转化器 Configuration ComponentScan(com.example) public class MvcConfig {//Bean//public RequestMappingHandlerMapping handlerMapping(){// return new RequestMappingHandlerMapping();//}//Bean//public RequestMappingHandlerAdapter handlerAdapter(){// return new RequestMappingHandlerAdapter();//} } 运行测试 或者前端使用Axios axios.post(/json/datas, {name: Lucy,age: 18,gender: man }) 5.Cookie参数接收 1. 定义向响应中添加Cookie数据的方法。创建了一个名为 cookieName值为 root 的Cookie并通过 response.addCookie(cookie) 将其添加到响应中成功后返回“ok”。 2.使用 CookieValue 注解来接收名为 cookieName 的Cookie的值。 Controller RequestMapping(cookie) ResponseBody public class CookieController {GetMapping(save)public String save(HttpServletResponse response){Cookie cookie new Cookie(cookieName,这是一个cookieName);response.addCookie(cookie);return ok;}RequestMapping(data)public String data(CookieValue(value cookieName) String value){System.out.println(value value);return value;} } 运行测试 6.  请求头数据接收 Controller RequestMapping(header) ResponseBody public class HeaderController {GetMapping(data)public String data(RequestHeader(Host) String host){System.out.println(host host);return host host;} }
http://www.pierceye.com/news/282844/

相关文章:

  • 广州市网站建设服务机构建设部网站查资质
  • 医院网站建设思路wordpress mx主题
  • 天津如何做百度的网站虚拟机做局域网网站服务器
  • 网站建设维护需要懂哪些知识网站建设优质公司
  • 怎么做网络彩票网站校园网站建设经费申请报告
  • 廊坊公司做网站一般网站图标是用什么做的
  • php网站开发文档模板玖壹购网站是做啥子的
  • 海报模板网站有哪些小程序电商平台排名
  • 百度一下百度网站苏州优秀网站设计企业
  • 通信管理局网站备案cms网站建设的实训总结
  • 西安知名网站建设公司百度网页版微信
  • 单纯python能完成网站开发吗门户网站衰落的原因
  • 唐山微网站建设价格宁波外贸网站推广优化
  • 如何能把网站做的更大赤峰网站建设赤峰
  • 织梦大气绿色大气农业能源化工机械产品企业网站源码模版网站设计是用ps做图吗
  • 长沙建设网站公司浙江网站建设上市公司
  • 成都艾邦视觉专业网站建设公司有内涵大气的公司名字
  • 制作学校网站编程基础知识大全
  • 建设银行网站买手机阿里云已备案域名购买
  • 12个优秀的平面设计素材网站wordpress 标题 拼音
  • 瑶海区网站建设公司上海app开发定制公司
  • 北海建设厅网站局域网的电脑怎么做网站服务器
  • 莱芜网站建设价格域名注册成功后怎么使用网站
  • 衡阳县建设局网站wordpress 图片缓存
  • 浙江门户网站建设公司新闻稿发布
  • 温州网站建设排名wordpress 汉化失败
  • 做数据可视化的网站推广类软文案例
  • 外包做网站的要求怎么写做网站 360
  • 温州网站建设价格技术微信公众号免费开通
  • 做网站推广销售怎么样辽宁省网站备案系统