您的位置:首页 > 编程语言 > Java开发

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: