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

旅行社应做哪些网站wordpress新建页面发布内容

旅行社应做哪些网站,wordpress新建页面发布内容,如何优化网站结构,国际热点新闻2020MVC是一种思想而SpringMVC是具体的实现#xff08;Ioc和DI的关系#xff09; 在创建项目的时候勾选的SpringWeb框架就是SpringMVC框架 与浏览器建立连接 默认返回的是一个 view 视图。需要添加ResponseBody说明返回的是json数据。RestController是ControllerResponseBody…MVC是一种思想而SpringMVC是具体的实现Ioc和DI的关系 在创建项目的时候勾选的SpringWeb框架就是SpringMVC框架 与浏览器建立连接 默认返回的是一个 view 视图。需要添加ResponseBody说明返回的是json数据。RestController是ControllerResponseBody的组合注解 package app.controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController;Controller RequestMapping(/web) public class WebController {// 返回数据GetMapping(/hello)ResponseBodypublic String hello() {return hello world.;}// 返回页面GetMapping(/index)public String index() {return /index.html;} } 返回数据 返回页面 获取参数 参数请求类型 URL传参Ajax传参Form表单传参 获取单个参数 get1可以通过内置的servlet获取也可以直接给定一个和前端对应的参数获取 // 1.获取单个参数 GetMapping(/get1) public HashMapString, String getParameter1(HttpServletRequest req, HttpServletResponse rep, String name) {return new HashMapString, String() {{put(req_name, req.getParameter(name));put(name, name);}}; }Postman测试get1接口 Fiddler抓包结果 获取对象 User对象 import lombok.Data;Data public class User {private Integer id;private String name;private Integer age;private String sex; }get2接口 // 2.获取对象 GetMapping(/get2) public HashMapString, User getParameter2(User user) {return new HashMapString, User() {{put(user, user);}}; }Postman测试get2接口 Fiddler抓包 获取表单参数 get3接口 // 3.Form表单Ajax RequestMapping(/get3) public HashMapString, User getParameter3(User user) {return new HashMapString, User() {{put(user, user);}}; }Form表单 input标签中name属性值和后端对象字段名需要一致 form methodget action/get4divh1Form表单/h1span用户:/spaninput typetext namenamebr/span年龄:/spaninput typenumber nameagebr/span性别:/spaninput typetext namesexbr/input typesubmit value注册/div /form表单提交数据之后会自动跳转到该接口F12查看URL时证明表单提交的数据依旧是和之前一样进行URL拼接的方式发送数据 前端Form表单从get改为post请求发现表单提交的数据get3接口可以正常获取 获取Ajax参数 一般Ajax发起HTTP请求的时候会为了节省数据大小采取JSON的格式传输 get3接口 // 3.Form表单Ajax RequestMapping(/get3) public HashMapString, User getParameter3(User user) {return new HashMapString, User() {{put(user, user);}}; }get请求不指定json格式data数据不封装为json 这里就按照要求规定JSON格式就转为JSON格式数据没要求就不做编排。按照规范编写代码减少后续不必要的测试步骤 Ajax代码 divh1Ajax/h1span用户:/spaninput typetext namename idnamebr/span年龄:/spaninput typenumber nameage idagebr/span性别:/spaninput typetext namesex idsexbr/input typebutton value注册 idsub-btnbr/input iddata hiddenhidden stylewidth: auto /div script src../js/jquery-3.7.1.min.js/scriptscript!--请求后端接口--document.getElementById(sub-btn).addEventListener(click, function () {$.ajax({url: /get3,type: get,//contentType: application/json,data: {name: document.getElementById(name).value,age: document.getElementById(age).value,sex: document.getElementById(sex).value},success: function (data) {// 后端是HashMap这种JSON数据格式的话就需要转换为字符串或者取值【这里直接取之】let result document.getElementById(data);result.value name:${data.user.name}、age:${data.user.age}、sex:${data.user.sex};result.hidden false;},error: function (xhr, status, error) {console.log(error);}});}); /script分析get请求会把发送的数据以键值的形式拼接在url后即使设定了参数类型为JSON格式但是依旧会遵循Ajax中的data数据这种key-value格式SpringMVC会自动根据URL的参数和对象的属性进行匹配因此可以形成映射关系 【不建议这么写因为已经设定了json格式但是data数据并没有完全封装成一个json对象这里是为了测试效果】 get请求指定json格式data数据封装为json Ajax代码 divh1Ajax/h1span用户:/spaninput typetext namename idnamebr/span年龄:/spaninput typenumber nameage idagebr/span性别:/spaninput typetext namesex idsexbr/input typebutton value注册 idsub-btnbr/input iddata hiddenhidden stylewidth: auto /divscript!--请求后端接口--document.getElementById(sub-btn).addEventListener(click, function () {$.ajax({url: /get3,type: get,contentType: application/json,data: JSON.stringify({name: document.getElementById(name).value,age: document.getElementById(age).value,sex: document.getElementById(sex).value}),success: function (data) {// 如果后端是HashMap这种JSON数据格式的话就需要转换为字符串console.log(data);let result document.getElementById(data);result.value name:${data.user.name}、age:${data.user.age}、sex:${data.user.sex};result.hidden false;},error: function (xhr, status, error) {console.log(error);}});}); /script分析接口报错400当封装data数据格式为JSON之后URL中的参数和后端接口get3中的参数由于无法映射成User对象就会报错 post请求不指定json格式data数据不封装为json Ajax代码 divh1Ajax/h1span用户:/spaninput typetext namename idnamebr/span年龄:/spaninput typenumber nameage idagebr/span性别:/spaninput typetext namesex idsexbr/input typebutton value注册 idsub-btnbr/input iddata hiddenhidden stylewidth: auto /div script src../js/jquery-3.7.1.min.js/scriptscript!--请求后端接口--document.getElementById(sub-btn).addEventListener(click, function () {$.ajax({url: /get3,type: post,//contentType: application/json,data: {name: document.getElementById(name).value,age: document.getElementById(age).value,sex: document.getElementById(sex).value},success: function (data) {// 后端是HashMap这种JSON数据格式的话就需要转换为字符串或者取值【这里直接取之】let result document.getElementById(data);result.value name:${data.user.name}、age:${data.user.age}、sex:${data.user.sex};result.hidden false;},error: function (xhr, status, error) {console.log(error);}});}); /script分析Ajax的post请求其实和表单的post请求类似所以依旧可以获取到数据 post请求指定json格式data数据封装为json Ajax代码 divh1Ajax/h1span用户:/spaninput typetext namename idnamebr/span年龄:/spaninput typenumber nameage idagebr/span性别:/spaninput typetext namesex idsexbr/input typebutton value注册 idsub-btnbr/input iddata hiddenhidden stylewidth: auto /divscript!--请求后端接口--document.getElementById(sub-btn).addEventListener(click, function () {$.ajax({url: /get3,type: post,contentType: application/json,data: JSON.stringify({name: document.getElementById(name).value,age: document.getElementById(age).value,sex: document.getElementById(sex).value}),success: function (data) {// 如果后端是HashMap这种JSON数据格式的话就需要转换为字符串console.log(data);let result document.getElementById(data);result.value name:${data.user.name}、age:${data.user.age}、sex:${data.user.sex};result.hidden false;},error: function (xhr, status, error) {console.log(error);}});}); /script分析原因和之前get请求指定json格式data数据封装为json类似转为JSON对象之后无法和get3接口中User对象进行匹配只不过是不会报错的原因是此时post请求不用解析URL中的参数和后端接口去匹配而是将body中的数据去匹配此时body中的数据有JSON对象但是无法和get3接口中的User对象进行映射需要添加一个RequestBody注解才能实现JSON对象和后端接口参数中的User对象进行映射 获取JSON对象RequestBody get5接口在对象参数前加一个RequestBody注解 RequestBody将前端数据映射为一个Java对象 // 4.JSON对象Postman测试 RequestMapping(/get4) public String getParameter4(RequestBody User user) {return new HashMapString, User() {{put(user, user);}}; }前端Ajaxurl更改为get4请求方式为post divh1Ajax/h1span用户:/spaninput typetext namename idnamebr/span年龄:/spaninput typenumber nameage idagebr/span性别:/spaninput typetext namesex idsexbr/input typebutton value注册 idsub-btnbr/input iddata hiddenhidden stylewidth: auto /div script src../js/jquery-3.7.1.min.js/scriptscript!--请求后端接口--document.getElementById(sub-btn).addEventListener(click, function () {$.ajax({url: /get4,type: post,contentType: application/json,data: JSON.stringify({name: document.getElementById(name).value,age: document.getElementById(age).value,sex: document.getElementById(sex).value}),success: function (data) {// 后端是HashMap这种JSON数据格式的话就需要转换为字符串或者取值【这里直接取之】let result document.getElementById(data);result.value name:${data.user.name}、age:${data.user.age}、sex:${data.user.sex};result.hidden false;},error: function (xhr, status, error) {console.log(error);}});}); /script获取文件RequestPart // 5.获取文件 PostMapping(/get5) public String getParameter5(String name, RequestPart(myfile) MultipartFile upLoadFile) throws IOException {// 获取文件名String fileName upLoadFile.getOriginalFilename();System.out.println(fileName);if (fileName ! null) {String filePath ClassUtils.getDefaultClassLoader().getResource(static).getPath() /;File file new File(filePath fileName);upLoadFile.transferTo(file);return 【 file.getName() 】上传成功;}return 上传失败; }Postman测接口的时候需要文件名和后端RequestPart对应 获取Cookie/Session/Header 因为HTTP无状态浏览器默认会把当前网站所有Cookie发送给后端 /**** 6.获取 Cookie、Session 和 Header* 6.1 Cookie* Servlet方式获取: 获取全部Cookie* 注解方式获取: 获取1个Cookie*/ GetMapping(/get6) public HashMapString, String getParameter6(HttpServletRequest request) {Cookie[] cookies request.getCookies();// true: 没有session就创建一个sessionfalse: 没有session就返回nullHttpSession session request.getSession(true);session.setAttribute(session_dir_jdk, System.getProperty(user.dir));session.setAttribute(session_dir_spring, ClassUtils.getDefaultClassLoader().getResource(app).getPath());String userAgent request.getHeader(User-Agent);return new HashMapString, String() {{put(cookies, Arrays.toString(cookies));put(session_dir_jdk, session.getAttribute(session_dir_jdk).toString());put(session_dir_spring, session.getAttribute(session_dir_spring).toString());put(userAgent, userAgent);}}; }GetMapping(/get7) public HashMapString, String getParameter7(CookieValue(JSESSIONID) String cookie_JSESSIONID,SessionAttribute(value session_dir_jdk, required true) String session_dir_jdk,SessionAttribute(value session_dir_spring, required true) String session_dir_spring,RequestHeader(User-Agent) String userAgent) {return new HashMapString, String() {{put(cookie_JSESSIONID, cookie_JSESSIONID);put(session_dir_jdk, session_dir_jdk);put(session_dir_spring, session_dir_spring);put(userAgent, userAgent);}}; }在浏览器手动设置Cookie 后端参数重命名RequestParam 如果前后端参数未统一管理则此时后端可以使用RequestParam重命名前后端参数值 前端 divinput typebutton value点击获取当前时间 idgetCurrentTImebrinput typedatetime-local hiddenhidden idshowCurrentTime /divscript// 后端参数重命名document.getElementById(getCurrentTIme).addEventListener(click, function () {let nowTimeStamp new Date();let year nowTimeStamp.getFullYear();let month String(nowTimeStamp.getMonth() 1).padStart(2, 0);let day String(nowTimeStamp.getDate()).padStart(2, 0);let hour String(nowTimeStamp.getHours()).padStart(2, 0);let min String(nowTimeStamp.getMinutes()).padStart(2, 0);let sec String(nowTimeStamp.getSeconds()).padStart(2, 0);let time year - month - day hour : min : sec;jQuery.ajax({url: /get8,method: GET,contentType: text/plain,data: {time: time},success(data) {let showCurrentTime document.getElementById(showCurrentTime);showCurrentTime.hidden false;showCurrentTime.value data;},error(xhr, status, error) {window.alert(error: error);}});}); /script后端 GetMapping(/get8) public String getParameter8(RequestParam(time, required false) String createTime) {return createTime; }此时后端字段需要一个createTime但是前端却传的是time字段那么此时后端会无法接收到参数作为后端程序员可以通过参数重命名接收前端参数 获取URL中参数PathVariable 前端 127.0.0.1:8080/get9/张三/23/M 后端 // 获取URL中的参数 GetMapping(/get9/{name}/{age}/{sex}) public HashMapString, String getParameter9(PathVariable String name,PathVariable String age,PathVariable String sex) {return new HashMapString, String() {{put(name, name);put(age, age);put(sex, sex);}}; }请求转发与请求重定向 一般都是前端处理好但这一块属于面试常问的问题。因此做一个小小的梳理
http://www.zqtcl.cn/news/539322/

相关文章:

  • 做足球直播网站wordpress筛选框
  • 做网站需求文档深圳站建在边境
  • 网站建设法规浙江建设信息港证书查询
  • 影视作品网站开发与设计网站建设教程简笔画
  • 自己可以给公司做网站吗网站建设 用ftp上传文件
  • 电子商务网站开发与管理网站建设的设备
  • 网站建设项目公司沈阳网站关键字优化
  • 可以做淘宝联盟的免费网站优质国外网站
  • 石家庄营销型网站建设公司服装公司网站源码
  • 网站开发的软硬件需求做网站盘锦
  • 创意网站建设排行榜python和php哪个做网站
  • 开锁做网站怎么样榆林网站开发公司
  • 松原市建设局网站苏州网站建设-中国互联
  • 标书制作教程视频网站福田祥菱v1单排
  • 点网站出图片怎么做能看人与动物做的网站
  • 免费开源建站系统源码wordpress公共函数在哪里
  • 西昌市建设工程管理局网站模块化网站开发
  • 无限看片的视频大全免费下载上海网络优化方法
  • 物流公司做网站注重什么问题中国建设银行征信中心网站
  • 教务处网站建设专业做鞋子的网站吗
  • 梦幻创意网站建设成都做网站设计哪家便宜
  • 织梦网站栏目修改教程丝绸之路网站建设意义
  • 如何知道一个网站是谁做的北京装饰公司前十名
  • 杭州网站建设哪个平台好visualstudio 做网站
  • 广州站是哪个站h5建站系统
  • 网站首页网址应该有对应的域名南京高端模板建站
  • 自己做的网站竞价优化怎么做网站流量赚钱吗
  • 人力资源网站建设mip网站模板
  • 太原市住房和城乡建设部网站网站 备案 换空间
  • 怎么做网站备份网站运营数据周报表怎么做