struts2验证码使用
2010-07-02 12:38
197 查看
由于这个不是由自己画的,是由压缩包产生的,这里不好上传,要自己去网上下,以下是我验证过的,可行的,前提是要下载包
首先是页面 test.jsp
<%@ page contentType="text/html; charset=GBK"%>
<html>
<head>
<title>test image code</title>
<script type="text/javascript">
function reloadImg(){
var i = Math.random();
document.getElementById("imgCode").src="imgcode?"+i;
}
</script>
</head>
<body>
<form action="imageCodeCheck.action" method="POST" name="form1">
<img id="imgCode" src="imgcode" border="0">
<input type="text" name="thecode" /><a href="javascript:reloadImg();">看不清?</a>
<font color="red">${requestScope.imgCodeError }</font>
<br>
<input type="submit" name="submit" value=" 提 交 " />
</form>
</body>
</html>
接下来是Action了 ImageCodeCheck.java
package com.lichen.action;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.SessionAware;
import cn.com.enorth.util.imgcode.ImageCodeUtils;
import com.opensymphony.xwork2.ActionSupport;
public class ImageCodeCheck extends ActionSupport implements
ServletRequestAware, SessionAware {
private HttpServletRequest request;
private Map session;
@Override
public String execute() throws Exception {
if (ImageCodeUtils.isGoodCode(request, "thecode")) {
return SUCCESS;
} else {
request.setAttribute("imgCodeError", "验证码输入不正确");
}
return INPUT;
}
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
@Override
public void setSession(Map session) {
this.session = session;
}
}
struts的配置很普通 struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.i18n.encoding" value="GBK"></constant>
<constant name="struts.locale" value="zh_CN"></constant>
<package name="struts2" extends="struts-default">
<action name="imageCodeCheck" class="com.lichen.action.ImageCodeCheck" >
<result name="success" >index.jsp</result>
<result name="input" >test.jsp</result>
</action>
</package>
</struts>
然后就是web的配置了 web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- struts2 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- spring -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!-- hibernate 的session 创建关闭 -->
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 验证码 -->
<servlet>
<servlet-name>imagecodeservlet</servlet-name>
<servlet-class>cn.com.enorth.util.imgcode.ImageCodeServlet</servlet-class>
<init-param>
<param-name>type</param-name>
<param-value>1</param-value>
</init-param>
<init-param>
<param-name>length</param-name>
<param-value>4</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>imagecodeservlet</servlet-name>
<url-pattern>/imgcode</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
首先是页面 test.jsp
<%@ page contentType="text/html; charset=GBK"%>
<html>
<head>
<title>test image code</title>
<script type="text/javascript">
function reloadImg(){
var i = Math.random();
document.getElementById("imgCode").src="imgcode?"+i;
}
</script>
</head>
<body>
<form action="imageCodeCheck.action" method="POST" name="form1">
<img id="imgCode" src="imgcode" border="0">
<input type="text" name="thecode" /><a href="javascript:reloadImg();">看不清?</a>
<font color="red">${requestScope.imgCodeError }</font>
<br>
<input type="submit" name="submit" value=" 提 交 " />
</form>
</body>
</html>
接下来是Action了 ImageCodeCheck.java
package com.lichen.action;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.SessionAware;
import cn.com.enorth.util.imgcode.ImageCodeUtils;
import com.opensymphony.xwork2.ActionSupport;
public class ImageCodeCheck extends ActionSupport implements
ServletRequestAware, SessionAware {
private HttpServletRequest request;
private Map session;
@Override
public String execute() throws Exception {
if (ImageCodeUtils.isGoodCode(request, "thecode")) {
return SUCCESS;
} else {
request.setAttribute("imgCodeError", "验证码输入不正确");
}
return INPUT;
}
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
@Override
public void setSession(Map session) {
this.session = session;
}
}
struts的配置很普通 struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.i18n.encoding" value="GBK"></constant>
<constant name="struts.locale" value="zh_CN"></constant>
<package name="struts2" extends="struts-default">
<action name="imageCodeCheck" class="com.lichen.action.ImageCodeCheck" >
<result name="success" >index.jsp</result>
<result name="input" >test.jsp</result>
</action>
</package>
</struts>
然后就是web的配置了 web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- struts2 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- spring -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!-- hibernate 的session 创建关闭 -->
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 验证码 -->
<servlet>
<servlet-name>imagecodeservlet</servlet-name>
<servlet-class>cn.com.enorth.util.imgcode.ImageCodeServlet</servlet-class>
<init-param>
<param-name>type</param-name>
<param-value>1</param-value>
</init-param>
<init-param>
<param-name>length</param-name>
<param-value>4</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>imagecodeservlet</servlet-name>
<url-pattern>/imgcode</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
相关文章推荐
- struts2中验证码的生成和使用
- struts2使用验证码
- 使用jcaptcha4struts2插件生成的验证码问题
- struts2验证码使用
- struts2验证码使用
- struts2中使用的验证码
- struts2验证码使用
- 使用Struts2验证码
- struts2使用kaptcha实现验证码功能
- Struts2系列:(26) 国际化(四)使用UI标签的key属性获取国际化资源
- struts2注解使用拦截器interceptor和interceptor-stack
- Struts2 验证码图片生成实例
- Struts2 OGNL语言、stack、valueStack关系及使用总结
- 使用MyEclipse工具,Struts2开发环境的搭建
- 采用JSON交互信息的android端和Struts2服务器端通信,使用了HttpClient与HttpPos
- struts2的国际化的配置与使用
- Android开发实现发送短信验证码(使用第三方服务器Bmob)
- 使用Struts2遇到的问题
- 使用GDI+识别简单的图形验证码
- struts2中关于action的使用说明