当前位置: 首页>后端>正文

java 调去restful接口 body传参 java使用body传参数


文章目录

  • 1、springmvc
  • 1.1、@RequestBody自定义格式传参(浏览器往服务器传)
  • 1.2、@ResponseBody自定义格式传参(服务器往浏览器传)
  • 1.2、传递json
  • 1.2.1、请求
  • 1.2.2、响应
  • 1.3、json里面带日期
  • 1.4、校验数据(jsr303)
  • 1.4.1、把校验规则写到配置文件里
  • 1.4.2、校验分组
  • 1.4.3、自定义jsr303注解
  • 1.5、jsp引入的格式化标签
  • 1.6、文件上传
  • 1.7、拦截器
  • 2、jdk、jre、jvm
  • 3、BeanFactory和FactoryBean的区别


1、springmvc

1.1、@RequestBody自定义格式传参(浏览器往服务器传)

@RequestBody自定义格式传参(浏览器往服务器传,请求)

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_自定义,第1张

新建包、包下新建user.java

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_spring_02,第2张

当前包下、新建UerController

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_spring_03,第3张

1、在参数类型前不加@RequestBody,就会使用默认注入方式,也就是application/x-www-form-urlencoded,且必须为它。
2、在参数类型前加@RequestBody,就会使用HttpMessagerConverter来注入。

spring-servlet.xml复制到当前包下,更改扫当前包

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_spring_04,第4张

把web.xml里面的spring-servlet.xml改成当前的spring-servlet.xml

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_java_05,第5张

新建z.jsp(传递自定义的格式)

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_自定义_06,第6张

新建类UserHttpMessageConverter接收自定义的格式

(重写默认实现的三个方法,目前只用到了前两个)

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_自定义_07,第7张

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_自定义_08,第8张

修改spring-servlet.xml

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_自定义_09,第9张

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_java_10,第10张

访问、运行结果

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_自定义_11,第11张

1.2、@ResponseBody自定义格式传参(服务器往浏览器传)

@ResponseBody自定义格式传参(服务器往浏览器传,响应)

1、在控制器方法上加@ResponseBody注释以后,Springmvc框架就不会解析逻辑视图,不会跳转到物理视图。

2、上加@ResponseBody注释以后,会取出请求中的accept请求头的值(text/html),判断返回值类型是否归它管理,如果不归它管理就抛异常。(默认string归它管)

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_java_12,第12张

自定义accept类型,并返回

java类

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_自定义_13,第13张

页面代码

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_java_14,第14张

spring-servlet.xml

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_自定义_15,第15张

自定义类型转换器

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_xml_16,第16张

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_java_17,第17张

上面是返回固定值,下面返回对应数据现在web.xml里面添加过滤器

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_spring_18,第18张

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_xml_19,第19张

1.2、传递json

pom.xml,添加json相关包

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_自定义_20,第20张

1.2.1、请求

jsp (contentType里面就定义了类型为json类型)

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_自定义_21,第21张

java类

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_xml_22,第22张

注意web.xml里面

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_自定义_23,第23张

1.2.2、响应

java类

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_自定义_24,第24张

jsp

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_spring_25,第25张

1.3、json里面带日期

javabean user.java

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_xml_26,第26张

jsp传json 带日期

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_spring_27,第27张

添加自定义支持格式XXXX/XX/XX

spring-servlet.xml

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_spring_28,第28张

org.springframework.http.converter.json.MappingJackson2HttpMessageConverter

jsp

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_自定义_29,第29张

1.4、校验数据(jsr303)

1、搭建校验环境

pom.xml

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_spring_30,第30张

spring-servlet.xml

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_自定义_31,第31张

修改web.xml加载当前spring-servlet.xml

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_java_32,第32张

user.java(这里写校验规则)

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_java_33,第33张

可以写的校验规则还有下面这些

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_spring_34,第34张

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_xml_35,第35张

控制器(@Valid标记注解,标记该数据需要校验)

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_xml_36,第36张

表单

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_自定义_37,第37张

浏览器访问

name里面输入4个字母成功传递,输入1个字母,前端报错400

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_java_38,第38张

如果不想让前端报400,可以在控制器变量后面紧跟Errors控制器:

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_java_39,第39张

还可以输出是哪个字段有错

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_spring_40,第40张

jsp

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_spring_41,第41张

访问

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_spring_42,第42张

显示错误值(回显)

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_自定义_43,第43张

处理日期回显

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_xml_44,第44张

1.4.1、把校验规则写到配置文件里

spring-servlet.xml配置资源文件

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_xml_45,第45张

user.java

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_xml_46,第46张

新建配置文件

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_自定义_47,第47张

创建多个资源文件(每个资源文件用不同国家的语言)

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_自定义_48,第48张

这里不用做其他配置,直要满足_en_US_ 这样的格式,浏览器会根据自己的请求头来拿对应的文件

也就是浏览器是英文就拿英文文件,是中文就拿中文文件

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_自定义_49,第49张

1.4.2、校验分组

先新建两个接口,这两个接口就是两个组的组名

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_xml_50,第50张

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_自定义_51,第51张

再到user.java

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_spring_52,第52张

控制器(使用第一组校验)

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_spring_53,第53张

1.4.3、自定义jsr303注解

我们想要实现的功能,自定义jsr303注解校验id是否是质数。

新建注解前先新建一个注解处理器(java类)

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_自定义_54,第54张

新建一个注解

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_xml_55,第55张

使用自定义注解user.java

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_java_56,第56张

控制器也有变化

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_xml_57,第57张

浏览器访问

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_spring_58,第58张

1.5、jsp引入的格式化标签

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_java_59,第59张

1.6、文件上传

在pom.xml中导入fileupload包

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_spring_60,第60张

jsp

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_java_61,第61张

控制器

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_xml_62,第62张

这里需要注意jsp里的这两个名字必须一样

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_xml_63,第63张

spring-servlet.xml(添加一个处理multipart的bean)

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_xml_64,第64张

1.7、拦截器

创建一个java类

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_自定义_65,第65张

spring-servlet.xml

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_java_66,第66张

再写一个拦截器(复制MyInterceptor,新建一个MyInterceptor2)

spring-servlet.xml

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_xml_67,第67张

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_spring_68,第68张

2、jdk、jre、jvm

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_xml_69,第69张

java 调去restful接口 body传参 java使用body传参数,java 调去restful接口 body传参 java使用body传参数_xml_70,第70张

3、BeanFactory和FactoryBean的区别

BeanFactory是接口,提供了OC容器最基本的形式,给具体的IOC容器的实现提供了规范

FactoryBean也是接口,为IOC容器中Bean的实现提供了更加灵活的方式,FactoryBean在IOC容器的基础上给Bean的实现加上了一个简单工厂模式和装饰模式



https://www.xamrdz.com/backend/3o41962906.html

相关文章: