主题:关于Servlet的问题
Finder
[专家分:1460] 发布于 2007-02-21 21:49:00
刚刚学习JSP,想使用MVC,Servlet作为控制器。在请求页面时使用action参数控制。如果action没有内容,则由控制器转向index.jsp页面。但是web.xml总配置不对,使用<url-pattern>/eShop/*</url-pattern>找不到Servlet,而改成如下语句,就可以使用Controller.do进行控制。除了<url-pattern>外,其他语句都是一样的。请问这是怎么回事啊?如果使用Controller.do可以控制的话,应该说明能够找到Servlet啊。
<servlet>
<description>MVC example</description>
<display-name>Controller</display-name>
<servlet-name>Controller</servlet-name>
<servlet-class>org.galaxy_OPEN.www.util.Controller</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Controller</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
最后更新于:2007-02-21 21:54:00
回复列表 (共7个回复)
沙发
adler [专家分:890] 发布于 2007-02-24 22:17:00
url-pattern应该是匹配串,当url-pattern为*.do的时候该servlet可以处理任何以.do结尾的如:xxx.do,xxx/xxx.do等;如果url-pattern为/eShop/*的时候,该servlet只处理如eShop/xxx,eShop/xxx/xxx等
如果想使用Controller.do,url-pattern:1可以为*.do,2可以为Conroller.*,3可以为*.*
如果你想是url-parttern为/eShop/*,那么这个action只能处理eShop/xxx(没有扩展名)
板凳
Finder [专家分:1460] 发布于 2007-02-27 20:10:00
谢谢楼上的回答。但是我把代码改成了:<url-pattern>/eShop/*</url-pattern>,那么,按照楼上的说法,下面的URL:http://localhost:8080/eShop/ProductController?action=displayAll应该能够访问啊?但Tomcat给我的错误是:The reqyested resource(/eShop/ProductController) is not available.这是怎么回事啊?(名称无误!)
3 楼
adler [专家分:890] 发布于 2007-02-27 21:46:00
不能啊,我能通过,http://localhost:8080/testWeb/eShop/s////s?fdfds=fdfdf这样的特例都能通过,你再仔细查一下
4 楼
adler [专家分:890] 发布于 2007-02-27 21:51:00
你的上下文好象是eShop你访问的方式应该是http://localhost:8080/eShop/eShop/ProductController?action=displayAll
5 楼
Finder [专家分:1460] 发布于 2007-02-28 18:30:00
谢谢楼上,我好像有点明白了。再查一下资料看看。再次感谢!
6 楼
mwsoft [专家分:760] 发布于 2007-03-15 15:41:00
正确是:http://localhost:8080/eShop/eShop/ProductController?action=displayAll
7 楼
java097208 [专家分:30] 发布于 2007-03-18 17:30:00
你要用的是过滤器吧。。。呵呵,
<filter>
<description>MVC example</description>
<display-name>Controller</display-name>
<filter-name>Controller</filter-name>
<filter-class>org.galaxy_OPEN.www.util.Controller</filter-class>
</filter>
<filter-mapping>
<filter-name>Controller</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
我来回复