初学STRUTS---实现注册/登录/动态检测注册信息
2006-11-30 19:39
363 查看
1.将下载的struts解压后将 lib目录下所有的.jar文件复制到创建的STRUTS项目的WEB-INF/lib目录下
2.在ECLIPSE中新建一个项目--Tomcat Project,并通过添加外部JAR把Struts.jar添加到项目里
3.相关的JSP,类,和配置文件如下:
首页login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="gb2312"%>
<%@page import="org.apache.struts.action.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>LOGIN </title>
</head>
<body>
<form action="login.do" method="post">
用户名:<input size="15" name="name"><p>
密  码:<input type="password" size="15" name="psw"><p>
<a href="regist.do">新用户注册</a>
<input type="submit" value="登录">
</form>
</body>
</html>
=====================================================================
注册页面regist.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="gb2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>regist page</title>
</head>
<body vLink ="#006666" link="#003366" bgColor="#E0F0F8">
<img height="33" src="register.gif" width="148">
<form action="registSubmit.do" method="post">
用户名:  <input size="15" name="name"><p>
密  码:  <input type="password" size="15" name="psw1"><p>
确认密码:<input type="password" size="15" name="psw2"><p>
<input type="submit" value="注册">
</form>
<a href="login.jsp">返回登录界面</a><br>
</body>
</html>
========================================================================
登录正确返回页面right.jsp
<%@ page language="java" contentType="text/html"
pageEncoding="UTF-8"%>
<%@page import="classmate.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>welcome</title>
</head>
<body>
<%
UserForm formBean1=(UserForm)request.getAttribute("formBean1");
if(formBean1!=null&&formBean1.getName()!=null){
%>
<h1>
<img src="smile.gif">
热烈欢迎您,
<%=new String(formBean1.getName().getBytes("ISO-8859-1"))%>同学!
<% }else{ %>您无权访问本页!
<%} %>
</h1><br>
<a href="login.jsp">重新登录</a>
<a href="regist.do">新用户注册</a>
</body>
</html>
====================================================================
注册成功后的返回页面registRight.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="gb2312"%>
<%@page import="classmate.*" %>
<%@page import="org.apache.struts.validator.DynaValidatorForm" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>welcome</title>
</head>
<body>
<%
DynaValidatorForm dyform=(DynaValidatorForm)request.getAttribute("registForm");
if(dyform!=null&&dyform.get("name")!=null){
String namer= (String)dyform.get("name");
%>
<h1>
<img src="smile.gif">
热烈欢迎您,
<%=new String(namer.getBytes("ISO-8859-1"))%>同学!
<% }else{ %>您无权访问本页!
<%} %>
</h1><br>
<a href="login.jsp">重新登录</a>
<a href="regist.do">新用户注册</a>
</body>
</html>
===========================================================================
错误处理页面error.jsp
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312" isErrorPage="true"%>
<%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>This is a error page</title>
</head>
<body>
<h1>
<img src="cry.gif">
<html:errors/>
</h1><br>
<a href="login.jsp">
<bean:message key="item.loginAgain"/>
</a>
<a href="regist.do">
<bean:message key="item.regist"/>
</a>
</body>
</html>
===========================================================================
LoginAction.java
package classmate;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.sql.DataSource;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public final class LoginAction extends Action{
public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception{
UserForm userform=(UserForm)form;
String name=userform.getName();
String psw=userform.getPsw();
String name_utf8=new String(name.getBytes("ISO-8859-1"));
String psw_utf8=new String(psw.getBytes("ISO-8859-1"));
ServletContext context=servlet.getServletContext();
DataSource dataSource=(DataSource)context.getAttribute("mysqlDB1");
DBUser dbuser=new DBUser(dataSource);
HttpSession session=request.getSession();
if(dbuser.checkUser(name_utf8, psw_utf8)){
UserLoginLog ul= new UserLoginLog();
ul.save(name_utf8,psw_utf8);
return mapping.findForward("successed");
}else{
return mapping.findForward("failed");}
}
}
=============================================================================
registAciton.java
package classmate;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.sql.DataSource;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.validator.DynaValidatorForm;
public final class RegistAction extends Action{
public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception{
DynaValidatorForm dyform=(DynaValidatorForm)form;// 动态验证框
//DynaActionForm dyform=(DynaActionForm)form;
String name=(String)dyform.get("name");
String psw1= (String) dyform.get("psw1");
String psw2= (String) dyform.get("psw2");
String name_utf8=new String(name.getBytes("ISO-8859-1"));
String psw1_utf8=new String(psw1.getBytes("ISO-8859-1"));
ServletContext context=servlet.getServletContext();
DataSource dataSource=(DataSource)context.getAttribute("mysqlDB1");
DBUser dbuser=new DBUser(dataSource);
HttpSession session=request.getSession();
if(dbuser.Insert(name_utf8,psw1_utf8)!=0){
UserLoginLog ul= new UserLoginLog();
ul.save(name,psw1);
return (mapping.findForward("registSuccessed"));
}else{
ActionMessages errors=new ActionMessages();
errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("label.registError"));
if(!errors.isEmpty()){
saveErrors(request,errors);
}
return mapping.findForward("failed");}
}
}
========================================================================
userForm.java
package classmate;
import org.apache.struts.action.ActionForm;
public class UserForm extends ActionForm{
/**
*
*/
private static final long serialVersionUID = 1L;
private String name=null;
private String psw=null;
public UserForm(){}
public void setName(String name){
this.name=name; }
public void setPsw(String psw){
this.psw=psw; }
public String getName(){return name;}
public String getPsw(){return psw;}
}
=====================================================================
userLoginLog.java
package classmate;
import java.io.*;
import java.util.*;
public class UserLoginLog {
public void save(String name,String pwd){
Calendar today=Calendar.getInstance();
String fileName ="logs//user_login_log.txt";
try {
FileWriter fw=new FileWriter(fileName,true);
BufferedWriter bw=new BufferedWriter(fw);
bw.write(today.getTime().toString()+":user"+name+":password"+pwd+"log in/n");
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
========================================================================
DBuser.java
package classmate;
import javax.sql.*;
import java.sql.*;
public class DBUser {
DataSource dataSource;
public DBUser(DataSource dataSource){
this.dataSource=dataSource;
}
public boolean checkUser(String name,String psw)throws Exception{
Connection connect =null;
String strSql;
ResultSet rs;
boolean result=false;
strSql="select * from account where username='"+name+"'and password='"+psw+"'";
try {
connect=dataSource.getConnection();
Statement stmt=connect.createStatement();
rs=stmt.executeQuery(strSql);
if(rs.next()){
result=true;
}
} catch (SQLException e) {
e.printStackTrace();
}
finally{
if(connect!=null)connect.close();
}
return result;
}
public int Insert(String username,String password)throws Exception{
Connection connect=null;
String strSql;
int result =0;
strSql="insert into account values('"+username+"','"+password+"')";
try {
connect =dataSource.getConnection();
Statement stmt=connect.createStatement();
result =stmt.executeUpdate(strSql);
} catch (SQLException ex) {
System.err.println(ex.getMessage());// TODO: handle exception
}
finally{
if(connect!=null)connect.close();
}
return result;
}
}
============================================================================
web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>actionServlet</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>actionServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
</web-app>
=======================================================================
struts-config.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE struts-config
PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<data-sources>
<data-source key="mysqlDB1" type="org.apache.commons.dbcp.BasicDataSource">
<set-property value="org.gjt.mm.mysql.Driver" property="driverClassName" /><set-property
value="jdbc:mysql://localhost/test" property="url" /><set-property
value="5" property="maxActive" /><set-property value="test_root"
property="username" /><set-property value="test_root"
property="password" /><set-property value="true"
property="autoCommit" /></data-source></data-sources>
<form-beans>
<form-bean name="formBean1" type="classmate.UserForm"/>
<form-bean name="registForm"
type="org.apache.struts.validator.DynaValidatorForm" dynamic="true">
<form-property name="name" type="java.lang.String"></form-property>
<form-property name="psw1" type="java.lang.String"></form-property>
<form-property name="psw2" type="java.lang.String"></form-property>
</form-bean>
</form-beans>
<global-forwards>
<forward name="failed" path="/error.jsp"></forward>
<forward name="successed" path="/right.jsp"></forward>
<forward name="registSuccessed" path="/registRight.jsp"></forward>
</global-forwards>
<action-mappings>
<action path='/login' name="formBean1" input="/login.jsp"
type='classmate.LoginAction' scope="request">
</action>
<action path="/registSubmit" name="registForm"
type="classmate.RegistAction" input="/error.jsp" scope="request"
validate="true">
</action>
<action path="/regist" forward="/regist.jsp"></action>
</action-mappings>
<message-resources parameter="classmate.MyResource"></message-resources>
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
<set-property value="false"
property="stopOnFirstError" /></plug-in>
</struts-config>
==============================================================================
validation.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<form-validation>
<formset>
<form name="registForm">
<field property="name" depends="required,maxlength">
<arg0 key="label.username"></arg0>
<arg1 key="${var:maxlength}" resource="false"></arg1>
<var>
<var-name>maxlength</var-name>
<var-value>20</var-value>
</var>
</field>
<field property="psw1" depends="required,validwhen,maxlength">
<arg0 key="label.password" />
<arg1 key="${var:maxlength}" resource="false" />
<var>
<var-name>maxlength</var-name>
<var-value>20</var-value>
</var>
<var>
<var-name>test</var-name>
<var-value>((psw2==*this*)and(*this*!=null))</var-value>
</var></field>
</form>
</formset>
</form-validation>
============================================================================
validator-rules.xml(this is in the struts package you downloaded)
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<!--
$Id: validator-rules.xml 159291 2005-03-28 20:19:29Z niallp $
This file contains the default Struts Validator pluggable validator
definitions. It should be placed somewhere under /WEB-INF and
referenced in the struts-config.xml under the plug-in element
for the ValidatorPlugIn.
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml"/>
</plug-in>
These are the default error messages associated with
each validator defined in this file. They should be
added to your projects ApplicationResources.properties
file or you can associate new ones by modifying the
pluggable validators msg attributes in this file.
# Struts Validator Error Messages
errors.required={0} is required.
errors.minlength={0} can not be less than {1} characters.
errors.maxlength={0} can not be greater than {1} characters.
errors.invalid={0} is invalid.
errors.byte={0} must be a byte.
errors.short={0} must be a short.
errors.integer={0} must be an integer.
errors.long={0} must be a long.
errors.float={0} must be a float.
errors.double={0} must be a double.
errors.date={0} is not a date.
errors.range={0} is not in the range {1} through {2}.
errors.creditcard={0} is an invalid credit card number.
errors.email={0} is an invalid e-mail address.
Note: Starting in Struts 1.2.0 the default javascript definitions have
been consolidated to commons-validator. The default can be overridden
by supplying a <javascript> element with a CDATA section, just as
in struts 1.1.
-->
<form-validation>
<global>
<validator name="required"
classname="org.apache.struts.validator.FieldChecks"
method="validateRequired"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
msg="errors.required"/>
<validator name="requiredif"
classname="org.apache.struts.validator.FieldChecks"
method="validateRequiredIf"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
msg="errors.required"/>
<validator name="validwhen"
msg="errors.required"
classname="org.apache.struts.validator.validwhen.ValidWhen"
method="validateValidWhen"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"/>
<validator name="minlength"
classname="org.apache.struts.validator.FieldChecks"
method="validateMinLength"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.minlength"
jsFunction="org.apache.commons.validator.javascript.validateMinLength"/>
<validator name="maxlength"
classname="org.apache.struts.validator.FieldChecks"
method="validateMaxLength"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.maxlength"
jsFunction="org.apache.commons.validator.javascript.validateMaxLength"/>
<validator name="mask"
classname="org.apache.struts.validator.FieldChecks"
method="validateMask"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.invalid"/>
<validator name="byte"
classname="org.apache.struts.validator.FieldChecks"
method="validateByte"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.byte"
jsFunctionName="ByteValidations"/>
<validator name="short"
classname="org.apache.struts.validator.FieldChecks"
method="validateShort"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.short"
jsFunctionName="ShortValidations"/>
<validator name="integer"
classname="org.apache.struts.validator.FieldChecks"
method="validateInteger"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.integer"
jsFunctionName="IntegerValidations"/>
<validator name="long"
classname="org.apache.struts.validator.FieldChecks"
method="validateLong"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.long"/>
<validator name="float"
classname="org.apache.struts.validator.FieldChecks"
method="validateFloat"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.float"
jsFunctionName="FloatValidations"/>
<validator name="double"
classname="org.apache.struts.validator.FieldChecks"
method="validateDouble"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.double"/>
<validator name="date"
classname="org.apache.struts.validator.FieldChecks"
method="validateDate"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.date"
jsFunctionName="DateValidations"/>
<validator name="intRange"
classname="org.apache.struts.validator.FieldChecks"
method="validateIntRange"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends="integer"
msg="errors.range"/>
<validator name="floatRange"
classname="org.apache.struts.validator.FieldChecks"
method="validateFloatRange"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends="float"
msg="errors.range"/>
<validator name="doubleRange"
classname="org.apache.struts.validator.FieldChecks"
method="validateDoubleRange"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends="double"
msg="errors.range"/>
<validator name="creditCard"
classname="org.apache.struts.validator.FieldChecks"
method="validateCreditCard"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.creditcard"/>
<validator name="email"
classname="org.apache.struts.validator.FieldChecks"
method="validateEmail"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.email"/>
<validator name="url"
classname="org.apache.struts.validator.FieldChecks"
method="validateUrl"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.url"/>
<!--
This simply allows struts to include the validateUtilities into a page, it should
not be used as a validation rule.
-->
<validator name="includeJavaScriptUtilities"
classname=""
method=""
methodParams=""
depends=""
msg=""
jsFunction="org.apache.commons.validator.javascript.validateUtilities"/>
</global>
</form-validation>
============================================================================
MyResource.properties这个是STRUTS应用程序的国际化的,中文默认的是MyResource_zh.propeties
我只写了错误页面的,一点点。
#simple properties file for test
label.deny= Access Denied
item.loginAgain= login Agin
item.regist=New User Regist
error.name.required=A userName is Required
error.psw.required=A Password is Required
errors.required={0} is null
errors.minlength={0} cannot less than {1} char
errors.maxlength={0} cannot more than {1} char
errors.validwhen={0} unmatch
#simple properties file for test
label.deny= Access Denied
item.loginAgain= login Agin
item.regist=New User Regist
error.name.required=A userName is Required
error.psw.required=A Password is Required
errors.required={0} is null
errors.minlength={0} cannot less than {1} char
errors.maxlength={0} cannot more than {1} char
errors.validwhen={0} unmatch
=====================================================================
4.把STRUTS中的struts-bean.tld与 struts-html.tld复制到本项目的/WEB-INF/目录下
5.在MYSQL中建立account 数据表
5.启动TOMCAT服务器,验证提交数据!
6.在JAVA程序中向MYSQL插入中文时候,把插入的字符串做如下转换new String(insertString.getBytes("ISO-9558-1") );
如果是单独的一个JSP页面向MYSQL插入中文数据,把插入的字符串做如下转换new String(insertString.getBytes("ISO-9558-1","UTF-8") );
当然这要看自己的数据库字符编码和页面的字符编码,我的是LINUX,所以都用了UTF-8,在WIN下面改为GB2312吧!
2.在ECLIPSE中新建一个项目--Tomcat Project,并通过添加外部JAR把Struts.jar添加到项目里
3.相关的JSP,类,和配置文件如下:
首页login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="gb2312"%>
<%@page import="org.apache.struts.action.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>LOGIN </title>
</head>
<body>
<form action="login.do" method="post">
用户名:<input size="15" name="name"><p>
密  码:<input type="password" size="15" name="psw"><p>
<a href="regist.do">新用户注册</a>
<input type="submit" value="登录">
</form>
</body>
</html>
=====================================================================
注册页面regist.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="gb2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>regist page</title>
</head>
<body vLink ="#006666" link="#003366" bgColor="#E0F0F8">
<img height="33" src="register.gif" width="148">
<form action="registSubmit.do" method="post">
用户名:  <input size="15" name="name"><p>
密  码:  <input type="password" size="15" name="psw1"><p>
确认密码:<input type="password" size="15" name="psw2"><p>
<input type="submit" value="注册">
</form>
<a href="login.jsp">返回登录界面</a><br>
</body>
</html>
========================================================================
登录正确返回页面right.jsp
<%@ page language="java" contentType="text/html"
pageEncoding="UTF-8"%>
<%@page import="classmate.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>welcome</title>
</head>
<body>
<%
UserForm formBean1=(UserForm)request.getAttribute("formBean1");
if(formBean1!=null&&formBean1.getName()!=null){
%>
<h1>
<img src="smile.gif">
热烈欢迎您,
<%=new String(formBean1.getName().getBytes("ISO-8859-1"))%>同学!
<% }else{ %>您无权访问本页!
<%} %>
</h1><br>
<a href="login.jsp">重新登录</a>
<a href="regist.do">新用户注册</a>
</body>
</html>
====================================================================
注册成功后的返回页面registRight.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="gb2312"%>
<%@page import="classmate.*" %>
<%@page import="org.apache.struts.validator.DynaValidatorForm" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>welcome</title>
</head>
<body>
<%
DynaValidatorForm dyform=(DynaValidatorForm)request.getAttribute("registForm");
if(dyform!=null&&dyform.get("name")!=null){
String namer= (String)dyform.get("name");
%>
<h1>
<img src="smile.gif">
热烈欢迎您,
<%=new String(namer.getBytes("ISO-8859-1"))%>同学!
<% }else{ %>您无权访问本页!
<%} %>
</h1><br>
<a href="login.jsp">重新登录</a>
<a href="regist.do">新用户注册</a>
</body>
</html>
===========================================================================
错误处理页面error.jsp
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312" isErrorPage="true"%>
<%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>This is a error page</title>
</head>
<body>
<h1>
<img src="cry.gif">
<html:errors/>
</h1><br>
<a href="login.jsp">
<bean:message key="item.loginAgain"/>
</a>
<a href="regist.do">
<bean:message key="item.regist"/>
</a>
</body>
</html>
===========================================================================
LoginAction.java
package classmate;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.sql.DataSource;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public final class LoginAction extends Action{
public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception{
UserForm userform=(UserForm)form;
String name=userform.getName();
String psw=userform.getPsw();
String name_utf8=new String(name.getBytes("ISO-8859-1"));
String psw_utf8=new String(psw.getBytes("ISO-8859-1"));
ServletContext context=servlet.getServletContext();
DataSource dataSource=(DataSource)context.getAttribute("mysqlDB1");
DBUser dbuser=new DBUser(dataSource);
HttpSession session=request.getSession();
if(dbuser.checkUser(name_utf8, psw_utf8)){
UserLoginLog ul= new UserLoginLog();
ul.save(name_utf8,psw_utf8);
return mapping.findForward("successed");
}else{
return mapping.findForward("failed");}
}
}
=============================================================================
registAciton.java
package classmate;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.sql.DataSource;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.validator.DynaValidatorForm;
public final class RegistAction extends Action{
public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception{
DynaValidatorForm dyform=(DynaValidatorForm)form;// 动态验证框
//DynaActionForm dyform=(DynaActionForm)form;
String name=(String)dyform.get("name");
String psw1= (String) dyform.get("psw1");
String psw2= (String) dyform.get("psw2");
String name_utf8=new String(name.getBytes("ISO-8859-1"));
String psw1_utf8=new String(psw1.getBytes("ISO-8859-1"));
ServletContext context=servlet.getServletContext();
DataSource dataSource=(DataSource)context.getAttribute("mysqlDB1");
DBUser dbuser=new DBUser(dataSource);
HttpSession session=request.getSession();
if(dbuser.Insert(name_utf8,psw1_utf8)!=0){
UserLoginLog ul= new UserLoginLog();
ul.save(name,psw1);
return (mapping.findForward("registSuccessed"));
}else{
ActionMessages errors=new ActionMessages();
errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("label.registError"));
if(!errors.isEmpty()){
saveErrors(request,errors);
}
return mapping.findForward("failed");}
}
}
========================================================================
userForm.java
package classmate;
import org.apache.struts.action.ActionForm;
public class UserForm extends ActionForm{
/**
*
*/
private static final long serialVersionUID = 1L;
private String name=null;
private String psw=null;
public UserForm(){}
public void setName(String name){
this.name=name; }
public void setPsw(String psw){
this.psw=psw; }
public String getName(){return name;}
public String getPsw(){return psw;}
}
=====================================================================
userLoginLog.java
package classmate;
import java.io.*;
import java.util.*;
public class UserLoginLog {
public void save(String name,String pwd){
Calendar today=Calendar.getInstance();
String fileName ="logs//user_login_log.txt";
try {
FileWriter fw=new FileWriter(fileName,true);
BufferedWriter bw=new BufferedWriter(fw);
bw.write(today.getTime().toString()+":user"+name+":password"+pwd+"log in/n");
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
========================================================================
DBuser.java
package classmate;
import javax.sql.*;
import java.sql.*;
public class DBUser {
DataSource dataSource;
public DBUser(DataSource dataSource){
this.dataSource=dataSource;
}
public boolean checkUser(String name,String psw)throws Exception{
Connection connect =null;
String strSql;
ResultSet rs;
boolean result=false;
strSql="select * from account where username='"+name+"'and password='"+psw+"'";
try {
connect=dataSource.getConnection();
Statement stmt=connect.createStatement();
rs=stmt.executeQuery(strSql);
if(rs.next()){
result=true;
}
} catch (SQLException e) {
e.printStackTrace();
}
finally{
if(connect!=null)connect.close();
}
return result;
}
public int Insert(String username,String password)throws Exception{
Connection connect=null;
String strSql;
int result =0;
strSql="insert into account values('"+username+"','"+password+"')";
try {
connect =dataSource.getConnection();
Statement stmt=connect.createStatement();
result =stmt.executeUpdate(strSql);
} catch (SQLException ex) {
System.err.println(ex.getMessage());// TODO: handle exception
}
finally{
if(connect!=null)connect.close();
}
return result;
}
}
============================================================================
web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>actionServlet</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>actionServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
</web-app>
=======================================================================
struts-config.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE struts-config
PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<data-sources>
<data-source key="mysqlDB1" type="org.apache.commons.dbcp.BasicDataSource">
<set-property value="org.gjt.mm.mysql.Driver" property="driverClassName" /><set-property
value="jdbc:mysql://localhost/test" property="url" /><set-property
value="5" property="maxActive" /><set-property value="test_root"
property="username" /><set-property value="test_root"
property="password" /><set-property value="true"
property="autoCommit" /></data-source></data-sources>
<form-beans>
<form-bean name="formBean1" type="classmate.UserForm"/>
<form-bean name="registForm"
type="org.apache.struts.validator.DynaValidatorForm" dynamic="true">
<form-property name="name" type="java.lang.String"></form-property>
<form-property name="psw1" type="java.lang.String"></form-property>
<form-property name="psw2" type="java.lang.String"></form-property>
</form-bean>
</form-beans>
<global-forwards>
<forward name="failed" path="/error.jsp"></forward>
<forward name="successed" path="/right.jsp"></forward>
<forward name="registSuccessed" path="/registRight.jsp"></forward>
</global-forwards>
<action-mappings>
<action path='/login' name="formBean1" input="/login.jsp"
type='classmate.LoginAction' scope="request">
</action>
<action path="/registSubmit" name="registForm"
type="classmate.RegistAction" input="/error.jsp" scope="request"
validate="true">
</action>
<action path="/regist" forward="/regist.jsp"></action>
</action-mappings>
<message-resources parameter="classmate.MyResource"></message-resources>
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
<set-property value="false"
property="stopOnFirstError" /></plug-in>
</struts-config>
==============================================================================
validation.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<form-validation>
<formset>
<form name="registForm">
<field property="name" depends="required,maxlength">
<arg0 key="label.username"></arg0>
<arg1 key="${var:maxlength}" resource="false"></arg1>
<var>
<var-name>maxlength</var-name>
<var-value>20</var-value>
</var>
</field>
<field property="psw1" depends="required,validwhen,maxlength">
<arg0 key="label.password" />
<arg1 key="${var:maxlength}" resource="false" />
<var>
<var-name>maxlength</var-name>
<var-value>20</var-value>
</var>
<var>
<var-name>test</var-name>
<var-value>((psw2==*this*)and(*this*!=null))</var-value>
</var></field>
</form>
</formset>
</form-validation>
============================================================================
validator-rules.xml(this is in the struts package you downloaded)
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<!--
$Id: validator-rules.xml 159291 2005-03-28 20:19:29Z niallp $
This file contains the default Struts Validator pluggable validator
definitions. It should be placed somewhere under /WEB-INF and
referenced in the struts-config.xml under the plug-in element
for the ValidatorPlugIn.
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml"/>
</plug-in>
These are the default error messages associated with
each validator defined in this file. They should be
added to your projects ApplicationResources.properties
file or you can associate new ones by modifying the
pluggable validators msg attributes in this file.
# Struts Validator Error Messages
errors.required={0} is required.
errors.minlength={0} can not be less than {1} characters.
errors.maxlength={0} can not be greater than {1} characters.
errors.invalid={0} is invalid.
errors.byte={0} must be a byte.
errors.short={0} must be a short.
errors.integer={0} must be an integer.
errors.long={0} must be a long.
errors.float={0} must be a float.
errors.double={0} must be a double.
errors.date={0} is not a date.
errors.range={0} is not in the range {1} through {2}.
errors.creditcard={0} is an invalid credit card number.
errors.email={0} is an invalid e-mail address.
Note: Starting in Struts 1.2.0 the default javascript definitions have
been consolidated to commons-validator. The default can be overridden
by supplying a <javascript> element with a CDATA section, just as
in struts 1.1.
-->
<form-validation>
<global>
<validator name="required"
classname="org.apache.struts.validator.FieldChecks"
method="validateRequired"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
msg="errors.required"/>
<validator name="requiredif"
classname="org.apache.struts.validator.FieldChecks"
method="validateRequiredIf"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
msg="errors.required"/>
<validator name="validwhen"
msg="errors.required"
classname="org.apache.struts.validator.validwhen.ValidWhen"
method="validateValidWhen"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"/>
<validator name="minlength"
classname="org.apache.struts.validator.FieldChecks"
method="validateMinLength"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.minlength"
jsFunction="org.apache.commons.validator.javascript.validateMinLength"/>
<validator name="maxlength"
classname="org.apache.struts.validator.FieldChecks"
method="validateMaxLength"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.maxlength"
jsFunction="org.apache.commons.validator.javascript.validateMaxLength"/>
<validator name="mask"
classname="org.apache.struts.validator.FieldChecks"
method="validateMask"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.invalid"/>
<validator name="byte"
classname="org.apache.struts.validator.FieldChecks"
method="validateByte"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.byte"
jsFunctionName="ByteValidations"/>
<validator name="short"
classname="org.apache.struts.validator.FieldChecks"
method="validateShort"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.short"
jsFunctionName="ShortValidations"/>
<validator name="integer"
classname="org.apache.struts.validator.FieldChecks"
method="validateInteger"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.integer"
jsFunctionName="IntegerValidations"/>
<validator name="long"
classname="org.apache.struts.validator.FieldChecks"
method="validateLong"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.long"/>
<validator name="float"
classname="org.apache.struts.validator.FieldChecks"
method="validateFloat"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.float"
jsFunctionName="FloatValidations"/>
<validator name="double"
classname="org.apache.struts.validator.FieldChecks"
method="validateDouble"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.double"/>
<validator name="date"
classname="org.apache.struts.validator.FieldChecks"
method="validateDate"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.date"
jsFunctionName="DateValidations"/>
<validator name="intRange"
classname="org.apache.struts.validator.FieldChecks"
method="validateIntRange"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends="integer"
msg="errors.range"/>
<validator name="floatRange"
classname="org.apache.struts.validator.FieldChecks"
method="validateFloatRange"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends="float"
msg="errors.range"/>
<validator name="doubleRange"
classname="org.apache.struts.validator.FieldChecks"
method="validateDoubleRange"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends="double"
msg="errors.range"/>
<validator name="creditCard"
classname="org.apache.struts.validator.FieldChecks"
method="validateCreditCard"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.creditcard"/>
<validator name="email"
classname="org.apache.struts.validator.FieldChecks"
method="validateEmail"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.email"/>
<validator name="url"
classname="org.apache.struts.validator.FieldChecks"
method="validateUrl"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.url"/>
<!--
This simply allows struts to include the validateUtilities into a page, it should
not be used as a validation rule.
-->
<validator name="includeJavaScriptUtilities"
classname=""
method=""
methodParams=""
depends=""
msg=""
jsFunction="org.apache.commons.validator.javascript.validateUtilities"/>
</global>
</form-validation>
============================================================================
MyResource.properties这个是STRUTS应用程序的国际化的,中文默认的是MyResource_zh.propeties
我只写了错误页面的,一点点。
#simple properties file for test
label.deny= Access Denied
item.loginAgain= login Agin
item.regist=New User Regist
error.name.required=A userName is Required
error.psw.required=A Password is Required
errors.required={0} is null
errors.minlength={0} cannot less than {1} char
errors.maxlength={0} cannot more than {1} char
errors.validwhen={0} unmatch
#simple properties file for test
label.deny= Access Denied
item.loginAgain= login Agin
item.regist=New User Regist
error.name.required=A userName is Required
error.psw.required=A Password is Required
errors.required={0} is null
errors.minlength={0} cannot less than {1} char
errors.maxlength={0} cannot more than {1} char
errors.validwhen={0} unmatch
=====================================================================
4.把STRUTS中的struts-bean.tld与 struts-html.tld复制到本项目的/WEB-INF/目录下
5.在MYSQL中建立account 数据表
5.启动TOMCAT服务器,验证提交数据!
6.在JAVA程序中向MYSQL插入中文时候,把插入的字符串做如下转换new String(insertString.getBytes("ISO-9558-1") );
如果是单独的一个JSP页面向MYSQL插入中文数据,把插入的字符串做如下转换new String(insertString.getBytes("ISO-9558-1","UTF-8") );
当然这要看自己的数据库字符编码和页面的字符编码,我的是LINUX,所以都用了UTF-8,在WIN下面改为GB2312吧!
相关文章推荐
- vue.js实现用户评论、登录、注册、及修改用户部分信息功能代码。
- 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法
- 利用ajax实现多种注册角色的注册登录检测
- ajax1.0用户动态检测注册实现(原创)
- JQuery+Ajax+Struts2+Hibernate框架整合实现完整的登录注册
- 使用js实现注册表单时自动检测输入信息
- java web编程中 struts2+hibernate 实现B2C电子商务网站的登录 、注册中验证码的实现(源码精简版)
- 使用Struts 2.0 框架实现用户注册登录模块(数据库校验)
- Struts2+Mybatis整合实现注册登录功能
- vue.js实现用户评论、登录、注册、及修改信息功能
- struts2+hibernate 实现B2C电子商务网站的登录 、注册中验证码的实现(源码)
- struts2.0+hibernate3.0+spring3实现注册登录(hbm)
- ajax1.0用户动态检测注册实现(原创)
- 使用THinkPHP 3.2实现登录注册及信息展示
- 银行管理系统 实现用户注册 登录 存、取款 交易记录查询和修改用户信息等功能
- Java实现--登录和注册案例(把用户信息存进集合)
- java在线聊天项目1.1版 ——开启多个客户端,分别实现注册和登录功能,使用客户端与服务端信息request机制,重构线程,将单独的登录和注册线程合并
- struts2+hibernate 实现B2C电子商务网站的登录 、注册中验证码的实现(源码)
- struts注册信息验证的实现描述附带代码
- struts注册信息验证的实现描述附带代码