JavaWeb问题记录

JavaWeb问题记录

Tomcat
  • 问题描述
    如果多个项目启动Tomcat,且都采用默认的8080端口,则前一个项目会成功,后一个项目会失败。虽然两者都能正常启动,但是后者会访问不到,报404错误。
  • 原因
    因为前者占用了8080端口,即使关闭服务器,但是并没有释放端口。
  • 解决方案
    无法在cmd中关闭8080端口,因为是系统关键端口,无法使用常规方式手动关闭。最好的解决方案是重启电脑,以达到释放端口的目的。
Ajax
  • 问题描述
    Ajax中的this失效

  • 解决方案
    在发送Ajax前声明变量_this,使用_this代替this在Ajax中使用_this

var _this = this;
跨域
  • 问题描述
    前后端分离开发模式下,前后端传输跨域
  • 解决方案
    后端处理,在Servlet中设置:
// 允许跨域请求
resp.setHeader("Access-Control-Allow-Origin", "*");
Axios
  • 问题描述
    Axios中使用Post方式,携带data数据,会发送两个请求,一个预检请求,一个真正的数据传输请求,但会报错

  • 解决方案
    在Axios中重新设置请求头,将复杂请求转换为简单请求

headers: {
  'Content-Type': 'text/plain'
},
中文乱码
前端到后端
  • 解决方案
    将ISO_8859编码转换为UTF_8编码
data = new String(data.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
后端到前端
  • 解决方案
    转换为UTF_8编码
resp.setContentType("text/json;charset=utf8");
后端到数据库
  • 解决方案
    mybatis-config文件,数据库连接信息中
 <property name="url" value="jdbc:mysql:///server_db?characterEncoding=utf8&useSSL=false"/>
MySQL内部
  • 解决方案
    创建数据库时指定编码方式
CREATE DATABASE IF NOT EXISTS server_db CHARACTER SET utf8;
mapper执行sql语句无效
  • 问题描述
    mapper中对数据的增删改无效

  • 解决方案
    没有提交事务,对数据的增删改都需要提交事务

sqlSession.commit();

你可能感兴趣的:(软件开发问题记录,tomcat,服务器,apache)