ssm项目,访问一直加载
数据库相关 没有配置 destroy-method="close"
当数据库连接不使用时 重新把连接放到数据池中 方便下次使用
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
destroy-method="close">
<property name="url" value="jdbc:mysql://localhost:3306/student?characterEncoding=utf-8&serverTimezone=UTC&useSSL=false" />
<property name="username" value="root" />
<property name="password" value="123456" />
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="maxActive" value="10" />
<property name="minIdle" value="5" />
</bean>
编译看左边,运行看右边
编译时候,看左边的对象有没有该方法,运行时候结果看new的对象时谁,就调用谁的方法
get 和 post 区别
-
get 传参明文, post 传参密文
-
get 传参大小有限制,post 无限制
-
get 不能传文件,post 可以
-
语义区别
- get 获取数据 post 提交数据
-
post 请求两次,get 只有一次
- 第一次请求到服务器,问服务器能不能接收数据
- 能-->数据从第二次请求传输到服务器
-
幂等性:无论多少次,结果都一样
- post 不具备,get 具备
"admin".equals(loginId)
admin
在前为了防止String类型的空指针异常
重构原则
事不过三,三则重构 --> 提取方法 提取类
技术选型
- 搜索量,百度指数
- 社区活跃度github --> star大于10000,需要文档完备性
- 是否开源
IDEA快捷键
- 格式化代码:
Alt + ctrl + L
- 同时修改所有同名变量:
Shift + F6
- 用内向外逐层选中:
Ctrl + W
- 可以显示参数信息:
Ctrl + P
- 错误定位:
F2
- 批量列模式 修改:
Alt + 鼠标下拉
- 快捷空出一整行:
Shift + Enter
- 快捷移动一整行:
Shift + Alt + 键盘上下建
- 全局搜索:
双击shift
- 重新编译:
Ctrl + F9
遇到的异常
org.apache.jasper.JasperException
- 删除或修改相应jsp中的头内容
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
- 注意 spring注解注入bean默认第一个字母要小写
如:UserDao --> userDao
java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie value
cookie出现不正常的字符串 cookie中不能出现 分号; 和 空格
设计模式
- 单例:系统中只有一个实例(spring默认使用单例)
<!-- spring-context.xml中-->
<bean id="UserDao" class="com.quan.dao.Impl.UserDaoImpl" scope="singleton"></bean>
- 原型:每次调用都创建一个新的实例
<!-- spring-context.xml中-->
<bean id="UserDao" class="com.quan.dao.Impl.UserDaoImpl" scope="prototype"></bean>
html 中 check框
用req.getParameter("isRemember")获取时
- 选中:传回on
- 未选中:传回null
请求转发 和 重定向
-
请求转发:req.getRequestDispatcher(servlet或者jsp的请求路径).forward(req,resp);
-
URL重定向:resp.sendRedirect("/day47/views/student.jsp");
-
区别:
- 请求转发是一次请求,重定向是两次请求 (通过地址栏可以查看)
- 请求转发地址栏不会发生改变, 重定向地址栏会发生改变
- 请求转发可以共享请求参数 ,重定向之后,就获取不了共享参数了
- 请求转发不能跨域(不能访问其他服务器链接)req.getRequestDispatcher("http://www.baidu.com").forward(req,resp);是不行的
重定向可以 resp.sendRedirect("http://www.baidu.com"); - 请求转发能转到WEB-INF目录下的文件req.getRequestDispatcher("/WEB-INF/views/student.jsp").forward(req,resp);
而重定向不能 resp.sendRedirect("/day02_01/WEB-INF/views/student.jsp");
/* 和 /**
- /* :当前目录下的所有文件
- /** :当前目录及所有子目录的所有文件
关联mysql失败_Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezon'
- cmd进入命令行窗口
- 确保 mysql 启动 --> net start mysql
- 进入mysql
- mysql -u root -p(root为用户名),回车
- 输入密码,回车
- set global time_zone='+8:00';
- exit
字符集
-
首先明确
- 中文: 1 个字符 2 个字节
- 英文: 1 个字符 1 个字节
-
GBK:支持中文
-
ISO-8859-1:一个字符集存 1 个字节 乱码
-
UTF-8:支持中文,一个字符集存 3 个字节 多国语言 支持 100 多个国家的文字显示
-
utf8mb4:UTF-8的扩展 一个字符集存 4 个字节
例如:表情包 emoji
a标签 请求必须要用GET
包装类(Long)比较时
要用 equals , 不能用 ==
事务的隔离级别主要是为了解决并发问题
三种并发问题
- 脏读
- 不可重复读
- 幻读
事务的四种隔离级别
- DEFAULT:采用 DB 默认的事务隔离级别。MySql 默认为 REPEATABLE_READ;Oracle 默认为:READ_COMMITTED;
- READ_UNCOMMITTED:读未提交。未解决任何并发问题。
- READ_COMMITTED:读已提交。解决脏读,存在不可重复读与幻读。
- REPEATABLE_READ:可重复读。解决脏读、不可重复读。存在幻读。
- SERIALIZABLE:串行化。不存在并发问题。(效率奇低)
可选参数
JS :
function sayHi(msg) {
//可选参数
if (!msg) msg == null;
}
Java :
sayHi(String... msg) {
}
解决 Maven 无法自动下载依赖的问题
pom.xml
增加插件配置,关键配置如下:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
<executions>
<execution>
<id>install-external-kaptcha</id>
<!-- 触发时机:执行 mvn clean 命令时自动触发插件 -->
<phase>clean</phase>
<configuration>
<!-- 存放依赖文件的位置 -->
<file>${project.basedir}/libs/kaptcha-2.3.jar</file>
<repositoryLayout>default</repositoryLayout>
<!-- 自定义 groupId -->
<groupId>com.google.code.kaptcha</groupId>
<!-- 自定义 artifactId -->
<artifactId>kaptcha</artifactId>
<!-- 自定义版本号 -->
<version>2.3</version>
<!-- 打包方式 -->
<packaging>jar</packaging>
<!-- 是否自动生成 POM -->
<generatePom>true</generatePom>
</configuration>
<goals>
<goal>install-file</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
通过该插件,我们可以在执行 mvn clean
命令时将项目所需要的依赖自动安装进本地仓库
Zookeeper 启动报错:ZooKeeper not connection yet!
- 保证每个服务的数据库相关配置正确
- 保证启动顺序正确
- 保证网速正常
加速访问国外网址(Github等)
cdn.jsdelivr.net/网站如Github/用户名/仓库名@分支/
如:https://cdn.jsdelivr.net/gh/zjq-springflow/MyBlog@master/