struts2验证码使用

 由于这个不是由自己画的,是由压缩包产生的,这里不好上传,要自己去网上下,以下是我验证过的,可行的,前提是要下载包

首先是页面 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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值