• 首页

  • 图库

  • 分类

  • 随笔

  • 归档

  • 友链

  • 关于我
❤ 寸 劲 - 开 天 ❤
❤ 寸 劲 - 开 天 ❤

寸劲开天

获取中...

06
03
各种问题

常见小问题汇总

发表于 2020-06-03 • 被 153 人看爆

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&amp;serverTimezone=UTC&amp;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/
分享到:
BCrypt的密码加密也不过如此!
  • 文章目录
  • 站点概览
寸劲开天

帅哥寸劲开天

Github QQ Email RSS
看爆 Top5
  • Spring 基础知识回顾! 659次看爆
  • Spring MVC 基础知识回顾! 327次看爆
  • Ajax 基本使用 回顾! 257次看爆
  • 给博客添加天气和飘落特效! 256次看爆
  • SpringBoot+Mybatis实现评论楼中楼功能! 238次看爆

Copyright © 2021 寸劲开天 · 鲁ICP备19012310号

Proudly published with Halo · Theme by fyang · 站点地图