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

企业国际网站建设中国制造网服务种类

企业国际网站建设,中国制造网服务种类,建设个人网站第一步这么做,网址被禁止访问怎么办文章目录 一、Spring Boot Web MVC 概念二、状态码三、其他注解四、响应操作 一、Spring Boot Web MVC 概念 Spring Web MVC 是⼀个 Web 框架#xff0c;一开始就包含在Spring 框架里。 1. MVC 定义 软件⼯程中的⼀种软件架构设计模式#xff0c;它把软件系统分为模型、视… 文章目录 一、Spring Boot Web MVC 概念二、状态码三、其他注解四、响应操作 一、Spring Boot Web MVC 概念 Spring Web MVC 是⼀个 Web 框架一开始就包含在Spring 框架里。 1. MVC 定义 软件⼯程中的⼀种软件架构设计模式它把软件系统分为模型、视图和控制器三个基本部分 2. 什么是Spring MVC MVC 是⼀种架构设计模式, 也⼀种思想, ⽽ Spring MVC 是对 MVC 思想的具体实现 Spring MVC 是⼀个实现了 MVC 模式的 Web 框架 Spring Boot 只是实现Spring MVC的其中⼀种方式而已 Spring Boot 实现了MVC思想后就被称为Spring MVC可以实现 web功能 Spring Boot 可以添加很多依赖, 借助这些依赖实现不同的功能. Spring Boot 通过添加Spring Web MVC框架, 来实现web功能 Spring Boot 结合自身特点的情况如下图不过核心依旧没变 3. Spring Boot 不同的传参介绍 普通传参, 也就是通过查询字符串来传参form-datax-www-form-urlencodedraw可以上传任意格式的⽂本可以上传text、json、xml、html等 4. Spring Boot 不同的传参方式 如果使用的是基本类型必须要传值不然会报错因为基本类型无法被赋值null 1传递单个参数 限制方法 RequestMapping(value demo1,method RequestMethod.PUT) public String demo1(String name){return 接收到的name: name; }不限制方法 RequestMapping(demo1) public String demo1(String name){return 接收到的name: name; }2传递多个参数 多个参数发送的时候顺序是无所谓的 RequestMapping(demo2) public String demo2(String name, Integer age){return 接受到的name: name age: age; }3传递对象 RequestMapping(demo3) public String demo3(Person person){return person.toString(); }RequestMapping(demo4) public String demo4(RequestParam(name) String username){return 接收到的name: username; }如果进行了重命名就必须要使用RequestParam注解里的名字 想要把name变成非必传参数 计算机这边正规的还是name但是程序员这边是用username代替了name 4传递数组/集合 RequestMapping(demo5) public String demo5(String[] str){return 接收到的数组 str.toString() ,长度是 str.length; }如果传的是一个列表idea会把列表默认为数组需要一个RequestParam注解才能让idea知道这个是列表 RequestMapping(/demo6) public String m7(RequestParam(required false,defaultValue zhangsan,lisi,wangwu,zhaoliu) ListString listParam){return 接收到的参数listParam: listParam ,长度:listParam.size(); }5传递JSON数据 Json 只能接收正文的而且只能接收JSON字符串格式 工作中上面四种传参方式都不常用比起传单个/多个数据还是更倾向于传对象但是上述方法太过繁琐我们一般使用JSON传递数据 概念本质上是一个字符串有着自己的格式和语法可以描述数据信息 语法 1数据在 键值对(Key/Value) 中 2数据由逗号 , 分隔 3对象⽤ {} 表⽰ 4数组⽤ [] 表⽰ 5值可以为对象, 也可以为数组, 数组中可以包含多个对象 传递方法 接收JSON对象, 需要使⽤ RequestBody 注解 原理赋值是要keyXXX的格式但是JSON本质是一个字符串是一整个数据需要转换 二、状态码 http状态码不是后端定义的 5XX通常指服务端发生错误4XX通常指客户端发生错误3XX通常是重定向2XX通常表示成功 业务状态码后端定义的无法作假 三、其他注解 1. 获取URL中参数PathVariable PathVariable用来获取url路径上的数据绑定 RequestMapping(/demo8/{name}/{wendiage}) public String demo8(PathVariable String name, PathVariable(wendiage) Integer age){return 解析的name: name , age: age; }查找url的时候要准确对应 2. 上传文件RequestPart RequestMapping(/demo9) public String demo9(RequestPart MultipartFile file) throws IOException {System.out.println(file.getOriginalFilename());file.transferTo(new File(D:/else/ file.getOriginalFilename()));return success; }3. 获取Cookie/Session 传统获取方式简洁注解获取方式 这两个都是会话机制 1 概念理解 Cookie Cookie 相当于学生证注册完成之后可以让保安知道是该学校的学生并完成一系列操作 问题是可以伪造的 Session 会话⼀个客户与服务器之间的不中断的请求响应 本质上是个“哈希表”用来存储用户的信息确保服务器能够分辨出请求从属于哪个对话/用户 1Session是由服务器生成的唯一的标识符。Session 默认是保存在内存中的. 如果重启服务器则 Session 数据就会丢失 2Session 是服务器端的无法伪造需要写代码手动添加。在内存中存储服务器重启后就会被清空 3问题分布式情况下会多创建Session Cookie 和 Session 的区别 Cookie 是客⼾端保存⽤⼾信息的⼀种机制Session 是服务器端保存⽤⼾信息的⼀种机制Cookie 和 Session之间主要是通过 SessionId 关联起来的Cookie 和 Session 经常会在⼀起配合使⽤. 但是不是必须配合 2 获取Cookie 代码 Spring 是基于servlet创建的所以servlet支持的Spring 都支持 //拿到所有的CookieRequestMapping(/demo10)public String demo10(HttpServletRequest request, HttpServletResponse response){//Spring内置对象Cookie[] cookies request.getCookies();StringBuilder builder new StringBuilder();if (cookies ! null){for (Cookie ck : cookies){builder.append(ck.getName() : ck.getValue());}}return Cookie信息 builder;}//使用注解的方式一个一个去拿 RequestMapping(/demo11) public String cookie(CookieValue(kunjuan) String bite) {return bite bite; }Cookie 的值需要设置浏览器 F12打开开发者工具可以手动设置但也因说明Cookie是可以伪造的, 也就是不安全的, 所以使⽤Cookie时, 后端需要进⾏Cookie校验 3 Session 代码 解析getSession 内部提取到请求中Cookie里的SessionId然后根据SessionId获取到对应的Session 对象, Session 对象⽤HttpSession来描述 Session 存储 RequestMapping(/setSess) public String setsess(HttpServletRequest request) {// 获取Session对象HttpSession session request.getSession();if (session ! null) {session.setAttribute(username, java);}return session 存储成功; }Session 读取 RequestMapping(/getSess1) public String sess(HttpServletRequest request) {// 如果 session 不存在, 不会⾃动创建HttpSession session request.getSession(false);String username null;if (session ! null session.getAttribute(username) ! null) {username (String) session.getAttribute(username);}return username username; }//通过注解只能拿到一个 RequestMapping(/getSession2) public String getSession2(SessionAttribute(required false) String username){//SessionAttribute 默认是一个必传参数return username:username; }RequestMapping(/getSession3) public String getSession3(HttpSession session){String username (String)session.getAttribute(username);return 登录用户:username; } //HttpSession session 等同于 HttpSession session request.getSession(true)4 Cookie 和Session 的联系 1当一台电脑打开了多个浏览器每一个浏览器对应的服务器都会创建一个会话但是服务器之间是不知道这些浏览器都是由用户一个人打开的服务器每一个会话都会记录一个SessionId而每一个Id都会对应一个SessionValuevalue 里面存了许多值。 2后台服务器会把SessionId告诉客户端把SessionId存到Cookie里面后面再访问的时候就会带着SessionId去访问。服务器就可以根据SessionId 带你去拿到这个SessionId对象 3. 获取header RequestMapping(/getHeader) public String getHeader(HttpServletRequest request){String userAgent request.getHeader(User-Agent);return userAgent:userAgent; }RequestMapping(/getHeader2) public String getHeader2(RequestHeader(User-Agent) String userAgent){return userAgent:userAgent; }四、响应操作 Http响应结果可以是数据, 也可以是静态页面也可以针对响应设置状态码, Header信息等多个注解时, 没有先后顺序, 先写哪个都可以 响应中的 Content-Type 常见取值有以下几种: text/html : body 数据格式是 HTMLtext/css : body 数据格式是 CSSapplication/javascript : body 数据格式是 JavaScriptapplication/json : body 数据格式是 JSON 1. 返回静态页面 Content-Type 为 text/htm RestController RequestMapping(/return) public class returnController {RequestMapping(/htmlTest)public String htmlTest(){return /index.html;} }Controller RequestMapping(/return) public class returnController {RequestMapping(/index)public String htmlTest2(){return /index.html;} }1解析 RestController RestController 定义返回的数据格式为非视图, 返回⼀个 text/html 信息即返回的是正文信息 Controller Controller 定义⼀个控制器, Spring 框架启动时加载, 把这个对象交给Spring管理 ResponseBody ResponseBody定义返回的数据格式为⾮视图, 返回⼀个 text/html 信息 生命周期活在代码里编译后就消失了 2. 返回数据 可以修饰类也可以修饰方法。修饰类的时候表示这个类下的所有方法返回的均为数据修饰方法时表示该方法返回的是数据 ResponseBody RequestMapping(/index2) public String htmlTest3(){return /index.html; }Content-Type 为 text/htm 3. 返回HTML代码片段 ResponseBody RequestMapping(/returnHtml) public String returnHtml(){return h1返回HTML代码片段/h1; }Content-Type 为 text/htm 4. 返回JSON ResponseBody RequestMapping(/returnJson) public Person returnJson(){Person person new Person();person.setId(1);person.setName(zhangsan);person.setAge(7);return person; }当我们的接口返回的是对象时Content-Type 为 application/json 5. 设置状态码 Spring MVC会根据我们⽅法的返回结果自动设置响应状态码, 程序员也可以⼿动指定状态码 ResponseBody RequestMapping(/setStatus) public String setStatus(HttpServletResponse response){response.setStatus(401);//通常表示没有登录return 设置状态码; }6. 设置header ResponseBody RequestMapping(value /r1,produces application/json;charsetutf-8) public String r1(HttpServletResponse response){//设置headerresponse.setHeader(myhead,myhead);return {OK:1}; }consumes限制能够处理的请求不是这个请求的处理不了produces设置返回的内容类型
http://www.pierceye.com/news/975206/

相关文章:

  • ai怎么做自己的网站getpage wordpress使用详解
  • 龙岩做网站推广龙岗网站 建设深圳信科
  • 沈阳网站建设 网络服务广告公司首页
  • 旅游网站建设导航栏中国哪里正在大开发大建设
  • 哪能建设网站建设网站需要哪些流程图
  • 网站YYQQ建设o2o型网站
  • 给客户做网站 赚钱吗赣州省住房和城乡建设厅网站
  • 营销优化型网站怎么做手机app网页制作
  • 上海网站建设服wordpress友情链接排序
  • 沈阳市和平区网站建设编程课适合多大孩子学
  • 东阳网站优化懒人图库
  • 马关县网站建设专注营销型网站建设
  • 微信公众号公众平台太原seo关键词优化
  • 沈阳网站建设方案二级网站怎样被百度收录
  • 厦门数字引擎 怎么打不开网站youku网站开发技术
  • 中小企业网站建设论文郑州网站服务公司
  • 工信部网站备案验证码文化传媒网站封面
  • 境外做网站网站百度代运营
  • 南京学校网站建设策划手机网站默认全屏
  • 东莞公司网站策划万网买网站
  • 建筑网站视频大全做外汇网站卖判刑多少年
  • 手机网站菜单网页怎么做东莞网站优化方案
  • 公众号免费素材网站wordpress无法开始安装
  • 建设银行互联网网站首页网站备案 视频
  • 免费优化网站建设做app和网站哪个比较好用
  • 韩国最牛的设计网站大全网站设计的尺寸
  • 一家专门做特卖的网站类似非小号的网站怎么做
  • 怎么建一个网站出口外贸交易平台
  • iapp用网站做软件代码徐州网络推广公司排名
  • 设计之路 网站wordpress自定义字段火车头