初学struts,不太理解映射中的.do.

03-04-20 lyojbuilder

那位朋友能给我讲解一下struts映射中的.do 或.frm的作用?或讲解的文章。多谢!

jxb8901
2003-04-21 11:08

在struts中定义了一个中心控制器,用于接收并处理所有客户端请求,但怎样让struts做到这一点呢? 就是在web.xml中定义一个请求的映射,以通知servlet容器将所有以.do(或其它定义)结尾的请求都传给struts处理.
其实这和我们要指定Servlet A处理A请求, Servlet B处理B请求时, 也必须指定请求的映射是一样的原理.

不知有没有解答你的疑惑?

lyojbuilder
2003-04-23 00:21

多谢你的回复,我的意思是为什莫struts不直接用点对点的映射,就是把".do"改成".jsp",就是在servlet中把servlet直接映射到某个.jsp的文件?为什莫不用.jsp作为文件后追名呢?

jxb8901
2003-04-23 09:18

你可以看一下tomcat\conf目录中的web.xml文件, 其中有这样一段:

<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>logVerbosityLevel</param-name>
<param-value>WARNING</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>

这表明后缀为jsp的文件已经被tomcat处理了, 如果struts重载该设置, 肯定会造成混淆, 而且有时候在使用struts的项目里面也会有让用户直接请求jsp文件的用法, 何况使用.do又有什么不好的呢?

lyojbuilder
2003-04-23 10:21

多谢。意思就是说struts处理jsp的体系是和Tomcat不同的。如果用.do作为后缀,因为Tomcat没有这样的规定,所以就不会处理,这时他由struts处理。如果用.jsp作后缀,因为先前Tomcat做了这样的规定,所以Tomcat和struts都会按照各自的方式处理,就会出错。可问题是Tomcat和struts不是集成的吗,他们在一个web应用程序中共用一个web.xml文件,处理.jsp怎末会有冲突呢?是不是有约定:Tomcat只按照自己的方式处理.jsp的文件?有的程序某个部分不希望以Tomcat的方式处理,比如希望用struts处理,这时候就不用.jsp作为映射的后缀?

2Go 1 2 下一页