很久没有碰过ssh框架了,都快要忘记了
最近项目空闲,把struts拿出来看看,想研究下他的源代码,
其实也就是一个servlet,
看着看着源代码,突然间发现,这个servlet是怎么执行过来的?
仔细看来一边是这样的.
浏览器发送一个请求,然后有web.xml配置的servlet捕捉到,然后找到了struts的actionservlet
其实跟我们开始配置普通的servlet一样的.
我们都知道当一个web请求过来之后,主要是由容器,也就是tomcat来帮我们找到servlet的service方法,然后执行.
那我们在实现了servlet接口或者继承了httpservlet类之后,tomcat就直接调用service方法.
在这里,actionservlet继承了httpservlet,然后tomcat就找了这个类,执行了service方法,然后又actionservlet中重写了doget和dopost方法,所以其实执行的是actionservlet中的dopost和doget方法.
在doXXX方法中调用process(HttpServletRequest request, HttpServletResponse response)
处理请求.
我们在web.xml里面除了配置了action之外,我们还配置了struts的配置文件的位置.
其中在我们的项目启动的时候,struts就会把我们的配置文件转换成我们的Java类,之后我们所有的操作都是根据这个配置信息类来的.
这个也是为什么我们如果改了struts配置文件之后要重启项目的原因.
其他信息,再续.
如果有错误,欢迎指正![@more@]
最近项目空闲,把struts拿出来看看,想研究下他的源代码,
其实也就是一个servlet,
看着看着源代码,突然间发现,这个servlet是怎么执行过来的?
仔细看来一边是这样的.
浏览器发送一个请求,然后有web.xml配置的servlet捕捉到,然后找到了struts的actionservlet
其实跟我们开始配置普通的servlet一样的.
我们都知道当一个web请求过来之后,主要是由容器,也就是tomcat来帮我们找到servlet的service方法,然后执行.
那我们在实现了servlet接口或者继承了httpservlet类之后,tomcat就直接调用service方法.
在这里,actionservlet继承了httpservlet,然后tomcat就找了这个类,执行了service方法,然后又actionservlet中重写了doget和dopost方法,所以其实执行的是actionservlet中的dopost和doget方法.
在doXXX方法中调用process(HttpServletRequest request, HttpServletResponse response)
处理请求.
我们在web.xml里面除了配置了action之外,我们还配置了struts的配置文件的位置.
其中在我们的项目启动的时候,struts就会把我们的配置文件转换成我们的Java类,之后我们所有的操作都是根据这个配置信息类来的.
这个也是为什么我们如果改了struts配置文件之后要重启项目的原因.
其他信息,再续.
如果有错误,欢迎指正![@more@]
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22772954/viewspace-1057659/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22772954/viewspace-1057659/