1.日志工具
1.1 log4j的导入(IDEA下)
①导入log4j,jar包
在项目名称上右键——>new——>Directory,命名一般为 lib;
将jar文件拷贝到 lib 中,右键选择 "Add as Library";
②log4j工具的配置文件:log4j.properties文件
复制log4j.properties文件——>直接选中src文件夹,粘贴log4j.properties文件
1.2 使用日志记录对象
1.2.1 配置
#定义日志信息的输出源:输出到控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n
#定义日志信息的输出源:输出到文件
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=test.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %m%
#定义日志信息的输出源:输出到文件
log4j.appender.x=org.apache.log4j.FileAppender
log4j.appender.x.File=d:/smx_log.txt
log4j.appender.x.layout=org.apache.log4j.PatternLayout
log4j.appender.x.layout.ConversionPattern=%d{yyyy-MM-dd} %F %M %p %l %m%n
# %d:日期 %l:行号 %m:信息 %n:换行 %M:方法名 %F:文件名 %p:信息级别
#配置日志记录器,记录信息的级别,以及信息输出的目标
log4j.rootLogger=info,stdout,file,x
DEBUG -debug 调试级别的日志
INFO -info 正常级别的日志
WARN -warn 警告级别的日志
ERROR -error 错误级别的日志
FATAL -fatal 致命级别的日志
程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少
public static void main(String[] args) {
Logger logger = Logger.getLogger(MyTest.class);
Scanner scanner = new Scanner(System.in);
int[] nums = new int[2];
String[] sts = new String[]{"请输入第一个数:", "请输入第二个数"};
logger.debug("开始为数组赋值");
try {
for (int i = 0; i < nums.length; i++) {
System.out.println(sts[i]);
nums[i] =scanner.nextInt();
logger.info(sts[i]+nums[i]);
}
nums[2] = nums[0]/nums[1];
logger.info("计算结果:"+nums[2]);
}catch (InputMismatchException e) {
logger.error("输入不匹配异常! "+e.getMessage());
}catch (ArithmeticException e){
logger.error("算数异常! "+e.getMessage());
}catch (ArrayIndexOutOfBoundsException e){
logger.error("数组下标越界异常! "+e.getMessage());
}finally {
logger.info("程序执行结束!");
}
}
2.Tomcat的使用
2.1 下载和使用
①下载地址:Apache Tomcat® - Apache Tomcat 9 Software Downloads
②下载压缩包版本,下载后直接解压缩;
③启动Tomcat(必须先配置好jdk环境变量),在bin目录下双击打开startup.bat
如下表明,启动成功:
验证:浏览器输入 localhost:8080(也可以使用ip,访问其他计算机可能需要关闭防火墙)出现如下网页:
④关闭 Ctrl+C 或 bin 目录下的 shutdown.bat 双击。
2.2 乱码解决
bin的同级文件夹conf下主要是Tomcat的配置文件
logging.properties 右键打开(记事本什么的都可)
这部分是Tomcat默认的编码格式,一般控制台乱码都是Tomcat的编码格式和系统(windows)的编码格式不一致;
管理员运行cmd,输入 chcp 查看windows 系统的编码格式
65001 表示 utf-8
936 表示 GBK
2.2.1 方式一
直接修改Tomcat配置文件(不太推荐,后面在idea中可能还需要改)
2.2.2 方式二
修改windows 的编码格式为 UTF-8
步骤:设置—>语言、日期和时间—>语言—>管理语言设置—>更改系统区域设置
—>勾选上 : Beta版:...
2.3 在Tomcat 上部署web项目
在 webbapps目录下新建一个文件夹(一定要新建),再把 html 文件放到这个文件夹下。
2.4 将war包(web jar)发布到Tomcat上(了解即可)
2.4.1 使用idea创建Java web 项目
①新建Java项目
②将web项目打成war包
将war包复制到tomcat的webapps目录下,tomcat会自动解压;
启动tomcat 前:
启动tomcat后:
3. 在IDEA中创建web项目
3.1 配置tomcat
3.1.1 第一步
3.1.2 第二步
3.1.3 第三步
运行效果:
3.2 将数据库中的数据显示到浏览器上
首先导入tomcat的包:
项目结构:
package com.wen.servlet;
import com.wen.dao.IStudentDao;
import com.wen.dao.impl.StudentDaoImpl;
import com.wen.enity.Student;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
* @author :muxiaowen
* @date : 2022/7/26
*/
@WebServlet(name = "TestServlet" , value = "/xxx")
public class TestServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
IStudentDao iStudentDao = new StudentDaoImpl();
System.out.println("接收到了客户端发送的get请求");
StringBuilder myHtml = new StringBuilder();
myHtml.append("<html>");
myHtml.append("<head>");
myHtml.append("<title>my page</title>");
myHtml.append("</head>");
myHtml.append("<body><table border='1'>");
myHtml.append("<tr>" +
" <td>学号</td>" +
" <td>姓名</td>" +
" <td>性别</td>" +
" <td>生日</td>" +
"</tr>");
if(iStudentDao.selectAllStu()!=null) {
for (Student student : iStudentDao.selectAllStu()) {
myHtml.append("<tr>" +
" <td>"+student.getStuId()+"</td>" +
" <td>"+student.getStuName()+"</td>" +
" <td>"+student.getSex()+"</td>" +
" <td>"+student.getBirthday()+"</td>" +
"</tr>");
}
}
myHtml.append("</table></body>");
myHtml.append("</html>");
resp.setHeader("Content-type","text/html;charset=UTF-8");
resp.setCharacterEncoding("UTF-8");
PrintWriter out = resp.getWriter();
out.print(myHtml);
out.flush();
out.close();
}
}
效果:
3.3 乱码问题解决
3.3.1 控制台乱码
3.3.2 浏览器乱码
3.3.3 Tomcat日志乱码
修改idea的编码格式,找到idea的bin目录
最后保存并重启IDEA