<?xml version="1.0" encoding="UTF-8"?>
<!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="A"
type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName"
value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<set-property property="url"
value="jdbc:sqlserver://localhost:1433;DatabaseName=lyq;" />
<set-property property="username" value="sa" />
<set-property property="password" value="123" />
<set-property property="maxActive" value="10" />
<set-property property="maxWait" value="50000" />
<set-property property="defaultAutoCommit" value="true" />
<set-property property="defaultReadOnly" value="false" />
</data-source>
</data-sources> <form-beans>
<form-bean name="loginActionForm" type="login3.LoginActionForm" />
</form-beans>
<action-mappings>
<action input="login.jsp" name="loginActionForm"
path="/loginAction" scope="session" type="login3.LoginAction"
validate="false">
<forward name="loginsuccess" path="/welcome.jsp" />
<forward name="loginfail" path="/error.jsp" />
</action>
</action-mappings>
</struts-config>
///////////////////////////
LoginAction.java
package login3;import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.Action;import java.sql.*;
import javax.servlet.http.HttpSession;public class LoginAction
extends Action {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest servletRequest,
HttpServletResponse servletResponse) {
LoginActionForm loginActionForm = (LoginActionForm) actionForm; HttpSession session = servletRequest.getSession();
boolean loginsuccess = false; Connection con = null;
Statement stmt = null;
ResultSet rs = null; try {
//Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=lyq",
// "sa", "123");
// stmt = con.createStatement();
javax.sql.DataSource ds=getDataSource(servletRequest,"A");
con= ds.getConnection();
stmt = con.createStatement();
String sql = "select * from lyq where name = '" +
loginActionForm.getUsername() + "'";
rs = stmt.executeQuery(sql);
while (rs.next()) {
String na=loginActionForm.getPassword().trim();
String pa=rs.getString("pass").trim();//注意要去空个
if (na.equals(pa)) {
loginsuccess = true;
}
}
}
catch (Exception sqlex1) {
sqlex1.printStackTrace();
}
finally {
if (con != null) {
try {
con.close();
}
catch (SQLException sqlex2) {
sqlex2.printStackTrace();
}
}
} if (loginsuccess) { session.setAttribute("username", loginActionForm.getUsername());
return actionMapping.findForward("loginsuccess");
}
else {}
{
return actionMapping.findForward("loginfail");
}
}
}
<!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="A"
type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName"
value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<set-property property="url"
value="jdbc:sqlserver://localhost:1433;DatabaseName=lyq;" />
<set-property property="username" value="sa" />
<set-property property="password" value="123" />
<set-property property="maxActive" value="10" />
<set-property property="maxWait" value="50000" />
<set-property property="defaultAutoCommit" value="true" />
<set-property property="defaultReadOnly" value="false" />
</data-source>
</data-sources> <form-beans>
<form-bean name="loginActionForm" type="login3.LoginActionForm" />
</form-beans>
<action-mappings>
<action input="login.jsp" name="loginActionForm"
path="/loginAction" scope="session" type="login3.LoginAction"
validate="false">
<forward name="loginsuccess" path="/welcome.jsp" />
<forward name="loginfail" path="/error.jsp" />
</action>
</action-mappings>
</struts-config>
///////////////////////////
LoginAction.java
package login3;import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.Action;import java.sql.*;
import javax.servlet.http.HttpSession;public class LoginAction
extends Action {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest servletRequest,
HttpServletResponse servletResponse) {
LoginActionForm loginActionForm = (LoginActionForm) actionForm; HttpSession session = servletRequest.getSession();
boolean loginsuccess = false; Connection con = null;
Statement stmt = null;
ResultSet rs = null; try {
//Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=lyq",
// "sa", "123");
// stmt = con.createStatement();
javax.sql.DataSource ds=getDataSource(servletRequest,"A");
con= ds.getConnection();
stmt = con.createStatement();
String sql = "select * from lyq where name = '" +
loginActionForm.getUsername() + "'";
rs = stmt.executeQuery(sql);
while (rs.next()) {
String na=loginActionForm.getPassword().trim();
String pa=rs.getString("pass").trim();//注意要去空个
if (na.equals(pa)) {
loginsuccess = true;
}
}
}
catch (Exception sqlex1) {
sqlex1.printStackTrace();
}
finally {
if (con != null) {
try {
con.close();
}
catch (SQLException sqlex2) {
sqlex2.printStackTrace();
}
}
} if (loginsuccess) { session.setAttribute("username", loginActionForm.getUsername());
return actionMapping.findForward("loginsuccess");
}
else {}
{
return actionMapping.findForward("loginfail");
}
}
}
LoginActionForm.java
package login3;import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletRequest;public class LoginActionForm
extends ActionForm {
private String password;
private String username;
public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public void setUsername(String username) {
this.username = username;
} public String getUsername() {
return username;
} public ActionErrors validate(ActionMapping actionMapping,
HttpServletRequest httpServletRequest) {
/** @todo: finish this method, this is just the skeleton.*/
return null;
} public void reset(ActionMapping actionMapping,
HttpServletRequest servletRequest) {
}
}
///////////////////////////////////////////////////////////////////////
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<display-name>Login3</display-name>
<jsp-config>
<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>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-template.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>
</jsp-config>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>application</param-name>
<param-value>ApplicationResources</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet>
<description>Added by JBuilder to compile JSPs with debug info</description>
<servlet-name>debugjsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>classdebuginfo</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>debugjsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
//////////////////////////////////////////////////////<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ page contentType="text/html; charset=GBK" %>
<html:html xhtml="true" locale="true">
<head>
<title>
login.jsp
</title>
<html:base/>
</head>
<body>
<h1>欢迎登录(链接池连习)</h1>
<p>
<html:form action="/loginAction.do" method="POST"><html:text property="username"/>
<br>
<html:password property="password"/>
<br><html:submit property="submit" value="Submit"/><br>
<html:reset value ="Reset"/>
</html:form>
</body>
</html:html>
信息: Initializing, config='org.apache.struts.action.ActionResources', returnNull=true
2009-4-15 15:51:07 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config='ApplicationResources', returnNull=true
2009-4-15 15:51:07 org.apache.catalina.core.ApplicationContext log
严重: StandardWrapper.Throwable
java.lang.NoClassDefFoundError: org/apache/struts/legacy/GenericDataSource
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1817)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at org.apache.struts.action.ActionServlet.initModuleDataSources(ActionServlet.java:1084)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:472)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:806)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
commons-dbcp-1.2.1.jar
commons-pool-1.2.jar这3个数据库连接池包