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

面包屑网站导航怎么做淘宝推广平台有哪些

面包屑网站导航怎么做,淘宝推广平台有哪些,wordpress自定义api,wordpress 副标题怎么加分类目录 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 version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.itheima</groupId><artifactId>springmvc_03_request_mapping</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><dependencies><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.10.RELEASE</version></dependency>
</dependencies><build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><configuration><port>80</port><path>/</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/save
  • BookController也有一个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类中配置的路径一致,就可以接收到前端的请求,接收到请求后,如何接收页面传递的参数?

关于请求参数的传递与接收是和请求方式有关系的,目前比较常见的两种请求方式为:

  • GET
  • POST

针对于不同的请求前端如何发送,后端如何接收

2.1 环境准备

  • 创建一个Web的Maven项目
  • pom.xml添加Spring依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.itheima</groupId><artifactId>springmvc_03_request_mapping</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><dependencies><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.10.RELEASE</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><configuration><port>80</port><path>/</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?name=itcast

在这里插入图片描述
接收参数:

@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?name=itcast&age=15

在这里插入图片描述
接收参数:

@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=张三&age=18
控制台:
在这里插入图片描述
出现乱码的原因相信大家都清楚,Tomcat8.5以后的版本已经处理了中文乱码的问题,但是IDEA中的Tomcat插件目前只到Tomcat7,所以需要修改pom.xml来解决GET请求中文乱码问题

<build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><configuration><port>80</port><!--tomcat端口号--><path>/</path> <!--虚拟目录--><uriEncoding>UTF-8</uriEncoding><!--访问路径编解码字符集--></configuration></plugin></plugins>
</build>

2.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.zhongyajixie.com/news/17990.html

相关文章:

  • 做网站怎么挣钱威海seo优化公司
  • 创意设计专业重庆seo排名电话
  • 开发网站的申请怎么写怎么去优化关键词
  • 济南企业网站搭建浙江网站建设营销
  • 电商运营是干嘛的网站推广优化外包公司哪家好
  • 怎么做关于易烊千玺的网站郑州网站seo外包公司
  • 为网站添加isapi扩展网站快速收录
  • 黑彩网站自己可以做么苹果被曝开发搜索引擎对标谷歌
  • 企业级网站建设外贸推广方式
  • 上海网站建设制作微信百度免费收录提交入口
  • 自贡网站制作网络销售管理条例
  • 自己网站做搜索引擎优化运营网站
  • 网站快照描述推广竞价的公司有哪些
  • wordpress wptitle班级优化大师app下载
  • 高端设计网站平台销售
  • 爱站网源码百度竞价广告
  • 上海网站优化上站长之家下载
  • 东莞网站优化关键词费用太原网站排名推广
  • qq是哪个公司开发出来的怎么制作seo搜索优化
  • 家装效果图网站谷歌商店下载官网
  • 曹县网站建设无锡网站制作无锡做网站
  • 启航做网站怎么样seo网站外链平台
  • 网站开发未来活动营销的方式有哪些
  • 想把比尔的网站封了如何做各大网站排名
  • wordpress主题语言泉州关键词优化报价
  • 如何能让企业做网站的打算长春百度快速优化
  • 网络教育做的好的网站百度 营销中心
  • 营销型网站建设计划书seo推广教学
  • 苏州网站建设设计公司厦门人才网个人登录
  • 广东装饰公司网站建设学生网页制作成品