jsp 与 模板引擎的区别与相同点
区别:
jsp 本质上是一个servlet,需要转化为servlet 通过标签库对html 编辑,然后后台根据标签解析 然后通过 response 拼接输出,需要依赖于 web 容器, tomcat 和 jvm
模板引擎(themleaf,freemarke)由Java 语言编写,用来解析指定规则的标签 依赖 jvm,也是要进行 拼接转化
相同:
都可以用来进行数据的获取和基本的渲染操作,增强了 html 的功能
jsp 和 模版 引擎的使用都需要引入依赖,标签约束,标签库
jap 和 模板引擎使用时 标签都要前缀 c / th ,都拥有丰富的函数库
springMVC封装PUT请求失败的问题(在 springBoot 中不存在此问题,因为 springBoot 已经帮我们自动配置好解决的过滤器)
原因:
SpringMVC的POJO封装是基于request.getParameter方法拿到的,
而getParameter之所以能拿到数据,是因为tomcat把请求封装成了Map,这样就能通过参数名来获得对应的。
关键地方:
如果tomcat遇到PUT请求,它就不封装成Map,这样getParameter就拿不到数据,所以SpringMVC也就封装不上了
解决:
<!-- spring-filter 封装put 请求-->
<filter>
<filter-name>httpPutFormContentFilter</filter-name>
<filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>httpPutFormContentFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
前端请求中(http://localhost:8080/bookmanger/user/10?_=1598415769419)
后面前端自带的参数是为了防止缓存
mybatis 乱码解决:
<property name="url" value="jdbc:mysql://localhost:3306/mybatis_test?useUnicode=true&characterEncoding=UTF-8"/>
url 中指定数据库编码字符
前端设置隐藏域;
用来隐藏一些敏感字段或者不愿用户看见的信息字段
同时引出更新数据时的 spring MVC的@ModelAtrribute的注解,作用,在执行控制器方法之前执行,可出现在方法和参数上。出现在方法上常用来补全一些数据库的数据参数。出现在参数列表上用来进行参数字段的匹配获参
密码加密:
数据库密码不存明文而是存放加密后的密文,md5 ,弱哈希,强哈希(不可逆的算法):BCryptPasswordEncoder spring security推荐 即是无法得到明文信息。
密码加密,通过把用户输入的明文信息加密为密文,然后与数据库中密文信息进行匹配。
浏览器调试前端程序,检查错误,前后端对接,通常去看接口传递和返回数据。前端开发,用来调试js错误信息
传统 ssm 项目加载流程:
- tomacat 启动
- tomcat 加载 web.xml 配置
- web.xml 中配置加载 spring 和 spring MVC 相关的配置
- 加载 spring MVC ,spring 的配置文件
- 在spring 的配置文件中加载 mybatis 配置注解。
- 服务应用启动成功
- 如果没有配置首页访问 URL 的根路径,如果通过在 web.xml 中配置了 welcome-list 欢迎列表,按照欢迎列表的顺序访问,注意配置欢迎业面要把欢迎业放到前面。
- 应用正常使用
web 项目访问路径:
如果直接写 /css/*.css 会去访问 url 根 http://localhost:8080/
正确写法需要加入 项目名称: /projectName/css/.css 或者 <%request.getContentPath+"/css/.css"%> 还有模板引擎的写法 ....
web 项目开发,访问出现 404还有其他错误代码是 需要通过浏览器调试,去发现错误信息,比如 路径不对啥的。
并发与并行:
并发同一时间段
并行同一时刻
相对路径与绝对路径
相对路径,相对于当前位置的文件地址 ./ ../
绝对路径,从根目录进行查找 /a/b/c.txt
前端选择器:
# id 选择器
. 类型选择器
ajax 异步请求:
后台发请求,浏览器地址栏不会感知到
请求转发与重定向
地址栏改变: 重定向
携带数据: 请求转发
String 字符串的 indexOf 方法,查找字符出现的第一个位置,索引下标从 0 开始
String 字符串可以直接遍历,原因是底层为 char 数组,通过 charAt(i) 方法获取字符信息。
Ascll 码
0~9 是 48~57 判断是否为数字时可以使用
a~z 是 97~122
A~Z 是 65~90
解决异常的分类: try catch finally ,
throw : 声明异常对象,在方法体内,手动抛出
throws : 在方法声明是抛出异常
上述两个的区分可以看 s,s 代表可以抛出多个异常,所以在方法声明位置
== 与 equals 的区别
基本数据类型(int(0) float(0.0) double(0.0) long(0) char(u0000) boolean(false),short,byte)
排序算法:
冒泡
选择
本文探讨了JSP与模板引擎如Thymeleaf、Freemarker的主要区别和共同点,包括它们的工作原理、依赖环境及如何增强HTML功能。同时,文章还分析了SpringMVC在处理PUT请求时的问题及解决方案。


被折叠的 条评论
为什么被折叠?



