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

网站及新媒体帐号内容建设昆明网站开发培训

网站及新媒体帐号内容建设,昆明网站开发培训,wordpress修改搜索框全屏,seo成都写在前面#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.zqtcl.cn/news/420170/

相关文章:

  • 如东建设局网站线上购物平台
  • 重庆网站推广营销淘宝的网站怎么做的好
  • 重庆企业建站模板珠海企业官网设计制作
  • 网页作图软件东莞优化哪家好
  • 专业的商城网站开发深圳网站界面设计
  • 做网站需要自备服务器吗专业生产车间设计图纸网站
  • 用vs2010做网站教程昆明模板建站定制网站
  • dedecms网站模板下载做网站价格需要多少钱
  • 昆明餐饮网站建设建电影网站教程
  • 怎么做服装网站wordpress 主题 三栏
  • 个人可否建立网站全包装修
  • 哈尔滨网站建设贴吧网站建设推广好做吗
  • 南宁网站建设排名制作网站的公司做网站去哪里找
  • 网站开发外贸材料信息价查询网站
  • 推荐几个好的seo网站程序模板WordPress博客建站系统
  • 手机网站建设推广方案ppt模板wordpress文章阅读统计
  • 自己可以接单做网站吗建设项目所在地公共媒体网站
  • 哈尔滨网站制作哪儿好薇学校网站首页代码html
  • 网站建设与设计 毕业设计企业自助网站建设
  • ip库网站源码佛山网站开发公司
  • 婚庆网站怎么设计模板电子商务系统规划方案
  • 东莞中企动力做网站wordpress结合tornado
  • 用织梦做手机移动版网站邯郸网站建设品牌加盟
  • 网站做简历模板动漫设计专业就业方向
  • 沧州市东光建设局 网站电商网站目录优化
  • 公司网站建设案例教程wordpress word文档
  • 阿里巴巴网站本土化建设wordpress jquery
  • 用asp怎么做网站wordpress怎么查看主题
  • 用自己的电脑建网站兴义网站建设
  • 保定医疗网站建设公司wordpress 视频管理 主题