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

哈尔滨建站系统android网站开发实例教程

哈尔滨建站系统,android网站开发实例教程,做网站套路,wordpress 守望轩1.什么是 Spring MVC Spring Web MVC 是基于Servlet API 构建的原始 Web 框架#xff0c;从一开始就包含在Spring 框架中。它的正式名称 “Spring Web MVC” 来自其源模块的名称(Spring-webmvc)#xff0c;但它通常被称为“Spring MVC”。 从上述定义我们可以得出两个关键信…1.什么是 Spring MVC Spring Web MVC 是基于Servlet API 构建的原始 Web 框架从一开始就包含在Spring 框架中。它的正式名称 “Spring Web MVC” 来自其源模块的名称(Spring-webmvc)但它通常被称为“Spring MVC”。 从上述定义我们可以得出两个关键信息 Spring MVC 是⼀个 Web 框架。 Spring MVC 是基于 Servlet API 构建的。 1.什么是 MVC MVC 是 Model View Controller 的缩写它是软件工程中的一种软件架构模式它把软件系统分为模型、视图和控制器三个基本部分。 执行流程: 用户的请求首先先到 ControllerController 将请求转发给 ModelModel 处理业并将数据及结果给 ControllerController 会将数据给 View 引擎View 转换数据生成最终的页面给用户 Model模型是应用程序中用处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。View视图是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。Controller控制器是应⽤程序中处理用户交互的部分。通常控制器负责从视图读取数据控制用户输入并向模型发送数据。 2.MVC 和 Spring MVC 的关系 MVC 是一种思想而 Spring MVC 是对 MVC 思想的具体实现。 总结来说Spring MVC 是⼀个实现了 MVC 模式并继承了 Servlet API 的 Web 框架。既然是 Web框架那么当用户在浏览器中输入了 url 之后我们的 Spring MVC 项⽬就可以感知到用户的请求。 2.Spring MVC 创建和连接 学习 Spring MVC 我们只需要掌握以下 3 个功能 连接的功能将用户浏览器和 Java 程序连接起来也就是访问一个地址能够调用到我们的Spring 程序。获取参数的功能用户访问的时候会带一些参数在程序中要想办法获取到参数。输出数据的功能执行了业务逻辑之后要把程序执行的结果返回给用户。 对于 Spring MVC 来说掌握了以上 3 个功能就相当于掌握了 Spring MVC。 Spring MVC 项目创建和 Spring Boot 创建项目相同Spring MVC 使用 Spring Boot 的方式创建在创建的时候选择 Spring Web 就相当于创建了 Spring MVC 的项目。 在 Spring MVC 中使用 RequestMapping 来实现 URL 路由映射也就是浏览器连接程序的作用。 接下来要实现的功能是访问地址http://localhost:8080/user/hi能打印“hellospring mvc”信息。 1.实现客户端和程序之间的连接 1.RequestMapping package com.example.project.controller;import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/*** projectName: Project* package: com.example.project.controller* className: TestController* author: 王嘉辉* description:* date: 2023/12/23 18:15* version: 1.0*/ RestController RequestMapping(/test) public class TestController {RequestMapping(/sayhi)public String sayHi() {return Hello Spring MVC;} } RequestMapping 还可以指定 GET/POST 方法类型 2.GetMapping 实现 HTTP 链接,但只支持 GET 类型的请求 package com.example.project.controller;import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController;/*** projectName: Project* package: com.example.project.controller* className: TestController* author: 王嘉辉* description:* date: 2023/12/23 18:15* version: 1.0*/ RestController RequestMapping(/test) public class TestController {RequestMapping(path /sayhi,method RequestMethod.GET)public String sayHi() {return Hello Spring MVC !!!;}GetMapping(/sayhi2)public String sayHi2() {return Hello Spring MVC2 !!!;} } get 请求的 3 种写法 // 写法1 RequestMapping(/index) // 写法2 RequestMapping(value /index,method RequestMethod.GET) // 写法3 GetMapping(/index)3.PostMapping 实现 HTTP 链接,但只支持 POST 类型的请求 package com.example.project.controller;import org.springframework.web.bind.annotation.*;/*** projectName: Project* package: com.example.project.controller* className: TestController* author: 王嘉辉* description:* date: 2023/12/23 18:15* version: 1.0*/ RestController RequestMapping(/test) public class TestController {RequestMapping(path /sayhi,method RequestMethod.GET)public String sayHi() {return Hello Spring MVC !!!;}GetMapping(/sayhi2)public String sayHi2() {return Hello Spring MVC2 !!!;}PostMapping(/sayhi3)public String sayHi3() {return Hello Spring MVC3 !!!;} } post 请求的 3 种写法 // 写法1 RequestMapping(/index) // 写法2 RequestMapping(value /index,method RequestMethod.POST) // 写法3 PostMapping(/index)2.获取参数 1.传递单个参数 package com.example.project.controller;import jakarta.servlet.http.HttpServletRequest; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/*** projectName: Project* package: com.example.project.controller* className: TestController2* author: 王嘉辉* description:* date: 2023/12/23 18:44* version: 1.0*/ RestController RequestMapping(/test2) public class TestController2 {RequestMapping(/getname)public String getName(HttpServletRequest request) {return Name: request.getParameter(name);} } package com.example.project.controller;import jakarta.servlet.http.HttpServletRequest; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/*** projectName: Project* package: com.example.project.controller* className: TestController2* author: 王嘉辉* description:* date: 2023/12/23 18:44* version: 1.0*/ RestController RequestMapping(/test2) public class TestController2 {RequestMapping(/getname)public String getName(HttpServletRequest request) {return Name: request.getParameter(name);}RequestMapping(/getname2)public String getName2(String name) {return Name: name;} } 2.传递多个参数 package com.example.project.controller;import jakarta.servlet.http.HttpServletRequest; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/*** projectName: Project* package: com.example.project.controller* className: TestController2* author: 王嘉辉* description:* date: 2023/12/23 18:44* version: 1.0*/ RestController RequestMapping(/test2) public class TestController2 {RequestMapping(/getname)public String getName(HttpServletRequest request) {return Name: request.getParameter(name);}RequestMapping(/getname2)public String getName2(String name) {return Name: name;}RequestMapping(/getname3)public String getName3(String name,Integer age) {return Name: name age: age;} } 3.传递对象 package com.example.project.controller;import com.example.project.model.User; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/*** projectName: Project* package: com.example.project.controller* className: UserController* author: 王嘉辉* description:* date: 2023/12/23 18:59* version: 1.0*/ RestController RequestMapping(/user) public class UserController {RequestMapping(/add)public User add(User user) {return user;} } package com.example.project.model;import lombok.Data;/*** projectName: Project* package: com.example.project.model* className: User* author: 王嘉辉* description:* date: 2023/12/23 18:58* version: 1.0*/ Data public class User {private int id;private String name;private String password;private int age; } 4.后端参数重命名 如果我们的实际业务前端的参数是⼀个非必传的参数我们可以通过设置 RequestParam 中的 requiredfalse 来避免不传递时报错 5.获取前端的 JSON 对象 6.获取URL中参数 RequestMapping(/detail/{aid})public Integer detail(PathVariable(aid) Integer aid) {return aid;}7.上传文件 RequestMapping(/upload)public String upload(RequestPart(myfile)MultipartFile file) throws IOException {String path E:\\study\\Gitee\\test_c\\test-2023-12-23\\Project\\file\\img.jpg;//保存文件file.transferTo(new File(path));return path;}RequestMapping(/upload)public String upload(RequestPart(myfile)MultipartFile file) throws IOException {//1.生成一个唯一的id | UUID 全球唯一ID - MAC 随机种子 加密算法String name UUID.randomUUID().toString().replace(-,);//2.得到源文件后缀名name file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(.));String path E:\\study\\Gitee\\test_c\\test-2023-12-23\\Project\\file\\ name;//保存文件file.transferTo(new File(path));return path;}保证不被覆盖 8.获取Cookie/Session/header 获取 Request 和 Response 对象 RequestMapping(/param10) public String param10(HttpServletResponse response, HttpServletRequest requ est) {String name request.getParameter(name);// 获取所有 cookie 信息Cookie[] cookies request.getCookies();return name 你好.; }传统获取 header/cookie RequestMapping(/param10) ResponseBody public String param10(HttpServletResponse response, HttpServletRequest requ est) {String name request.getParameter(name);// 获取所有 cookie 信息Cookie[] cookies request.getCookies();String userAgent request.getHeader(User-Agent);return name userAgent; }简洁的获取 Cookie—CookieValue RequestMapping(/cookie)public String cookie(CookieValue(value java,required false) String ck) {return cookie ck;}简洁获取 Header—RequestHeader RequestMapping(/header) ResponseBody public String header(RequestHeader(User-Agent) String userAgent) {return userAgent userAgent; }session 存储和获取 package com.example.project.controller;import com.example.project.model.User; import jakarta.annotation.PostConstruct; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpSession; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile;import java.io.File; import java.io.IOException; import java.util.UUID;/*** projectName: Project* package: com.example.project.controller* className: UserController* author: 王嘉辉* description:* date: 2023/12/23 18:59* version: 1.0*/ RestController RequestMapping(/user) public class UserController {private static String _SESSION_KEY SESSION_KEY;RequestMapping(/add)public User add(User user) {return user;}RequestMapping(/name)public String name(RequestParam(value n,required false)String name) {return name;}RequestMapping(/add_json)public User addByJson(RequestBody User user) {return user;}RequestMapping(/detail/{aid})public Integer detail(PathVariable(aid) Integer aid) {return aid;}RequestMapping(/upload)public String upload(RequestPart(myfile)MultipartFile file) throws IOException {//1.生成一个唯一的id | UUID 全球唯一ID - MAC 随机种子 加密算法String name UUID.randomUUID().toString().replace(-,);//2.得到源文件后缀名name file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(.));String path E:\\study\\Gitee\\test_c\\test-2023-12-23\\Project\\file\\ name;//保存文件file.transferTo(new File(path));return path;}RequestMapping(/cookie)public String Cookie(CookieValue(value java,required false) String ck) {return cookie ck;}RequestMapping(/set_sess)public String setSess(HttpServletRequest request) {HttpSession session request.getSession();if(session ! null) {session.setAttribute(_SESSION_KEY,张三);return session set success;}else {return session set fail;}}RequestMapping(/get_sess)public String getSess(SessionAttribute(required false,value SESSION_KEY) String name) {return name;} } 3.返回参数 通过上面的学习我们知道默认请求下无论是 Spring MVC 或者是 Spring Boot 返回的是视图xxx.html而现在都是前后端分离的后端只需要返给给前端数据即可这个时候我们就需要使用ResponseBody 注解了。 package com.example.project.controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;/*** projectName: Project* package: com.example.project.controller* className: TestController3* author: 王嘉辉* description:* date: 2023/12/23 22:04* version: 1.0*/ Controllerpublic class TestController3 {RequestMapping(/index)public String index() {return hello.html;} } !doctype html html langen headmeta charsetUTF-8meta nameviewportcontentwidthdevice-width, user-scalableno, initial-scale1.0, maximum-scale1.0, minimum-scale1.0meta http-equivX-UA-Compatible contentieedgetitleDocument/title /head bodyh1hello,i am hello/h1 /body /htmlpackage com.example.project.controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;/*** projectName: Project* package: com.example.project.controller* className: TestController3* author: 王嘉辉* description:* date: 2023/12/23 22:04* version: 1.0*/ Controller ResponseBody public class TestController3 {RequestMapping(/index)public String index() {return hello.html;} } 4.请求转发或请求重定向 return 不但可以返回一个视图还可以实现跳转跳转的方式有两种: forward: 是请求转发 redirect请求重定向。 // 请求重定向 RequestMapping(/index) public String index(){return redirect:/index.html; } // 请求转发 RequestMapping(/index2) public String index2(){return forward:/index.html; }forward请求转发和 redirect请求重定向的区别举例来说例如你告诉你妈妈你想吃辣条如果你妈妈说好我帮你去买这就是 forward 请求转发如果你妈妈让你自己去买那么就是请求 redirect 重定向。 forward 和 redirect 具体区别如下 请求重定向redirect将请求重新定位到资源请求转发forward服务器端转发。请求重定向地址发生变化请求转发地址不发生变化。请求重定向与直接访问新地址效果⼀直不存在原来的外部资源不能访问请求转发服务器端转发有可能造成原外部资源不能访问。
http://www.zqtcl.cn/news/41050/

相关文章:

  • 博客做单页网站网站备案审核通过时间
  • 国外黄冈网站推广软件免费吗广东省自然资源厅胡建斌
  • 某qq非主流个性网源码qq空间网站源码dede内核+采集规则pinterest设计网站
  • 网站建设企业建站要多久安徽六安特产有哪些
  • 东莞seo优化方案seo优化方式包括
  • 哈尔滨网站建设乙薇网站 分站
  • 江苏省和住房城乡建设厅网站商城网站如何做
  • 投资公司网站建设需求网站直接访问
  • 开一个网站要花多少钱杭州网站外包
  • 城乡建设管理局的网站电脑商城网站源码
  • 怒江网站制作优化快速排序
  • 网站建设实现用户登录wordpress otp
  • 北京门户网站建设百度竞价排名点击软件
  • 医院电子网站建设快三直播app下载平台
  • 网站加载很慢网络设计原则有哪些
  • 求一个做交通分析的底图网站seo行业
  • 网站监控的软件怎么做物流网站查询
  • 支付宝网站开发文档精品简历模板网站
  • 旅游网站官网vscode怎么做网页
  • 在线ppt制作网站有哪些asp网站服务器架设
  • 网站怎么做站内美化网站模板间距
  • 做营销型网站需要注意哪些点智能开关网站开发具体流程
  • 东方网站建设网站建立百度信任
  • 创建网站容易吗网站后台生成器
  • php网站开发工程师小程序加盟代理电话
  • seo网站培训班类似千图网的素材网站
  • 网站建设百度贴吧推广渠道怎么写
  • 网站的建设方案计算机类哪个专业最吃香
  • wordpress theme check秦皇岛网站seo
  • 信诺盛世网站项目网评ppt