一、Flex弹性布局

1.产生的比较晚,目前在移动网页开发中可以使用,而且逐渐成为主流。

在桌面网页开发中使用的比较少(主要是桌面浏览器的兼容性问题更加严重)

2.开启方法:

容器标签上加上 display:flex;

将对容器内部的标签起到布局作用

 

3.布局效果

A、支持对齐:可以实现上、下、左、右4个方向停靠排列

可以实现上下居中,左右居中

B、排列方向支持:可以实现内部标签水平排列、垂直排列、多行排列

C、空间分配支持:空间均分(考虑两头空间、不考虑两头空间)

空间可以固定或弹性伸缩(可以指定伸缩比例)

4.布局方向 :

默认是水平方向为主轴,垂直方向叫做交叉轴。

元素沿着主轴方向排列

主轴可以通过flex-direction修改

如下:将主轴改为列

flex-direction:column;

主轴居中

justify-content:center;

交叉轴居中

align-items:center;

空间均分(两头有空白)

justify-content:space-around;

(两头无空白)

justify-content:space-between;

空间分配比例

flex-grow   控制增长比例

flex-shrink  控制收缩比例

二、Servlet、JSP和Tomcat错误处理

页面找不到404,有明确的Http状态码的错误

1. 可以在web.xml中配置

<error-page>

<error-code>404</error-code>

<location>跳转到的错误网页地址(/WEB-INF/404.jsp)</location>

</error-page>

2.

<error-page>

<exception-type>java.lang.Exception</exception-type>

<location>跳转到的错误网页地址(/WEB-INF/exception.jsp)</location>

</error-page>

通过<location>节点可配置【转发】到哪个页面

错误页面可以在<%page
指令中添加 isErrorPage = “true” 这个属性,添加之后可以在JSP中访问Exception对象,Exception代表当前抛出的异常

(如果异常的类型是ServletException或者它的子类)那么Exception对象将指向ServletException内部包装的那个异常对象,而不是指向ServletException本身

三、关于代码中的catch:

1.之前我们catch到exception之后只调用了exception.printStackStrace()将之打印到控制台输出,页面并没有报错(但页面显示不正常,如没有数据)

2.添加错误页之后,catch到的exception就不能只打印了之,不能让exception被忽略!

而是应该在打印之后将之抛出,甚至不需要打印,而是抛出(抛出比打印更重要)

3.抛出异常时会发现不是所有的异常类型都能抛出去(因为有一些方法的签名是固定的,而且是由其他人提供的,没法改,如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的日志输入级别。如果想让Log4J2将自己内部日志信息打印出来,需要将status的级别设置的低一些,以便找到Log4J自己的错误信息。

五、日志级别

1.Fatal最高级

表示致命错误,当程序遇到这种错误时,无法恢复执行,接下来就会崩溃。

logger.fatal(“致命错误的详细信息”);

2.Error错误级

捕获到异常时,通过这个级别输出、

Logger.error(“错误消息”,exception);

3.warn警告级别

当程序执行时,遇到不应该执行的代码或不应该出现的情况时通过这个级别输出

比如: Pager
类中的total=0时,可以通过

Logger.warn(“警告消息”);

4.Info  消息/数据级 

输出一些业务数据,向外部提供数据信息

5.Debug  调试级

输出程序过程中关键数据,更详细的数据,甚至是方法内部的局部变量或参数的值,目的是方便查找bug。

6.Trace跟踪级

输出更加详细的信息,最细致的信息,通过trace信息可以看到程序执行的每一个步骤及程序当前所处的状态细节

六、Log4j中的部分语法含义

status    Log4J2
内部的日志输出级别

MonotorInterval   多长时间检查一次本配置文件是否被修改

appenders   日志追加器,可以将日志信息添加到控制台或文件的末尾

 

Console    向控制台输出日志

ThresholdFilter  过滤器可以根据级别过滤日志的输出

PatternLayout   日志布局(格式),通过符号规定日志中输出什么,输出在什么位置

RollingFile   为了防止生成巨大的无法打开的日志文件,采用滚动方式将日志拆分到小文件中,可以按文件大小滚动,也可以按时间滚动

root   所有记录器的根,默认日志记录器,每个记录器可以指定多个追加器将日志输出到多个位置

Loggers  日志记录器

java基础之Flex弹性布局、JSP错误处理以及Log4J的更多相关文章

  1. flex弹性布局心得

    概述 最近做项目用flex重构了一下网页中的布局,顺便学习了一下flex弹性布局,感觉超级强大,有一些心得,记录下来供以后开发时参考,相信对其他人也有用. 参考资料: Solved by Flexbo ...

  2. css进阶之二:flex弹性布局

    布局模式是指一个盒子与其兄弟.祖先盒的关系决定其尺寸与位置的算法.css2.1中定义了四种布局模式,分别是块布局.行内布局.表格布局.以及定位布局.css3引入了新的布局模式Flexbox布局,灵活度 ...

  3. 记一下flex弹性布局

    flex弹性布局也越来越广泛的在我们代码中出现了,更加方便我们的布局.自己用了查,查了用,有些还是记不住,俗话说好脑子不如烂笔头,原来都是写在本子上的,很不幸的一次次的想翻的时候总是找不到,还是写博客 ...

  4. CSS3动画属性和flex弹性布局各个属性

    [CSS3动画的使用] 1.声明一个关键帧(动画): @keynames name{ from{} to{} } 每个阶段的写法: ①可以直接使用from-to的写法 ②可以设置0%-100%的写法, ...

  5. flex弹性布局属性详解!

    详细看下flex弹性布局具体属性: flex容器属性详解:flex-direction:row/column:(横排/竖排) 决定元素的排列方向:flex-wrap:nowrap/wrap/wrap- ...

  6. flex弹性布局,好用

    一直不太喜欢自己布局前端页面,都是扒别人的页面 ,最近在练习小程序,页面无处可扒,只有自己布局 发现flex弹性布局真好用,布局起来很简单,实现的效果也很好,赞 以后可以自己写一点前端了,哈哈

  7. flex弹性布局的基本介绍

    最近开始做元素排列比较复杂的项目,同时需要各种型号手机的适配,我发现以前所掌握的盒子模型.display.position.float等已经不能满足我的需求了, 于是开始着重学习flex弹性布局并运用 ...

  8. Flex弹性布局在移动设备上的应用

    引文 首先,我们有表格布局.当不考虑语义并且利用一些适当的嵌套和其他技巧,我们可以用table建立具有一定功能的布局. 然后是现在大多数人都在使用的浮动布局.我们可以使用任何我们想用的元素,但浮动并不 ...

  9. flex弹性布局学习总结

    本文首次发布在我的个人博客:Claiyre的个人博客 https://claiyre.github.io/ 博客园地址:http://www.cnblogs.com/nuannuan7362/如需转载 ...

随机推荐

  1. maven optional可选依赖

    应用场景:projectA 依赖projectB,  projectB 依赖projectC时 <dependency> <groupId>com.itear.projectC ...

  2. docker 下 alpine 镜像设置时区的有效办法

    在使用Docker的时候,由于很多基础linux镜像都比较大,alpine这个仅仅几兆的linux基础镜像受到了很多人喜欢,笔者也不例外,可是由于alpine中的一些配置及命令与常见的centos等系 ...

  3. 使用kubernetes创建容器一直处于ContainerCreating状态的原因查找与解决

    运行容器的时候,发现一直处于ContainerCreating状态,悲了个催,刚入手就遇到了点麻烦,下面来讲讲如何查找问题及解决的 运行容器命令: [root@master- ~]# kubectl ...

  4. atitit.D&D drag&drop拖拽文件到界面功能 html5 web 跟个java swing c#.net c++ 的总结

    atitit.D&D drag&drop拖拽文件到界面功能 html5 web 跟个java swing c#.net c++ 的总结 1. DND的操作流程 1 2. Html5 注 ...

  5. hdu 4217Data Structure?

    树状数组+二分 就是找第几小的数,,找几次,再求和. . #include<cstdio> #include<cstring> #include<iostream> ...

  6. makefile之include

    "include"指示符告诉 make 暂停读取当前的 Makefile,而转去读取"include"指定的一个或者多个文件,完成以后再继续当前 Makefil ...

  7. 李洪强漫谈iOS开发[C语言-053]-小结

    /* 已经学习过的C语言语法 01 基本C程序结构 int main (void) int main(int argc,char *arv){...} 02 基本语句(输入输出) 基本头文件: #in ...

  8. 记一次处理IE引起的上网异常处理

    win7 64bit系统,IE(11)出问题.在更新记录里找不到IE11的更新项,也就无法通过正常卸载了.而网上的各种折腾卸载方式均宣告无效.后来无意间找到了一款国外大神开发的软件:RemoveIE, ...

  9. Python 列表的操作

    list基本操作 #coding=utf-8 #列表 string = 'list' #字符串->列表 list1 = list(string) # ['l', 'i', 's', 't'] # ...

  10. 删除节点removeChild()

    http://www.imooc.com/code/1700 删除节点removeChild() removeChild() 方法从子节点列表中删除某个节点.如删除成功,此方法可返回被删除的节点,如失 ...