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
分类:东西南北, web, servlet, book | 没有评论
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
分类:web, servlet, book | 没有评论
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
分类:web, servlet, book | 没有评论
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
这样也是可行的。
定义好了如何使用呢?
servlet web.xml
分类:dwr, web, servlet, book | 没有评论
2006年11月6日 下午 15:41 | 作者:summer
In dwr sites, it tell use three way to use dwr with spring. But the important details are ignored on his suggest way.
If you are using spring and have your private spring bean manger.how to use DWR?
- define a spring bean implements BeanFactoryPostProcessor
- overwrite postProcessBeanFactory function
- call SpringCreator.setOverrideBeanFactory(beanFactory)
the code was just like this:
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import uk.ltd.getahead.dwr.create.SpringCreator;
/** * @author summer * */
public class DWRSpringIntegrator implements BeanFactoryPostProcessor {
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
SpringCreator.setOverrideBeanFactory(beanFactory);
}
}
No Tags
分类:dwr | 没有评论