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

app定制开发网站制作没后台的网站怎么做优化

app定制开发网站制作,没后台的网站怎么做优化,新手怎么学习网站建设,无锡网站建设方案服务SpringBoot项目中参数获取与响应 1. 程序结构&通信方式 程序结构: C/S : 客户端/服务器端 -Main方法。 -效果炫目、数据相对安全。 -公司成本高,因为要分别开发客户端和服务器端。 B/S: 浏览器端/服务器端 -效果依赖于浏览…

SpringBoot项目中参数获取与响应

1. 程序结构&通信方式

程序结构:

  • C/S : 客户端/服务器端
    -Main方法。
    -效果炫目、数据相对安全。
    -公司成本高,因为要分别开发客户端和服务器端。

  • B/S: 浏览器端/服务器端
    -效果依赖于浏览器、数据相对不如C/S安全(token令牌模式)
    -公司成本低,只需要单独开发服务器端。

资源信息:

  • 资源:在网上能够访问的一切信息(文字、图片、音乐、视频…)

  • 静态资源:代码不变、效果不变。
    (HTML/CSS/JS/VUE…)

  • 动态资源:效果改变根据代码控制。
    (Java、servlet…)

通信方式:

  • WEB程序:请求和响应模式。
    -浏览器向服务器发信息: 发请求
    -服务器向浏览器发信息:发响应

  • 请求-响应是成对出现的。
    -先有请求,再有响应。
    -必须是 浏览器先向服务器发请求,服务器收到请求后,才能向浏览器发响应。

2. 创建和浏览器交互的控制器-controller

  • 包创建:
    01
    02
  • Java程序(Java类)创建:

新建名为—MyController的class类
03
04
在MyController中输入

@RestController //标记当前Java类,是一个可以和浏览器进行数据交换的控制器
@RequestMapping("/my") //给该控制器设置一个访问路径,该路径是可以在浏览器上进行访问的
public class MyController {@RequestMapping("/t1")//给该方法设置一个访问路径,该路径是可以在浏览器上进行访问的public String t1(){System.out.println("helloWorld!!!");//在控制台打印信息return "你好世界!!!";//将信息发给浏览器,让浏览器展示}
}

程序运行的访问路径:http://localhost:8080/my/t1

问题解释

  1. SpringBoot启动和关闭
    启动:
    05
    关闭:
    任意按下一个小红方块均可关闭SpringBoot项目
    06
    关闭之后,刷新网页,不再出现运行SpringBoot项目时显示的页面
    07

  2. 代码编写的注意事项

08

  1. 如果更新了代码,怎么办?
    先正常关闭服务器,再重新正常启动服务器,代码执行的就是最新代码了。

3. 单参数获取

09

传统风格:
http://主机名:端口/资源?参数列表
例如:http://localhost:8080/my/t1?userName=aa&sex=man&hobbies=code&hobbies=swim
- 必须传递参数
@RequestParam("参数名") 参数类型 参数名

例如:如果忘记传递sex这个参数,浏览器就会报错
09

- 非必须传递参数
@RequestParam(value="参数名",required=false) 参数类型 参数名
设置为非必须传递参数,如果参数正常传递,可以接收,如果参数未传递,返回为null

例如:

 @RequestMapping("/t2")public void t2(@RequestParam("userName")String userName,@RequestParam("sex")String sex,@RequestParam("hobbies")String[] hobbies){//http://localhost:8080/my/t2?userName=aa&sex=man&hobbies=code&hobbies=swimSystem.out.println(userName);System.out.println(sex);System.out.println(Arrays.toString(hobbies));}
@RequestMapping("/t3")
public void t3(@RequestParam("userName")String userName,@RequestParam(value="sex",required = false)String sex,@RequestParam("hobbies")String[] hobbies
){//http://localhost:8080/my/t3/userName=aa&sex=man&hobbies=code&hobbies=swim//http://localhost:8080/my/t3?userName=aa&hobbies=code&hobbies=swimSystem.out.println(userName);System.out.println(sex);System.out.println(Arrays.toString(hobbies));
}
RESTFul风格:
http://主机名:端口/资源/参数列表
例如:http://localhost:8080/my/t1/aa/man/code,swim
@PathVariable("参数名") 参数类型 参数名
@RequestMapping("/资源名/{参数名1}/{参数名2}")例如:http://localhost:8080/my/t1/aa/man/code,swim
@RequestMapping("/t1/{userName}/{sex}/{hobbies}")
@PathVariable("userName") String userName
@RequestMapping("/t4/{userName}/{sex}/{hobbies}")
public void t4(@PathVariable("userName") String userName,@PathVariable("sex")String sex,@PathVariable("hobbies")String[] hobbies
){//http://localhost:8080/my/t4/aa/man/code,swimSystem.out.println(userName);System.out.println(sex);System.out.println(Arrays.toString(hobbies));
}
小结: 传统方式:@RequestParamRESTFul风格:@PathVariable

4. 多参数获取(JavaBean/Map数据)

4.1. Swagger2

postman经典测试工具
Swagger2集成到项目中,比postman更加方便测试工具。
  • 环境搭建:
    在pom.xml中添加maven环境—再点击更新maven环境010
	<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version></dependency>

添加注解
011

  • 使用入口:
    8080是端口号
http://localhost:8080/swagger-ui/index.html
  • 使用操作:
    012
    POST请求居多,少量的GET请求
JavaBean:
进行数据封装:
属性名 = 属性值;
userName = 张三;
hobbies = 编程,游泳;

创建TestBean1类

@Data
public class TestBean1 {private String name;private String sex;private String[] hobbies;
}
@RequestMapping("/t5")
public void t5(){//ctrl+alt+vTestBean1 tb1 = new TestBean1();tb1.setName("小张");tb1.setSex("男");String[] hobbies = {"编程","游泳"};tb1.setHobbies(hobbies);System.out.println(tb1);//查看所有属性值System.out.println(tb1.getName());//小张
}

Map:
创建出来,封装数据。

@RequestMapping("/t6")
public void t6(){//key:String类型   value:任意类型Map<String, Object> map1 = new HashMap<>();map1.put("name","小张");map1.put("sex","男");String[] hobbies = {"编程","游泳"};map1.put("hobbies",hobbies);System.out.println(map1);//查看所有属性值System.out.println(map1.get("name"));//小张System.out.println(Arrays.toString((Object[]) map1.get("hobbies")));
}

4.2. application/x-www-form-urlencoded格式

Swagger测试同步会导致复选框用hobbies=a1|a2格式,导致服务器解析失败。	
普通数据
接收请求:直接在controller方法参数列表上写 JavaBean或map
格式1:(建议)
public 返回值类型 方法名(JavaBean javaBean){}格式2:(不建议)
public 返回值类型 方法名(Map<String,Object> map){}
@RequestMapping("/t7")
public void t7(TestBean1 testBean1){//http://localhost:8080/my/t7?name=%E5%B0%8F%E5%BC%A0&sex=man&hobbies=code&hobbies=swimSystem.out.println(testBean1);System.out.println(testBean1.getName());
}
@RequestMapping("/t8")
public void t8(Map<String,Object> map){//http://localhost:8080/my/t8?name=%E5%B0%8F%E5%BC%A0&sex=man&hobbies=code&hobbies=swimSystem.out.println(map);//{}System.out.println(map.get("name"));//nullSystem.out.println(Arrays.toString((Object[]) map.get("hobbies")));//null
}

4.3. application/json格式

  • json数据接收请求:
    013
@RequestBody JavaBean javaBean
@RequestBody Map<String,Object> map
@RequestMapping("/t9")
public void t9(@RequestBody TestBean1 testBean1){System.out.println(testBean1);System.out.println(testBean1.getName());
}
@RequestMapping("/t10")
public void t10(@RequestBody Map<String,Object> map){System.out.println(map);//{hobbies=[游泳, 编程], name=小张, sex=男}System.out.println(map.get("name"));//小张
}
小结:如果接收json请求数据,若只是接收并使用一次,用map.如果多个方法中都有接收和使用,用JavaBean
  • json数据发送响应
@ResponseBody JavaBean
@ResponseBody Map<String,Object>
@RequestMapping("/t11")
public @ResponseBody TestBean1 t11(){TestBean1 tb1 = new TestBean1();tb1.setName("小张");tb1.setSex("男");String[] hobbies = {"编程","游泳"};tb1.setHobbies(hobbies);return tb1;
}
@RequestMapping("/t12")
public @ResponseBody Map<String, Object> t12(){Map<String, Object> map1 = new HashMap<>();map1.put("name","小张");map1.put("sex","男");String[] hobbies = {"编程","游泳"};map1.put("hobbies",hobbies);return map1;}
小结:如果发送json响应数据,若只是响应并使用一次,用map.如果多个方法中都有响应和使用,用JavaBean
http://www.yayakq.cn/news/469398/

相关文章:

  • 网站设计任务书范文废旧电脑做网站服务器
  • 虚拟技术对网站建设维护的影响国内最好的分销平台
  • 山西大同专业网站建设价格做网站从什么做起
  • 有自己域名主机怎么做网站北京网站域名备案
  • 青岛网站制作百家号网站开发是怎么样的
  • 淄博网站制作服务推广2323wan网页游戏
  • 网站开发掌握哪种语言赣州章贡区最新招聘信息
  • 上海美容网站建设wordpress页面模板对应
  • 网站制网站制作公司超级seo工具
  • 莆田做网站做书评的网站有哪些
  • 文化建设意义湛江网站seo
  • 深圳建模板网站桂林市是几线城市
  • 网站建设首选玖艺建站信得过wordpress 全站404
  • 天津哪里有做网站的做服装搭配图的网站
  • 购物网站排名前十名手机上可以做网站吗
  • 做网站的思想体会销售app软件大概需要多少钱
  • 沧州网站群网站seo诊断报告例子
  • 建站公司 转型经验兰州市做网站的
  • 网站建设企业战略到哪里建网站
  • 建设企业网站公司价格买房网站排名
  • 唐尧文化 网站建设工作总结贵阳论坛网站建设
  • 如何使用天翼云主机建设网站全flash网站制作教程
  • 网站哪里买外链做网站要在阿里云上买几个贡献
  • 恒基建设集团网站外贸公司如何寻找客户
  • 设计公司网站欣赏无锡中小企业网站制作
  • 网站如何做反链网站图片轮播怎么做
  • 济南做网站比较好的thinkphp 网站下载
  • 北京建设网网站哈尔滨建设职工大学
  • jsp网站开发实例视频教程上海知名建站公司
  • 做外贸怎么能上国外网站南京华夏商务网做网站怎么样