java 学习细节知识点

本文探讨了JSP与模板引擎如Thymeleaf、Freemarker的主要区别和共同点,包括它们的工作原理、依赖环境及如何增强HTML功能。同时,文章还分析了SpringMVC在处理PUT请求时的问题及解决方案。

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&amp;characterEncoding=UTF-8"/>
url 中指定数据库编码字符

前端设置隐藏域;
用来隐藏一些敏感字段或者不愿用户看见的信息字段
同时引出更新数据时的 spring MVC的@ModelAtrribute的注解,作用,在执行控制器方法之前执行,可出现在方法和参数上。出现在方法上常用来补全一些数据库的数据参数。出现在参数列表上用来进行参数字段的匹配获参

密码加密:
数据库密码不存明文而是存放加密后的密文,md5 ,弱哈希,强哈希(不可逆的算法):BCryptPasswordEncoder spring security推荐 即是无法得到明文信息。
密码加密,通过把用户输入的明文信息加密为密文,然后与数据库中密文信息进行匹配。

浏览器调试前端程序,检查错误,前后端对接,通常去看接口传递和返回数据。前端开发,用来调试js错误信息

传统 ssm 项目加载流程:

  1. tomacat 启动
  2. tomcat 加载 web.xml 配置
  3. web.xml 中配置加载 spring 和 spring MVC 相关的配置
  4. 加载 spring MVC ,spring 的配置文件
  5. 在spring 的配置文件中加载 mybatis 配置注解。
  6. 服务应用启动成功
  7. 如果没有配置首页访问 URL 的根路径,如果通过在 web.xml 中配置了 welcome-list 欢迎列表,按照欢迎列表的顺序访问,注意配置欢迎业面要把欢迎业放到前面。
  8. 应用正常使用

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)

排序算法:
冒泡
选择

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值