Flex弹性布局
- 产生的比较晚,目前在移动网页开发中可以可以使用,而且逐渐成为主流
- 在桌面网页开发中使用的比较少(主要是桌面浏览器的兼容性问题更加严重)
- 开启方法:
- 在容器标签上,加上display:flex
- 将对容器内部的标签起到布局作用
- 开启弹性布局后,内部的标签将会失去行、块性质(不在遵循流式布局的控制)
- 布局效果:
- 对齐支持:
- 可以实现上、下、左、右4个方向停靠排列
- 可以实现上下居中、左右居中
- 排列方向支持:
- 可以实现内部标签水平排列、垂直排列、多行排列
- 空间分配支持:
- 可以实现空间均分(考虑两头空间、不考虑两头空间)
- 空间可以固定或弹性伸缩(可以指定伸缩比例)
- 布局方向:
- 默认是水平方向为主轴,垂直方向叫做交叉轴。
- 元素沿着主轴方向排列的
- 主轴可以通过flex-direction修改
- 主轴居中:
- 主轴居中
- justify-content:center;
- 交叉轴居中
- align-items:center;
- 空间均分
- 两头空白:
- justify-content: space-around;
- 两头无空白
- justify-content: space-between;
- 两头空白:
- 空间分配比例
- flex-grow:控制增长比例
- flew-shrink:控制收缩比例
- 主轴居中
- 对齐支持:
Servlet和JSP错误处理(Tomcat错误处理)
- 页面找不到404,有明确的Http状态码的错误,可以在web.xml中配置
<error-page>
<error-code>404</error-code>
- Java代码或JSP代码中抛出异常,可以在web.xml中配置
<error-page>
<error-type>异常类的全名</error-type>
- 通过<location>节点可以配置【转发】到那个页面
- 错误页面可以在<$page 指令中添加isErrorPage=“true”这个属性,添加之后可以在JSP中访问exception对象:exception代表当前抛出的异常(如果异常的类型是ServletException或者它的子类,那么exception对象将指向ServletException内部包装的那个异常对象,而不是指向ServletException本身)
关于代码中的catch
之前我们catch到exception之后,只调用了exception.printStackStrace()将之打印到控制台输出,页面并没有报错(但页面显示不正常)
添加错误页之后,catch到的exception就不能只打印了之,不能让exception被忽略,而是应该在打印之后将之抛出,甚至不需要打印,而是抛出(抛出比打印更重要)
抛出异常时会发现,不是所有的异常都能抛出去(因为有一些方法的签名是固定的,而且是由其他人提供的,无法修改。如HttpServlet 中的doXXX方法)
只能选择抛出指定类型的异常,将真正的异常包在里边。形成异常链
Exception1 Caused by Exception1.1 Caused by Exception1.1.1 ......
使用Log4j的优势(Log For Java)
- 专门为Java项目提供日志工具
- Log4j目标:可以将日志同时写到控制台、文件、数据库、发邮件、调用网络接口接口等多个不用的地方。
- Log4j还提供日志级别可以区分日志的重要性,对不同级别的日志可以传输到不用的地方或者平时忽略掉不重要的日志,当系统出现而难题时,还可以在不重启服务器的情况下将平时忽略掉的信息全部开启。
- log4j2:会从WEB-INF中查找名字为log4j2.xml的配置文件。
- 在配置文件中,<configuration status属性是log4j2自己内部使用的 logger 的日志输出界别。如果想让log4j 将自己内部的日志信息打印出来,需要将status的级别设置低一些,以便找到log4j自己的错误信息
- 日志级别
- Fatal:最高级,表示致命错误,当程序遇到这种错误时,无法恢复执行,接下来就会崩溃
- logger.fatal("致命错误的详细信息i")
- Error:错误级,部落到异常时,通过这个级别输出
- logger.error("错误消息",exception)
- warn:警告级,当程序执行时,遇到不应该执行的代码或不应该出现情况时,通过这个级别输出
- 比如,Pager类中total = 0 时,
- logger.warn("警告信息")
- Info:消息/数据级,输出一些业务数据,向外部提供数据信息
- Debug:调试级,输出程序执行过程中的关键数据(更详细的数据,甚至是方法内部的局部变量或参数的值)目的是方便查找bug
- trace:跟踪级,输出更加详细的信息,最细致信息,通过Trace信息可以看到程序执行的每一个步骤,及程序当前所处的状态细节
- Fatal:最高级,表示致命错误,当程序遇到这种错误时,无法恢复执行,接下来就会崩溃
- XML
- logger的声明:
- logger的Fatal用法
- logger的Error用法
- logger的warn用法
- logger的Info用法
- logger的Debug用法
- logger的trace用法
{}:为占位符