• Java Web不能不懂的知识


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

    不会有影响。

    因为Java源代码通过编译后,生成的class文件为字节码。它可以被看作是包含一个执行程序的二进制文件,需要在JVM进行执行。

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

    2、如果lib有2个不同版本的jar,例如spring2.5,spring3,还能安心干活么?

    可能会引起jar包冲突。

    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文件就不会被加载了。

    3、如果classes有个class文件不小心被打到jar包去,遗忘在lib目录,以后更新classes会不会炸了?

    不会有影响,因为class文件会先加载。当新的class文件更新至classes文件夹内以后会被先读取。

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

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

    读取路径改为:

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

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

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

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

    7、听说web.xml里边可以配置监听器listener,但它监听什么?

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

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

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

    8、为什么不建议把jsp放在war的根目录下?

    因为war的根目录下文件可以直接通过url直接进行访问。那么用户可以在不具备权限的情况下,可以对jsp文件进行访问,看到部分相关内容。

  • 相关阅读:
    html URLRewriter生成静态页不能访问
    sql server 2008 不允许保存更改,您所做的更改要求删除并重新创建以下表
    IIS7.0 伪静态页配置
    hubbledotnet 定时更新索引
    今天开通了这个BLOG。
    ASP.NET公有六种验证控件 功能描叙
    Recommend of the Day:Orkut社区和明星推荐
    每日英语:Why You Need a Dictator in a Marriage
    每日英语:An Unhappy Middle in the Middle Kingdom
    每日英语:Web Browsers Are Reinvented
  • 原文地址:https://www.cnblogs.com/liuyp-ken/p/10192255.html
Copyright © 2020-2023  润新知