• About
  • Trade
  • Science
  • Eclipse
  • Software
  • Infoq
  • T
  • Projects
  • Contact
  • Thinks
  • | 登录 |

    连载servlet,dwr,spring相关内容

    2006年11月30日 下午 47:32 | 作者:summer

    正在连载中… 将循序渐进深入web开发。

    No Tags

    继续“了解sevlet容器”

    2006年11月20日 下午 30:58 | 作者:summer

    上一章里面讲到两个“高级”参数:init-param,load-on-startup

    beanFactoryConfig ./services-config.xml
    1

    init-param在程序中的使用:

    public void init(ServletConfig servletConfig) throws ServletException {
    String beanFactoryConfig = servletConfig.getInitParameter("beanFactoryConfig");
    context = new ClassPathXmlApplicationContext(beanFactoryConfig);
    }

    程序中我们得到的beanFactoryConfig的值为”./services-config.xml”,以上代码片断是用LiveServlet来初始化Spring的bean容器。
    load-on-startup表明该servlet是在web启动时就加载的,其中”1″表明启动顺序,还可以有”2″等值,数值的大小表明了启动的优先级别。

    No Tags

    tomcat bootstrap

    2006年11月19日 下午 18:16 | 作者:summer

    下载apache-tomcat-6.0.2-src我们来分析一下tomcat的部分源码。
    查看catalina.sh或者catalina.bat可以发现这一行:org.apache.catalina.startup.Bootstrap “$@” start
    由此我们了解到调用Bootstrap来启动系统是tomcat启动的第一步。
    下一步我们再来查看一下Bootstrap.java的源码,

    A.main()
    里面逻辑很清晰也很简单:
    1.new一个Bootstrap对象,并调用init()来初始化系统。
    2.通过外部传入的参数来决定是start,stop,startd,stopd。

    B.init()
    main()里面的init()所做的事情:
    1.设置CatalinaHome
    2.设置CatalinaBase
    3.初始化ClassLoaders
    4.使用初始化好的classLoader来做一些事情

    B.1和B.2都是通过配置文件和当前环境所处绝对路径来设置实际的运行环境。

    B.3创建了commonLoader,catalinaLoader,sharedLoader,它们之间的关系是:
    commonLoader—->catalinaLoader,commonLoader—->sharedLoader
    catalinaLoader与sharedLoader是位于同一层级,并且有共同的parent:commonLoader

    B.4主要是调用catalinaLoader中的org.apache.catalina.startup.Catalina来启动系统。

    No Tags

    如何让servlet为我们干活

    2006年11月15日 下午 38:29 | 作者:summer

    同样我们需要在web.xml中做一些配置:


    liveServlet
    /live/*


    这段配置的意思就是:该应用中/live/目录下所有请求都会交由liveServlet来处理,即访问/live/hello或者/live/hello.htm这样的请求都会交给liveServlet来处理。liveServlet就是之前我们在配置文件中定义的那个servlet。

    我们可以配置多个servlet来处理不同类型的请求,由于url-pattern是支持统配符的,可以组装出很多种的URL,我们也可以使用一个serlvet,该servlet将接收到的请求根据不同的类型来进行分发给后面的程序去处理,这里的不同的类型即是通过url不同来区分的。

    No Tags

    了解servlet容器

    2006年11月13日 下午 43:07 | 作者:summer

    容器:容纳符合规格的东西器皿。servlet容器:能放置servlet的“器皿”,servlet必须符合servlet的一些规格。

    HttpServlet是servlet容器中最基本的类型了,只要继承HttpServlet便可以被容器执行,当然首先你得在该容器的配置文件web.xml中做一些声明:

    
    
        liveServlet
        net.live51.LiveServlet
          
    beanFactoryConfig
        
    ./services-config.xml
          
        1
     
    

    以上片断是做了一个servlet-name为liveServlet的声明,指明了实际处理的类,当然net.live51.LiveServlet是继承了HttpServlet的,其中init-param和load-on-startup为高级用法,以后在讲到,将以上配置简化一下:

    
    
        liveServlet
        net.live51.LiveServlet
    
    

    这样也是可行的。

    定义好了如何使用呢?