很多人一开始接触java技术,做的项目都是web相关的,搞过servlet,jsp,struts,springmvc,用过tomcat,终于感觉是web开发没什么问题了,简历可以标上熟悉java web开发。
现在我们从基本的war包开始,重新梳理一下java web基础,权当复习。
曾经我面试问一个小问题,你知道war包是怎样的结构么?有人会说有src,还有webroot,webapp之类的目录,有人说有平级的classes和WEB-INF目录.
最常见的格式是这样的
xx.war
WEB-INF
classes
com/xxx/A.class
conf
xx.properties
log4j.xml
lib
*.jar
web.xml
*.jsp
可以看到是没有源代码的。那么
- 传说中java的class文件可以一次编译到处运行,那么源代码采用GBK还是UTF-8会有影响么?
- 如果lib有2个不同版本的jar,例如spring2.5,spring3,还能安心干活么?
- 如果classes有个class文件不小心被打到jar包去,遗忘在lib目录,以后更新classes会不会炸了?
- log4j.xml放到conf目录会有问题么? 有什么区别没有?
- 有人写了个Niubility的类放在yy.war, 为什么我就调用不到呢,明明同一个猫上跑的?
- 听说有servlet3支持异步可厉害了,但放个demo到tomcat6会挂了,我lib明明有高大上的servlet-api.jar?
- 听说web.xml里边可以配置监听器listener,但它监听什么?
- 为什么不建议把jsp放在war的根目录下?
如果可以轻松无压力,那么说明java web基础还是可以的。
@首发于公司内部群组