<?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");
    } 
  }
}

解决方案 »

  1.   

    /////////////////
    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>
      

  2.   

    错误是???????????????????????????2009-4-15 15:51:06 org.apache.struts.util.PropertyMessageResources <init>
    信息: 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)
     
      

  3.   

    你数据库连接的架包下载放在lib中没
      

  4.   

    commons-collections-3.1.jar  
      commons-dbcp-1.2.1.jar  
      commons-pool-1.2.jar这3个数据库连接池包