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

政务公开加强网站规范化建设python基础教程第4版pdf

政务公开加强网站规范化建设,python基础教程第4版pdf,域名有永久的吗,大连网络公司哪家好目录 MVC 工作流程 Spring MVC 掌握三个功能 创建 Spring MVC 项目 推荐安装插件 EditStarters 基础注解 RequestMapping 指定 GET 和 POST 方法类型 ResponseBody 获取参数 传递 单个 或 多个参数 参数重命名 RequestParam 接收 JSON 对象 RequestBody 获取 …目录 MVC 工作流程 Spring MVC  掌握三个功能 创建 Spring MVC 项目  推荐安装插件 EditStarters 基础注解 RequestMapping 指定 GET 和 POST 方法类型 ResponseBody 获取参数  传递 单个 或 多个参数 参数重命名 RequestParam 接收 JSON 对象 RequestBody 获取 URL 中参数 PathVariable 上传文件 RequestPart 获取 Cookie 数据 使用 CookieValue 注解方式 获取 Header 数据 使用注解 RequestHeader 方式 读取 Session 数据 使用 SessionAttribute 注解方式 返回静态页面 返回 JSON 对象 MVC MVC 是一种 软件设计模式将应用代码组织成三个互相交织的部分模型、视图、控制器 模型Model 业务流程 或 状态的处理以及业务规则的制定者与数据库交互的逻辑 视图View 视图代码用户交互界面对于Web应用来说可以大致概括为 HTML 页面视图是用户接口和交互 控制器Controller 控制器可以理解为从用户接收请求将模型与视图匹配在一起共同完成用户的请求是视图和数据库之间的中介 工作流程 客户端向服务器发起 HTTP 请求控制器Controller接收 HTTP 请求并向 模型Model请求信息模型Model对象 在数据库中进行相应数据的存取完成后将响应信息返回给 控制器Controller控制器Controller收到响应信息后又将其交给 视图View渲染结果展示给用户即通过 视图View将 HTTP 响应传递给用户 Spring MVC  MVC 是一种思想Spring MVC 是对 MVC 思想的实现Spring MVC 是一个实现了 MVC 模式并继承了 Servlet API 的 Web 框架常说的 SSM 项目就等于 Spring Boot Spring MVC  MyBatis 掌握三个功能 连接功能 将用户浏览器和 Java 程序连接起来即可以访问一个能够调用 Spring 程序的地址 获取参数功能 用户访问时会带一些参数如 query string在程序中能够获得该参数 输出数据功能 根据请求计算响应将响应结果返回给用户 创建 Spring MVC 项目  建议点击下方链接 详细了解创建过程 Spring Boot 的创建及使用 创建 Spring MVC 项目的关键为 添加 Spring Web 依赖该依赖包含了 MVC 推荐安装插件 EditStarters 该插件可以方便地设置 Spring Boot 项目的依赖 安装步骤 注意 安装完该插件后最好重启 IDEA 使用方法 在 pom.xml 页面中按快捷键 Alt Insert点击 Edit Starters 选择需要添加依赖 实现连接功能 import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;Controller //让 Spring 项目启动时将这个注解下的类加载到容器中 ResponseBody //使其返回的响应是数据而非页面 RequestMapping(/test) //注册路由 public class TestController {RequestMapping(/hi) //注册路由public String sayHi() {return hi Spring MVC!;} } 运行结果 在浏览器的 URL 输入框中 输入相对应的 URL 基础注解 RequestMapping 可以用来修饰 类 或 方法用来将 HTTP 请求路径映射到对应的处理方法上 实例理解 //此处的 路由设置可以是 一级路由 也可以是 N级路由 RequestMapping(/test/index) 该写法注解 支持 GET 和 POST 两种请求类型当然我们也可以 通过设置method 或 使用其他注解 来指定接收 GET 或 POST 请求 指定 GET 和 POST 方法类型 GET 请求的三种写法 // 写法一 RequestMapping(value /index,method RequestMethod.GET) // 写法二 GetMapping(/index) POST 请求的两种写法 // 写法一 RequestMapping(value /index,method RequestMethod.POST) // 写法二 PostMapping(/index) ResponseBody ResponseBody 返回的值如果是字符会转换成 text/html如果返回的是对象会转换成 application/json 返回给前端ResponseBody 可以用来修饰方法 或 类修饰类表示类中所有的方法都遵循上条规定而不是返回 静态页面 阅读下面文章之前 建议点击下方链接了解 Postman 的使用 Postman 的使用 根据链接文章目录寻找对应 Postman 内容 获取参数  Spring MVC 中可以直接通过方法中的参数来传参注意以下两点 参数名称匹配 在 Spring MVC 中当有多个参数进行参数匹配时是按照参数的名称进行匹配的而不是参数的位置这意味着无论你在方法中如何排列参数只要参数的名称与前端传递的参数名称相匹配就可以正确的获取到参数值 包装类类型参数 在Spring MVC 中建议方法的参数使用包装类类型而非基础类类型如果方法的参数为基础类型int、double 等当前端忘记传递参数时程序会报 500 错误因为基础类型不能为 null而如果参数类型为包装类类型Integer、Double等即使前端忘记传递参数参数值也只会为 null不会引发报错 传递 单个 或 多个参数 import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*;Controller ResponseBody RequestMapping(/user) public class UserController {RequestMapping(/message)public void getUserMessage(String name,String age) {System.out.println(name name);System.out.println(age age);} }上述代码中的方法参数与 URL 中 query string 的 key 值相对应 测试结果 此处我们使用 Postman 来构造 HTTP 请求 来访问 getUserMessage 方法 点击 send 发送构造好的 HTTP 请求随后观察控制台的打印 参数重命名 RequestParam RequestParam 注解有三个属性 value 请求参数名必须配置如果想重命名参数可以在 value 属性中指定新的参数名 required 默认为 true即 请求中必须包含该参数如果未包含将直接抛出异常设置为 false 表示该参数为 非必传参数 defaultValue 表示参数的默认值如果设置了 defaultValue则无论是否配置了 requiredrequired 都将被自动设置为 false 实例理解 当前端传递的参数 key 为 t1 此时后端便可以用 RequestParam 注解 来重命名后端的参数名为 startTime即用 startTime 来接收前端传来的 参数名为 t1 的值 import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*;Controller ResponseBody RequestMapping(/user) public class UserController {RequestMapping(/time)public void getTime(RequestParam(value t1, required false) String startTime,RequestParam(value t2, required true, defaultValue 2023.12.30) String endTime) {System.out.println(起始时间 startTime);System.out.println(结束时间 endTime);} } 该段代码将 t1 重命名为 startTime将 t2 重命名为 endTime此时 startTime 被设置为 非必传参数endTime 的 required 被设置为 true 表示前端发送的请求中必须包含 t2 字段但是 endTime 又被设置了 defaultValue表示其默认值为 2023.12.30 所以即使 endTime 的 required 被设置为了 true但是又因为 defaultValue 的设置从而导致 endTime 的 required 又被自动设置为了 false 验证结果 运行结果正如我们所期望的一样虽然请求中未包含 t2 字段但并未抛出异常正常接收到了 请求中的参数值 接收 JSON 对象 RequestBody 实例理解 此时前端想发送的请求如下图所示 首先我们先创建一个 User 实例类与请求的 JSON 相对应 import lombok.Data; import org.springframework.stereotype.Component;Component Data public class User {private int id;private String name;private int age; } 然后我们再使用 RequestBody 来接收 JSON 对象并打印出来 import com.example.demo.model.User; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*;Controller ResponseBody RequestMapping(/user) public class UserController {RequestMapping(/message)public void getUserMessage(RequestBody User user) {System.out.println(user.toString());} } 运行结果: 获取 URL 中参数 PathVariable 实例理解 此时前端想发送的请求如下图所示 我们使用 POSTMapping 注解来接收 URL 中的参数值 import com.example.demo.model.User; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*;Controller ResponseBody RequestMapping(/user) public class UserController {PostMapping(/urlValue/{name}/{age})public String getUrlValue(PathVariable(value name) String name,PathVariable(value age,required false) String age) {return name: name , age: age;} } 注意 此处的参数 name 为必传参数age 为非必传参数 运行结果 一般来说清晰、有意义的URL结构可以提高你的网站在搜索引擎中的排名使用路径变量如 /user/{id} 而不是查询字符串如 /user?id123可以使URL 看起来更加整洁和易于理解这有可能帮助提高 SEO 效果SEO 全称为 Serch Engine Optimization译为 搜索引擎优化SEO 是一种利用引擎的规则提高网站在有关搜索引擎内的自然排名目的是让其在行业占据领先地位获得品牌效益 上传文件 RequestPart 实例理解 此时前端通过 from 表单将文件传给后端 import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile;import java.io.File; import java.io.IOException;Controller ResponseBody RequestMapping(/file) public class FileController {RequestMapping(/up-file)public String upFile(RequestPart(myfile)MultipartFile file) throws IOException {String path E://photo.jpg; // 将传来的文件存放到对应的目录下file.transferTo(new File(path));return 文件保存到 path;} } 通过 Postman 来构造 from 表单来给后端传输文件 注意 仅使用上述方式来实现 文件的上传和保存会存在一个问题即 后面上传的图片会覆盖前面上传的图片因为 我们所设置的文件保存路径 path 是不变的 解决方法 UUID 全称为通用唯一标识码即每个人都可以创建不与其他人冲突的 UUID具有唯一性从而我们可以 引入 UUID 来作为上传文件的文件名因此保证了每一个上传的文件都会拥有一个唯一的保存路径 path import org.springframework.stereotype.Controller; import org.springframework.util.ClassUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile;import java.io.File; import java.io.IOException; import java.util.UUID;Controller ResponseBody RequestMapping(/file) public class FileController {RequestMapping(/only-file)public String upFile(RequestPart(myfile)MultipartFile file) throws IOException { // 获取上传文件的原始文件名并从中提取出文件的后缀名String fileName file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(.)); // 生产一个文件路径该路径位于 static 目录下并且文件名是一个随机的 UUID 加上文件的后缀名String filePath ClassUtils.getDefaultClassLoader().getResource(static).getPath() / UUID.randomUUID() fileName;file.transferTo(new File(filePath));return filePath upload success!;} } 同样 通过 Postman 来构造 from 表单来给后端传输文件 同时我们也可以在 URL 中输入对应的文件名来访问所上传的文件 获取 Cookie 数据 Spring MVC 基于 Servlet 实现所以获取 Cooike 数据也是通过 HttpServletRequest 的 getCookie 方法 传统方式 实例理解 此处通过打印日志信息来方便结果的观察 import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest;Controller ResponseBody RequestMapping(/cookie) Slf4j public class CookieController {RequestMapping(/get-cookie)public String getCookie(HttpServletRequest request) {Cookie[] cookies request.getCookies();for (Cookie cookie : cookies) {log.error(key: cookie.getName() ,value cookie.getValue());}return get Cookie Success!;} } 在浏览器中自定义测试 cookie  在浏览器的 URL 地址框中输入相对应地址 在控制台中观察 Spring MVC 拿到的 cookie 信息  使用 CookieValue 注解方式 实例理解 通过使用 Cookievalue 注解来直接获取 cookie 所对应 name 为 xiaolin 的 value 值 import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;Controller ResponseBody RequestMapping(/easy-cookie) public class EasyCookieController {RequestMapping(/easy-get)public String easyGetCookie(CookieValue(xiaolin) String value) {return cookie: value;} } 在浏览器的 URL 地址框中输入相对应地址 获取 Header 数据 Spring MVC 基于 Servlet 实现所以获取 Header 数据也是通过 HttpServletRequest 的 getHeader 方法 传统方式 实例理解 import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest;Controller ResponseBody RequestMapping(/header) public class HeaderController {RequestMapping(/old-header)public String getHeader(HttpServletRequest request) {String UserAgent request.getHeader(User-Agent);return old get header success! User-Agent UserAgent;} } 在浏览器的 URL 地址框中输入相对应地址来读取到 User-Agent 的值 使用注解 RequestHeader 方式 实例理解 通过使用 RequestHeader 注解来直接获取 header 中 User-Agent 的值 import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;Controller ResponseBody RequestMapping(/header) public class HeaderController {RequestMapping(/get-header)public String getHeader(RequestHeader(User-Agent)String ua) {return get header success! User-Agent ua;} } 在浏览器的 URL 地址框中输入相对应地址来读取 User-Agent 的值 读取 Session 数据 Spring MVC 基于 Servlet 实现所以读取 Session 数据也是通过 HttpServletRequest 的 getSession 方法 首先为了能够读取到 Session 数据我们得先自己设置 session 对象的属性 import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession;Controller ResponseBody RequestMapping(session) public class SessionController {RequestMapping(set-session)public String setSession(HttpServletRequest request) {HttpSession session request.getSession(true);session.setAttribute(MasterMao,hello);return set Session Success;} } 在浏览器的 URL 地址框中输入相对应地址来通过该请求调用到 setSession 方法 传统方式 实例理解 此处使用 getSession 来读取 Session 数据 import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession;Controller ResponseBody RequestMapping(session) public class SessionController {RequestMapping(read-session)public String readSession(HttpServletRequest request) {HttpSession session request.getSession(false);String value (String) session.getAttribute(MasterMao);if (value null) {return session error!;}return get Session Success! value value;} }在浏览器的 URL 地址框中输入相对应地址来读取到 Session 数据  使用 SessionAttribute 注解方式 实例理解 通过使用 SessionAttribute 注解来直接获取 session 属性名为 MasterMao 所对应的属性值 import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.SessionAttribute;Controller RequestMapping(easy-session) ResponseBody public class EasySessionController {RequestMapping(easy-read)public String easyReadSession(SessionAttribute(value MasterMao, required false) String value) {return easy read session success! value value;} } 在浏览器的 URL 地址框中输入相对应地址来读取到 Session 数据 返回静态页面 Spring MVC 默认情况下返回的是 View 视图xxx.html而上文中我们通过添加 ResponseBody 注解修改成了 后端返回给前端的是数据而非页面此时我们不加 ResponseBody 注解就让后端返回一个静态页面给前端 实例理解 首先我们需在对应目录下创建一个前端页面如下图所示 然后编写 index.html 页面内容 !DOCTYPE html html langen headmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0title测试页面/title /head bodyh3Hello Spring MVC!/h3 /body /html 后端编写如下代码返回 index.html 页面给前端 import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;Controller RequestMapping(/html) public class IndexController {RequestMapping(/index)public String respIndex() { // 编写业务逻辑代码return /index.html;} } 启动程序在浏览器中输入对应的 URL 地址 注意 当程序启动后浏览器可直接直接访问 static 目录下的前端页面 一个 URL 地址为 localhost:8080/html/index 该地址表示向程序中发送请求根据 URL 的路径对应到程序中相应的控制器方法上此处对应的控制器方法为 respIndex 方法然后执行该方法中业务逻辑处理该请求又由于 Spring MVC 默认情况下返回的是页面此处我们也未添加 ResponseBody 注解即 respIndex 方法返回的字符串被 Spring MVC 转变为相对应的页面返回给了前端另一个 URL 地址为 localhost:8080/index.html该 URL 地址直接指向静态 HTML 文件即服务器将直接返回 index.html 文件的内容不经过任何控制器方法 返回 JSON 对象 在 SpringMVC 中返回 HashMap 对象实际上就是返回 JSON 对象给前端 实例理解 import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;import java.util.HashMap;Controller RequestMapping(/json) ResponseBody public class JsonController {RequestMapping(/get-json)public HashMapString,Integer respJson() {HashMapString,Integer map new HashMap();map.put(xiaolin, 1);map.put(maolin, 2);map.put(xiaomei, 3);return map;} } 运行结果
http://www.tj-hxxt.cn/news/229142.html

相关文章:

  • 免费企业网站怎么做做壁画在哪个网站
  • 网站建设的可行性分析网站如何做mip
  • 网站建设礼品海阳网网站
  • 怎么做直播网站超管wordpress加一个字段
  • 深圳网站优化方案微信营销的模式有哪些
  • 简要说明网站建设的步骤塘下网站建设
  • 天津建设集团网站wordpress免费汉化企业主题
  • 那里有做像美团的网站的wordpress 制作网页
  • 兰州优化网站排名重庆网站建设冒号
  • 自己有了域名 怎么做网站搜多多搜索引擎入口
  • 室内设计网站平面案例太原百度快速优化排名
  • 做旅游网站的开题报告怎么做网页的搜索功能
  • 公司做个网站好还是做公众号好给教育类做网站
  • 网站开发维护公司经营范围seo技术优化服务
  • 手机做推广比较好的网站有哪些北京代理记账财务公司
  • 用jsp做电影网站的界面保定哪里有做网站的
  • 网站建设交流qq带会员中心WordPress免费主题
  • 哪有专业做网站在线logo设计免费生成器
  • 两个人能用的一个公司做网站吗wordpress后台菜单如何修改
  • 吉安手机网站建设国内很多网站不是响应式
  • 口碑好的唐山网站建设外贸企业网站
  • 站长工具网站提交长沙人才招聘网最新招聘2022
  • iis7.5怎么做网站佛山网站建设公司 华欣世纪
  • 制作复杂的企业网站首页广州三大代运营公司
  • 织梦做公司网站要钱吗腾冲市住房和城乡建设局网站
  • 太阳能建设网站2023年正国级干部
  • 自己建网站花钱吗套模版做网站
  • 流量网站建设教程简易动漫网站模板
  • 微信小程序网站建设小图标素材网站建设违约合同
  • 个人推广网站wordpress 云标签小工具