Java Web不能不懂的知识

一、传说中java的class文件能够一次编译处处运行,那么源代码采用GBK仍是UTF-8会有影响么?

不会有影响。java

由于Java源代码经过编译后,生成的class文件为字节码。它能够被看做是包含一个执行程序的二进制文件,须要在JVM进行执行。web

而GBK、UTF-8等为字符编码格式,针对的是字符,如Java源代码,中文,英文等文字。spring

二、若是lib有2个不一样版本的jar,例如spring2.5,spring3,还能安心干活么?

可能会引发jar包冲突。api

Tomcat下Jar包加载顺序:

1. $java_home/lib 目录下的java核心api 

2. $java_home/lib/ext 目录下的java扩展jar包

3. java -classpath/-Djava.class.path所指的目录下的类与jar包

4. $CATALINA_HOME/common目录下按照文件夹的顺序从上往下依次加载

5. $CATALINA_HOME/server目录下按照文件夹的顺序从上往下依次加载

6. $CATALINA_BASE/shared目录下按照文件夹的顺序从上往下依次加载

7. 咱们的项目路径/WEB-INF/classes下的class文件

8. 咱们的项目路径/WEB-INF/lib下的jar文件

在同一个文件夹下,jar包是按顺序从上到下依次加载
由ClassLoader的双亲委托模式加载机制咱们能够知道,假设两个包名和类名彻底相同的class文件再也不同一个
jar包,若是一个class文件已经被加载java虚拟机里了,那么后面的相同的class文件就不会被加载了。

三、若是classes有个class文件不当心被打到jar包去,遗忘在lib目录,之后更新classes会不会炸了?

不会有影响,由于class文件会先加载。当新的class文件更新至classes文件夹内之后会被先读取。tomcat

四、log4j.xml放到conf目录会有问题么? 有什么区别没有?

log4j启动时,默认会寻找source folder下的log4j.xml配置文件,若没有,会寻找log4j.properties文件,加载配置。配置文件放置位置正确,不用在程序中手动加载log4j配置文件。若是将配置文件放到了config文件夹下,在build Path中设置下就行了。服务器

读取路径改成:异步

PropertyConfigurator.configure("config/log4j.properties");jsp

五、有人写了个Niubility的类放在yy.war, 为何我就调用不到呢,明明同一个猫上跑的?

Tomcat不支持跨应用调用类,可是容许跨应用访问数据。在tomcat下,context元素有一个crossContext属性,若是配置为true,则能够实如今同一个tomcat下的多个web应用之间实现ServletContext对象访问。ui

六、据说有servlet3支持异步可厉害了,但放个demo到tomcat6会挂了,我lib明明有高大上的servlet-api.jar?

七、据说web.xml里边能够配置监听器listener,但它监听什么?

Servlet的监听器Listener,它实现了javax.servlet.ServletContextListener 接口,由服务器端程序实现相关业务逻辑,包括作一些初始化的内容添加工做、设置一些基本的内容、好比一些参数或者是一些固定的对象等等。编码

随web应用的启动而启动,只初始化一次,随web应用的中止而销毁。也就是说,它能捕捉到服务器的启动和中止,在启动和中止触发里面的方法作相应的操做!
它必须在web.xml 中配置才能使用。

web.xml 的加载顺序是:context-param -> listener -> filter -> servlet

八、为何不建议把jsp放在war的根目录下?

由于war的根目录下文件能够直接经过url直接进行访问。那么用户能够在不具有权限的状况下,能够对jsp文件进行访问,看到部分相关内容。

相关文章
相关标签/搜索