`

Struts2+Servlet

阅读更多

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

Java代码
package com.xxx.actions; 
public class GotchaGraphics implements Action { 
public String execute(){ 
return SUCCESS; 



  然后在struts.xml中配置该Action 
Xml代码
<package name="common" namespace="/" extends="struts-default"> 
.... 
<action name="graphics" class="com.xxx.actions.GotchaGraphics"> 
<result>/validate</result> 
</action> 
.... 
</package> 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics