<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>
验证码大多是jsp,servlet写的. 我拿来主义了, 再自己完善了一下(我一直努力想要站在巨人的肩膀)
首先是页面 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
>
重点在验证码的配置