整合验证码我的教程,我在http://javahunter.wordpress.com/2010/09/25/integrating-captcha-in-jsf-2-0/本页面发现一个验证码集成到JSF 2.0中做了我的用户注册表单以下,但我有一些问题,也许有人能帮助我。这是我迄今所做的:问题在JSF 2.0页
JSF页面:
<h:graphicImage id="capimg" value="#{facesContext.externalContext.requestContextPath}/../Captcha.jpg"/>
<h:inputText id="captchaUserInput" value="#{registrationController.captchaUserInput}"/>
<br />
<h:commandButton value="Register"
action="#{registrationController.doRegisterBuyer}">
</h:commandButton>
管理bean:
@ManagedBean
@RequestScoped
public class RegistrationController {
...
private String captchaUserInput;
...
public String doRegisterBuyer() throws Exception {
...<code for setting the values of the user>
HttpServletRequest request = (HttpServletRequest) FacesContext
.getCurrentInstance().getExternalContext().getRequest();
Boolean isResponseCorrect = Boolean.FALSE;
javax.servlet.http.HttpSession session = request.getSession();
String parm = captchaUserInput;
String c = (String) session.getAttribute(MyCaptcha.CAPTCHA_KEY);
if (parm.equals(c)) {
buyersRegistratorEJB.createBuyer(buyer);
} else {
return "failed";
}
return "registrationSucceded.xhtml";
}
类MyCaptcha.java(来源可以在上面的链接中找到)是一个servlet,我添加到一个叫做其他项目的包中
web.xml配置:
<servlet>
<servlet-name>Captcha</servlet-name>
<servlet-class>other.MyCaptcha</servlet-class>
<init-param>
<description>passing height</description>
<param-name>height</param-name>
<param-value>30</param-value>
</init-param>
<init-param>
<description>passing height</description>
<param-name>width</param-name>
<param-value>120</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Captcha</servlet-name>
<url-pattern>/Captcha.jpg</url-pattern>
</servlet-mapping>
我觉得这里是问题的一部分,因为当我浏览到我的注册页面我看到这个控制台:
WARNING: StandardWrapperValve[Captcha]: PWC1382: Allocate exception for servlet Captcha
java.lang.ClassNotFoundException: other.MyCaptcha
我觉得我不能正确地贯彻这种情况的原因之一是因为路径到web.xml中的MyCaptcha.java是不正确的。我怎么能解决这个问题?另外我想提及,我不想添加更改图像选项,只有图像对我来说很好。
'other.MyCaptcha'位于何处?它在类路径上吗? – Thomas
这是我的项目,在C:\ jee6workspace \ BBS的\ src \其他\ MyCaptcha.java我怎样才能将其添加到类路径? – sfrj