免费手机h5模板网站模板,英文营销网站建设,装修案例文案怎么写,英文营销网站前言简介演示 ⇒ #xff08;最简单的原理#xff0c;开发并不这样#xff0c;理解一下就好#xff09;演示 ⇒ 接近真实注解开发#xff08;好好理解一下#xff09;重要的源码献上 Controller 讲解RequestMapper ⇒ 没啥记的#xff0c;第一个案例看看就行了RestFul 风… 前言简介演示 ⇒ 最简单的原理开发并不这样理解一下就好演示 ⇒ 接近真实注解开发好好理解一下重要的源码献上 Controller 讲解RequestMapper ⇒ 没啥记的第一个案例看看就行了RestFul 风格 ⇒ 简洁、有层次演示讲解 重定向和转发 ⇒ 一般都用return不是很建议用这两个方法。写项目遇到的问题return返回的都是路径但是重定向路径呢怎么写回显除了 model 还有 modelMap过滤器 Filter 、Filter乱码 web.xml 过滤器过滤器 Json 和 JacksonResponseBody注解 方法/ RestController类fastjson ⇒ 用于 java 和 json 进行转换 ⇒ 目前知道有这个功能以后不会可以百度一下报错细微问题讲解有个报错很重要要小心 AjaxAjax的优点使用 ajax写ajax时的问题 拦截器User 和 Password 登录案例插一嘴session节点注销要记得哦。 文件上传下载需要的时候去复制粘贴哦 前言 ssm: mybatis Spring SpringMVC ⇒ MVC 三层架构 模型Dao、Service、视图Jsp、控制器Servlet⇒ 转发或重定向 简介 演示 ⇒ 最简单的原理开发并不这样理解一下就好 演示 ⇒ 接近真实注解开发好好理解一下 重要的源码献上
web.xml
!DOCTYPE web-app PUBLIC-//Sun Microsystems, Inc.//DTD Web Application 2.3//ENhttp://java.sun.com/dtd/web-app_2_3.dtd web-appdisplay-nameArchetype Created Web Application/display-nameservletservlet-namespringmvc/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-classinit-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:springmvc-servlet.xml/param-value/init-paramload-on-startup1/load-on-startup/servletservlet-mappingservlet-namespringmvc/servlet-nameurl-pattern//url-pattern/servlet-mapping
/web-app
springmvc-servlet.xml
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:contexthttp://www.springframework.org/schema/contextxmlns:mvchttp://www.springframework.org/schema/mvc xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.2.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.2.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd!-- IOC注解支持 --context:component-scan base-packagecontroller /!-- 静态资源解析--mvc:default-servlet-handler /!-- MVC注解支持 --mvc:annotation-driven /!-- 配置内部视图解析器 --!-- 视图路径/WEB-INF/jsp/*.jsp --beanclassorg.springframework.web.servlet.view.InternalResourceViewResolverproperty nameprefix value/WEB-INF/jsp/ /property namesuffix value.jsp //bean!-- 静态资源解析 --mvc:resources location/static/ mapping/static/** /!-- 全局异常处理 --beanclassorg.springframework.web.servlet.handler.SimpleMappingExceptionResolverproperty nameexceptionMappingspropsprop keyjava.lang.RuntimeExceptionerror/prop/props/property/bean
/beansController 讲解
曾经的兄弟组件Component组件ServiceserviceControllercontrollerRepositorydao
RequestMapper ⇒ 没啥记的第一个案例看看就行了
RestFul 风格 ⇒ 简洁、有层次
演示 讲解 我们可以把利用这种方式吧变量 绑定 在 url 地址栏中。 如上图我们可以看到目前有两种方法来限定提交的方式但是尽量用 下面这种 哦 ~ ~。毕竟方便、快捷、准确率高嘛而且还挺安全 ~ ~。 重定向和转发 ⇒ 一般都用return不是很建议用这两个方法。 resp.sendRedirect(xx.jsp) . req.getRequestDispatcher(\xx.jsp).forword(req,resp); . public String test ( RequestParam ( userName String name ) ) { xxx } 获取前端 的 参数
写项目遇到的问题return返回的都是路径但是重定向路径呢怎么写 一般来说return 返回的都是jsp页面重定向可以使用以下方式去找路径 return redirect:/get; 回显除了 model 还有 modelMap
过滤器 Filter 、Filter乱码 web.xml 过滤器 过滤器
filterfilter-nameencoding/filter-namefilter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-classinit-paramparam-nameencoding/param-nameparam-valueutf-8/param-value/init-param/filterfilter-mappingfilter-nameencoding/filter-nameurl-pattern/*/url-pattern/filter-mappingJson 和 Jackson 是一种轻量级的数据交换格式目前使用的特别特别特别广泛 示例{name:xxx,age:15} ResponseBody注解 方法/ RestController类 会返回字符串而不会走视图解析器会直接return字符串。 fastjson ⇒ 用于 java 和 json 进行转换 ⇒ 目前知道有这个功能以后不会可以百度一下 ① 导包 ⇒ maven 中找 ②使用。例如 xxx.json xxx.toJsonString() 示例
报错细微问题讲解有个报错很重要要小心 我在导入 这个包的时候添加了以上的解决乱码统一代码 的时候有以下报错我一直在排错。但是还是一直不能解决问题。 !-- https://mvnrepository.com/artifact/com.alibaba/fastjson --dependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion2.0.49/version/dependency 后来发现有一个大神说少了一个jar包我 附到下面了。添加之后则解决。 !-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.16.1/version/dependency 来自一个小白得到结论排错一定很重要要看完所有的报错信息找一个最重要的查找而不是一直去查找最后一个报错这样效率真的很低很低 Ajax 我们为什么要学习 ajax 笨的我们从后端 传递过来的 json 数据肯定需要接收呀 Ajax的优点 Ajax最大的优点就是发送请求的时候不会影响用户的操作相当于两条平行线一样“你忙你的我忙我的”不需要去等待页面的跳转而浪费时间 使用 ajax ①先下载 JQuery 包 官网拿走: https://jquery.com/download/ ②导包 script srchttps://code.jquery.com/jquery-3.6.0.min.js/script 或者引入js文件 script srcxxx.js/script ③使用 示例代码呈上如下 $.ajax({url: /api/getUserInfo,type: GET,data: { userId: 123 },dataType: json,success: function(result) {console.log(result);},error: function(xhr, status, error) {console.log(error);}
});写ajax时的问题 在写ajax的时候我遇到了一个问题 我在想未什么得不到 返回的 json 中的 name属性值呢 在查找了半天答案知道自己错了并且错的很离谱 拦截器 自带 资源过滤 只会拦截 controller 里面的请求而不会拦截 jsp/html/css等资源。减少了资源损耗。 User 和 Password 登录案例 解释一下 contains ⇒ 包含 英汉互译 插一嘴session节点注销要记得哦。 文件上传下载需要的时候去复制粘贴哦 第一步导包 第二步写页面 第三部配置 !-- 处理文件上传与下载--bean idmultipartResolver classorg.springframework.web.multipart.commons.CommonsMultipartResolver!-- 必须和用户JSP 的pageEncoding属性一致以便正确解析表单的内容 --property namedefaultEncoding valueUTF-8/property!-- 文件最大大小(字节) 1024*1024*5050M--property namemaxUploadSize value52428800/property!--resolveLazily属性启用是为了推迟文件解析以便捕获文件大小异常--property nameresolveLazily valuetrue//beanjsp页面 % page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitle图片上传/title
/head
body
form action${pageContext.request.contextPath }/clazz/upload methodpost enctypemultipart/form-datalabel班级编号/labelinput typetext namecid readonlyreadonly value${param.cid}/br/label班级图片/labelinput typefile namexxx/br/input typesubmit value上传图片/
/form
/body
/html文件上传 1 // 文件上传2 // RequestMapping(value /upload, method RequestMethod.POST) 等价于 PostMapping()3 PostMapping(value upload)4 ResponseBody5 public String fileUpload(MultipartFile[] uploadFile) {6 for (MultipartFile file : uploadFile) {7 //获取原始文件名8 String originalFilename file.getOriginalFilename();9
10
11 try {
12 // 生成UUID
13 // 修正文件名出现乱码 防止文件名重复造成覆盖
14 originalFilename new String(originalFilename.getBytes(ISO-8859-1), UTF-8);
15 } catch (UnsupportedEncodingException e) {
16 throw new RuntimeException(e);
17 }
18 System.out.println(文件名 originalFilename);
19 // UUID随机
20 String newFile UUID.randomUUID().toString() _ originalFilename;
21
22 // 指定文件上传路径
23 // Windows版--方式
24 String serverWin E:\\Chrom\\Download\\pictures\\;
25
26 // Linux版--方式
27 // String serverLinux /home;
28
29 File fileWin new File(serverWin);
30 // 文件夹是否存在
31 if (!fileWin.exists()) {
32 fileWin.mkdir();
33 }
34 try {
35 // 文件与文件夹
36 file.transferTo(new File(serverWin newFile));
37 } catch (IOException e) {
38 throw new RuntimeException(e);
39 }
40 }
41 return success;
42 }文件下载 // 文件下载GetMapping(value download)public ResponseEntitybyte[] download(HttpServletRequest httpServletRequest, String filename) {// 指定文件下载目录// 文件在服务器的目录String fileDownloadWin E:\\Chrom\\Download\\pictures\\;// 指定文件下载名称File file new File(fileDownloadWin File.separator filename);HttpHeaders httpHeaders new HttpHeaders();filename getFilename(httpServletRequest, filename);httpHeaders.setContentDispositionFormData(attachment, filename);httpHeaders.setContentType(MediaType.APPLICATION_OCTET_STREAM);try {return new ResponseEntity(FileUtils.readFileToByteArray(file), httpHeaders, HttpStatus.OK);} catch (IOException e) {throw new RuntimeException(e);}}