读书人

Struts2中运用Servlet

发布时间: 2012-10-08 19:54:56 作者: rapoo

Struts2中使用Servlet
今天在做一个Struts2的项目的时候,要使用到验证码,当时就去配置了web.xml中的servlet标签,结果在页面上不管怎么弄结果就是不显示出来,这个时候突然想到了可能是struts2中的过滤器惹的祸,顺便找了一些文章,最后把问题给解决了,下面我便列出3种解决方案:
1.这种方法很简单就是在struts2的过滤器的url配置成/*.*,当然这种方法其实并不可取!
2.改变下servlet的请求路径!

<servlet-mapping>  <servlet-name>servlet</servlet-name>  <url-pattern>/my.servlet</url-pattern>  </servlet-mapping>  

就可以用 http://localhost:8080/xxx/my.servlet
3.定义一个action用来转发servlet请求!

例如定义了一个servlet:
  <servlet>  <servlet-name>validate</servlet-name>  <servlet-class>com.xxx.util.GeneratorValidateChar</servlet-class>     </servlet>  <servlet-mapping>  <servlet-name>validate</servlet-name>  <url-pattern>/validate</url-pattern>  </servlet-mapping>

如果你在页面中使用该servlet,则要用action转发到<url-pattern>/validate</url-pattern>
的路径/tu.

如你的页面里有个 <img>元素来显示图片,如果使用<img src="tu" width="60" height="20"/>肯定不行,你必须定义一个action 如
    package com.xxx.actions;  public class GotchaGraphics implements Action {  public String execute(){  return SUCCESS;  }  }

然后在struts.xml中配置该Action
  <package name="common" namespace="/" extends="struts-default">  ....  <action name="graphics" width="60" height="20"/>,这样就可以用servlet了。
非常感谢啊,昨晚就搞定了,用的是第二种方法!

读书人网 >软件架构设计

热点推荐