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

家在坪山业主论坛家在深圳广州官网优化

家在坪山业主论坛家在深圳,广州官网优化,南京律师网站建设,杭州网站目录 1 设置请求映射路径1.1 环境准备 1.2 问题分析1.3 设置映射路径 2 请求参数2.1 环境准备2.2 参数传递2.2.1 GET发送单个参数2.2.2 GET发送多个参数2.2.3 GET请求中文乱码2.2.4 POST发送参数2.2.5 POST请求中文乱码 欢迎大家回到《Java教程之Spring30天快速入门》#xff… 目录 1 设置请求映射路径1.1 环境准备 1.2 问题分析1.3 设置映射路径 2 请求参数2.1 环境准备2.2 参数传递2.2.1 GET发送单个参数2.2.2 GET发送多个参数2.2.3 GET请求中文乱码2.2.4 POST发送参数2.2.5 POST请求中文乱码 欢迎大家回到《Java教程之Spring30天快速入门》本教程所有示例均基于Maven实现如果您对Maven还很陌生请移步本人的博文《如何在windows11下安装Maven并配置以及 IDEA配置Maven环境》本文的上一篇为《PostMan工具的安装与使用技巧》 前面我们已经完成了入门案例相关的知识学习接来了我们就需要针对SpringMVC相关的知识点进行系统的学习之前我们提到过SpringMVC是web层的框架主要的作用是接收请求、接收数据、响应结果所以这一章节是学习SpringMVC的重点内容我们主要会讲解四部分内容: 请求映射路径请求参数日期类型参数传递响应json数据 1 设置请求映射路径 1.1 环境准备 创建一个Web的Maven项目pom.xml添加Spring依赖 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.itheima/groupIdartifactIdspringmvc_03_request_mapping/artifactIdversion1.0-SNAPSHOT/versionpackagingwar/packagingdependenciesdependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion3.1.0/versionscopeprovided/scope/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion5.2.10.RELEASE/version/dependency /dependenciesbuildpluginsplugingroupIdorg.apache.tomcat.maven/groupIdartifactIdtomcat7-maven-plugin/artifactIdversion2.1/versionconfigurationport80/portpath//path/configuration/plugin/plugins /build /project创建对应的配置类 public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {protected Class?[] getServletConfigClasses() {return new Class[]{SpringMvcConfig.class};}protected String[] getServletMappings() {return new String[]{/};}protected Class?[] getRootConfigClasses() {return new Class[0];} }Configuration ComponentScan(com.itheima.controller) public class SpringMvcConfig { }编写BookController和UserController Controller public class UserController {RequestMapping(/save)ResponseBodypublic String save(){System.out.println(user save ...);return {module:user save};}RequestMapping(/delete)ResponseBodypublic String save(){System.out.println(user delete ...);return {module:user delete};} }Controller public class BookController {RequestMapping(/save)ResponseBodypublic String save(){System.out.println(book save ...);return {module:book save};} }最终创建好的项目结构如下: 把环境准备好后启动Tomcat服务器后台会报错: 从错误信息可以看出: UserController有一个save方法访问路径为http://localhost/saveBookController也有一个save方法访问路径为http://localhost/save当访问http://localhost/saved的时候到底是访问UserController还是BookController? 1.2 问题分析 团队多人开发每人设置不同的请求路径冲突问题该如何解决? 解决思路:为不同模块设置模块名作为请求路径前置 对于Book模块的save,将其访问路径设置http://localhost/book/save 对于User模块的save,将其访问路径设置http://localhost/user/save 这样在同一个模块中出现命名冲突的情况就比较少了。 1.3 设置映射路径 步骤1:修改Controller Controller public class UserController {RequestMapping(/user/save)ResponseBodypublic String save(){System.out.println(user save ...);return {module:user save};}RequestMapping(/user/delete)ResponseBodypublic String save(){System.out.println(user delete ...);return {module:user delete};} } Controller public class BookController {RequestMapping(/book/save)ResponseBodypublic String save(){System.out.println(book save ...);return {module:book save};} } 问题是解决了但是每个方法前面都需要进行修改写起来比较麻烦而且还有很多重复代码如果/user后期发生变化所有的方法都需要改耦合度太高 步骤2:优化路径配置 优化方案: Controller RequestMapping(/user) public class UserController {RequestMapping(/save)ResponseBodypublic String save(){System.out.println(user save ...);return {module:user save};}RequestMapping(/delete)ResponseBodypublic String save(){System.out.println(user delete ...);return {module:user delete};} } Controller RequestMapping(/book) public class BookController {RequestMapping(/save)ResponseBodypublic String save(){System.out.println(book save ...);return {module:book save};} }注意: 当类上和方法上都添加了RequestMapping注解前端发送请求的时候要和两个注解的value值相加匹配才能访问到。RequestMapping注解value属性前面加不加/都可以 扩展小知识: 对于PostMan如何觉得字小不好看可以使用ctrl调大ctrl±调小。 2 请求参数 请求路径设置好后只要确保页面发送请求地址和后台Controller类中配置的路径一致就可以接收到前端的请求接收到请求后如何接收页面传递的参数? 关于请求参数的传递与接收是和请求方式有关系的目前比较常见的两种请求方式为 GETPOST 针对于不同的请求前端如何发送后端如何接收 2.1 环境准备 创建一个Web的Maven项目pom.xml添加Spring依赖 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.itheima/groupIdartifactIdspringmvc_03_request_mapping/artifactIdversion1.0-SNAPSHOT/versionpackagingwar/packagingdependenciesdependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion3.1.0/versionscopeprovided/scope/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion5.2.10.RELEASE/version/dependency/dependenciesbuildpluginsplugingroupIdorg.apache.tomcat.maven/groupIdartifactIdtomcat7-maven-plugin/artifactIdversion2.1/versionconfigurationport80/portpath//path/configuration/plugin/plugins/build /project创建对应的配置类 public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {protected Class?[] getServletConfigClasses() {return new Class[]{SpringMvcConfig.class};}protected String[] getServletMappings() {return new String[]{/};}protected Class?[] getRootConfigClasses() {return new Class[0];} }Configuration ComponentScan(com.itheima.controller) public class SpringMvcConfig { }编写UserController Controller public class UserController {RequestMapping(/commonParam)ResponseBodypublic String commonParam(){return {module:commonParam};} }编写模型类User和Address public class Address {private String province;private String city;//setter...getter...略 } public class User {private String name;private int age;//setter...getter...略 }最终创建好的项目结构如下: 2.2 参数传递 2.2.1 GET发送单个参数 发送请求与参数: http://localhost/commonParam?nameitcast接收参数 Controller public class UserController {RequestMapping(/commonParam)ResponseBodypublic String commonParam(String name){System.out.println(普通参数传递 name name);return {module:commonParam};} }2.2.2 GET发送多个参数 发送请求与参数: http://localhost/commonParam?nameitcastage15接收参数 Controller public class UserController {RequestMapping(/commonParam)ResponseBodypublic String commonParam(String name,int age){System.out.println(普通参数传递 name name);System.out.println(普通参数传递 age age);return {module:commonParam};} }2.2.3 GET请求中文乱码 如果我们传递的参数中有中文你会发现接收到的参数会出现中文乱码问题。 发送请求: http://localhost/commonParam?name张三age18 控制台: 出现乱码的原因相信大家都清楚Tomcat8.5以后的版本已经处理了中文乱码的问题但是IDEA中的Tomcat插件目前只到Tomcat7所以需要修改pom.xml来解决GET请求中文乱码问题 buildpluginsplugingroupIdorg.apache.tomcat.maven/groupIdartifactIdtomcat7-maven-plugin/artifactIdversion2.1/versionconfigurationport80/port!--tomcat端口号--path//path !--虚拟目录--uriEncodingUTF-8/uriEncoding!--访问路径编解码字符集--/configuration/plugin/plugins /build2.2.4 POST发送参数 发送请求与参数 接收参数 和GET一致不用做任何修改 Controller public class UserController {RequestMapping(/commonParam)ResponseBodypublic String commonParam(String name,int age){System.out.println(普通参数传递 name name);System.out.println(普通参数传递 age age);return {module:commonParam};} }2.2.5 POST请求中文乱码 发送请求与参数: 接收参数: 控制台打印会发现有中文乱码问题。 解决方案:配置过滤器 public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {protected Class?[] getRootConfigClasses() {return new Class[0];}protected Class?[] getServletConfigClasses() {return new Class[]{SpringMvcConfig.class};}protected String[] getServletMappings() {return new String[]{/};}//乱码处理Overrideprotected Filter[] getServletFilters() {CharacterEncodingFilter filter new CharacterEncodingFilter();filter.setEncoding(UTF-8);return new Filter[]{filter};} }CharacterEncodingFilter是在spring-web包中所以用之前需要导入对应的jar包。
http://www.dnsts.com.cn/news/247147.html

相关文章:

  • 网站推广公司ihanshi以企业介绍为主做外贸网站好吗
  • 微信网站下载wordpress网站商务通
  • 网站建设一般多少钱官网网络科技服务有限公司
  • php做的网站后台长沙网站设计服务
  • 优秀的设计网站推荐移动网站建设哪家便宜
  • 重庆哪个网站建设比较好公司网站怎么优化
  • 企业网站建设 制作谷歌chrome官网
  • 网站制作推广招聘网站开发好就业吗
  • 做传销网站违法十大免费行情软件下载网站
  • 长乐市住房和城乡建设局网站销售和营销的区别
  • 网页和网站做哪个好用吗做磁力搜索网站好吗
  • 青岛网站建设公司专业公司网站开发交流平台
  • 网站建设的功能要求有哪些平台可以发广告
  • 百度录入网站网络工程技术适合女生吗
  • 如何建设网站挣钱上海做网站比较好的公司
  • 租用网站的服务器开源商城小程序
  • 国外优惠卷网站如何做汉阳网站建设鄂icp
  • 那个网站销售好做一个游戏小程序需要多少钱
  • 什么是网站seo网站优化定做
  • 做订票网站设计要多久手机自助建站永久免费
  • 网站运营团队管理天眼查企业信息查询平台官网
  • 网站登录慢艺术创意设计图片大全
  • 沧州市有建网站的吗云服务器可以放几个网站
  • 免费网站建设ppt模板下载甘肃网站建设的过程
  • discuz商城网站怎么做seo
  • 北京66中网站做的不怎么样呀外包服务费税率
  • 付网站建设费如果做账商贸行业网站建设
  • 为什么选择做汉服网站广州的一起做网店app下载
  • 重庆大型网站建设重庆网站制作网页设计技能证书怎么考
  • 郑州哪里有做网站免费落地页制作平台