第十七章 日志工具(log4j)+Tomcat使用+动态网页基础(Java Web)

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值