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

电脑自带做网站的软件网站 移动app开发

电脑自带做网站的软件,网站 移动app开发,网站建设具体工作有什么,微网站开发平台wizi写在前面#x1f6eb;更多知识总结见SpringBoot 2专栏 #x1f695;本篇知识点总结自尚硅谷雷神的视频 #x1f692;博主对于该知识尚在学习阶段 #x1f684;如果发现存在问题请毫不吝啬的指出 #x1f680;#x1f680;扎哇太枣糕的博客首页#x1f680;#x1f680;… 写在前面更多知识总结见SpringBoot 2专栏 本篇知识点总结自尚硅谷雷神的视频 博主对于该知识尚在学习阶段 如果发现存在问题请毫不吝啬的指出 扎哇太枣糕的博客首页 文章目录1 数据响应1.1 数据响应(JSON为例)1.2 数据响应之内容协商2 页面响应2.1 模板引擎之Thymeleaf2.2 拦截器2.3 文件上传1 数据响应 数据响应一般分为两种页面响应和数据响应一般来说页面响应是用来开发一些单体项目(也就是前后端都在一个开发工具中)而数据响应则是用来进行前后端分离开发的项目前端发送过来请求后端响应相应的数据。 1.1 数据响应(JSON为例) 如果想让SpringMVC响应返回一个JSON类型的数据首先需要在项目的pom.xml文件中导入web场景的启动器 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId /dependency!--web场景的启动器的底层导入了JSON的开发场景-- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-json/artifactIdversion2.6.4/versionscopecompile/scope /dependency其次就是在controller中加入ResponseBody注解这样的话就是响应数据而不是页面跳转或者将controller上的Controller注解换成RestController相当于这个controller下的所有方法都自动加上了ResponseBody注解。 1.2 数据响应之内容协商 内容协商 服务器会根据客户端接收能力的不同返回不同媒体类型的数据。   原理 前端发送请求的时候请求头携带Accept字段用于服务器声明自己(客户端)能够接收的数据类型。   处理流程 首先判断当前响应头中是否已经有之前处理时缓存的媒体类型如果没有的话就是第一次处理需要确定处理的媒体类型通过Accept字段获取客户(PostMan、浏览器)支持接收的内容类型。经过遍历循环所有当前系统的MessageConverter看谁支持操作这个对象(Person)找到支持操作Person的converter之后把它支持的媒体类型统计出来。如此操作我们就得到了客户端支持接受的类型和服务端能够返回的类型再通过内容协商的最佳匹配媒体类型用支持将对象转为最佳匹配媒体类型converter。 2 页面响应 SpringBoot默认的打包方式是jar包方式但是JSP不支持在jar包(一种压缩包)中编译所以SpringBoot默认不支持JSP于是我们需要引入第三方的模板引擎技术——Thymeleaf实现页面的渲染。 2.1 模板引擎之Thymeleaf 要想使用Thymeleaf实现页面的渲染的话首先需要在pom.xml文件里引入它的场景启动器依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-thymeleaf/artifactId /dependency在导入场景启动器之后SpringBoot就会给我们在ThymeleafAutoConfiguration自动配置类中配置好所有的相关组件并将相关配置项与ThymeleafProperties.class(代码如下)通过注解EnableConfigurationProperties相关联配置类中设置了默认页面跳转的前缀和后缀也就是规范了页面存放的位置必须是templates文件夹和页面的文件后缀必须是.html我们只需要直接开发页面即可。 private String prefix classpath:/templates/; private String suffix .html;入门案例 第一步 templates文件夹下建个html文件 第二步 html标签引入templates命名空间这样的优点就是在进行页码编写的时候会有相关的提示信息 xmlns:thhttp://www.thymeleaf.org第三步 创建一个controller用于进页面跳转 Controller public class ViewTestController {GetMapping(/jump)public String jumpTo(Model model) {// 之前讲过model的所有属性值都会存储在request域中需要使用的时候直接使用model.addAttribute(msg, 你好张三);model.addAttribute(link, http://www.baidu.com);return seccess;} }第四步 编写页面代码获取域中的值 !DOCTYPE html html langen xmlns:thhttp://www.thymeleaf.org headmeta charsetUTF-8titleTitle/title /head bodyh1 th:text${msg}哈哈/h1h2a th:href${link}点击进入百度/aa th:href{link}点击进入百度/a/h2 /body /html ⚠  页面中两种符号区别${}是直接获取到link属性的值作为链接地址而{}是拼装项目的访问路径符号里的值对本案例而言第一个链接是打开百度第二个是发送http://localhost:8080/link的请求 2.2 拦截器 用户登陆成功之后再发送任意请求的时候都应该是有个登录判断的过程(判断session中是否有正确的用户名和密码)这个功能可以在每个controller使用代码进行判断但是这个过程是重复的会大大增加代码的冗余于是我们可以将判断功能放在拦截器中将登陆成功后的所有从页面发送的请求拦截住进行用户判断成功则放行失败则返回登录。   以上述例子为例讲解拦截器的使用 第一步 自定义拦截器(实现HandlerInterceptor接口重写内置方法在相应的方法内编写判断逻辑) public class LoginInterceptor implements HandlerInterceptor {// 在目标方法执行之前执行的方法Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {// 实现登录检查的逻辑HttpSession session request.getSession();Object user session.getAttribute(loginUser);if (user ! null) {// 已经登录放行return true;}// 未登录重定向到登录页面request.setAttribute(msg, 请先登录之后再进行相关操作);request.getRequestDispatcher(/).forward(request, response);return false;}// 在目标方法执行之后执行的方法Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {}// 页面渲染之后执行的方法Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {} }第二步 自定义配置类实现WebMvcConfigurer接口重写addInterceptors方法将拦截器注册进容器中并指定拦截规则 Configuration public class AdminWebConfig implements WebMvcConfigurer {Overridepublic void addInterceptors(InterceptorRegistry registry) {// 有个问题就是拦截器拦截的不只是动态请求还有静态的页面资源和样式所以也要将静态资源放行registry.addInterceptor(new LoginInterceptor())// 拦截所有的请求.addPathPatterns(/**)// 直接放行的请求.excludePathPatterns(/, /login, /css/**, /fonts/**, /js/**, /images/**);} }2.3 文件上传 文件上传需要前后端的协调配合前端使用一个form表单提交所有的信息包括单文件上传和多文件上传后端使用注解获取到表单中的所有值对他们进行操作 前端表单 form roleform th:action{/upload} methodpost enctypemultipart/form-data!--email邮箱--div classform-grouplabel forexampleInputEmail1Email address/labelinput typeemail nameemail classform-control idexampleInputEmail1 placeholderEnter email/div!--userName用户名--div classform-grouplabel forexampleInputPassword1userName/labelinput typetext nameuserName classform-control idexampleInputPassword1 placeholderPassword/div!--单文件上传 头像--div classform-grouplabel forexampleInputFileheaderImg/labelinput typefile nameheaderImg idexampleInputFile/div!--多文件上传 生活照--div classform-grouplabel forexampleInputFileimage of yourself/labelinput typefile namephotos multiple /divdiv classcheckboxlabelinput typecheckbox Check me out/label/divbutton typesubmit classbtn btn-primarySubmit/button /form后端controller PostMapping(/upload) public String upload(RequestParam(email) String email,RequestParam(userName) String userName,RequestPart(headerImg)MultipartFile headerImg,RequestPart(photos)MultipartFile[] photos) throws IOException {// 将头像保存到本地磁盘中if (!headerImg.isEmpty()) {// 创建相应的文件夹File file1 new File(E:\\bootTest\\ userName \\headerImg);file1.mkdirs();// 获取图片名 生成存储路径headerImg.transferTo(new File(E:\\bootTest\\ userName \\headerImg\\ headerImg.getOriginalFilename()));}// 将生活照保存到本地磁盘中if (photos.length 0) {// 创建相应的文件夹File file1 new File(E:\\bootTest\\ userName \\photos);file1.mkdirs();// 存储图片for (MultipartFile photo:photos) {if (!photo.isEmpty()) {// 获取图片名 生成存储路径photo.transferTo(new File(E:\\bootTest\\ userName \\photos\\ photo.getOriginalFilename()));}}}return index; }文件上传的配置 # 文件上传大小的设置 spring:servlet:multipart:# 单个文件的最大大小max-file-size: 50MB# 总文件的最大大小max-request-size: 100MB
http://www.yutouwan.com/news/139162/

相关文章:

  • 建设公司网站费用网站怎么算抄袭
  • 许昌 网站建设宣传视频
  • 外贸网站搭建推广建设自己网站的流程图
  • 免费h5模板网站资料库网站源码
  • logo是个网站如何在公司网站下设置邮箱
  • 晋城做网站的app界面设计模板素材免费
  • 便宜网站设计怎么做导购网站
  • 珠海市网络营销协会的官方网站青岛酒巢网络科技有限公司
  • 免费手机网站建站平台怎么做校园表白网站
  • 招聘网站制作网站上的高清动态图怎么做的
  • 做软件常用的网站oa平台登录系统入口
  • 做网站意向客户云主机服务
  • 移动 开发 网站建设wordpress 过滤插件
  • 岳阳做网站哪家好最专业的医疗网站建设
  • 济南微网站不下载直接登录qq聊天
  • 宜宾建设教育培训中心网站dw个人网页制作步骤
  • 怎么通过做网站挣钱医疗今科云平台网站建设技术开发
  • 网站和新媒体建设管理办法wordpress网站配置
  • 台州企业网站搭建厂家优客工场 网站开发
  • 网站加载动画效果loadingdw制作旅游网站教程
  • 国发网站建设wordpress调用描述
  • php网站的开发背景建设工程合同范本
  • 工会网站平台建设网易蜂巢 wordpress
  • 建网站哪个好做网站与网页有什么区别
  • 山西做网站的公司响应式 购物网站模板下载
  • 东莞网站优化的具体方案南京网页设计培训机构
  • 网网站建设与设计正确的网址格式怎么写
  • 网站点击排名网站备案为什么要闭站
  • 广阳网站制作网站建设能够不同地方
  • 那些语言可以建网站旅游网站建设的经济评价