最簡單的Struts程序(2)------連接MYSQL數據庫

1.開發所用工具:

     eclipse3.1+myeclipse

     Mysql4.1.11

     struts1.1

     Mysql-connect

2.開發過程:

新建一個myeclipse項目“db_test”,

MYSQL中新建一個數據庫“test,然後在其中新建一個表“test,如下:

CREATE TABLE `test` (

  `name` char(20) NOT NULL default '',

  `password` char(10) NOT NULL default ''

) ENGINE=InnoDB DEFAULT CHARSET=gb2312;

   

新建兩個JSP文件,分別如下:

HelloWorld.jsp

 

 

HelloWorld.jsp

<%@ page  contentType="text/html;charset=gb2312" language="java" %>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html:html>

  <head>

    <html:base />

    <title>HelloWorld.jsp</title>

  </head>

  <body>

   <html:form action="/hello" method="post">

    <html:text property="name"/>

    <br>

  <html:password property="password"/>

    <html:submit  value="提交"/>

    <html:reset value="重寫"/>

   </html:form>

  </body>

</html:html>

 

 

HelloOut.jsp

 

 

<%@ page  contentType="text/html;charset=gb2312" language="java" %>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html:html>

  <head>

    <html:base />

    <title>MyJsp.jsp</title>

  </head>

  <body>

    <bean:write name="checkForm" property="name"/>等錄成功!!!!!

    <!-- <bean:write name="checkForm" property="password"/>-->

  </body>

</html:html>

 

 

2.創建用於連接MYSQL的文件,DBConn.java

package com.sql.struts;

import java.sql.*;

public class DBConn{

    String sDBDriver="org.gjt.mm.mysql.Driver";

    String sConnStr="jdbc:mysql://127.0.0.1:3306/test?user=root&password=xiaotu&useUnicode=true&characterEncoding=ISO-8859-1";

    Connection conn=null;

    ResultSet rs=null;

    public DBConn(){

       try{

            Class.forName(sDBDriver);

        }

        catch(java.lang.ClassNotFoundException e){

            System.out.println("Jdbc_conn():"+e.getMessage());

        }

    }

    public void executeUpdate(String sql)throws Exception{

       try{

           conn=DriverManager.getConnection(sConnStr);

            Statement stmt=conn.createStatement();

            stmt.executeUpdate(sql);

           conn.close();

           stmt.close();

        }

        catch(SQLException ex){

            System.out.println("sql.executeUpdate:"+ex.getMessage());

        }

    }

    public ResultSet executeQuery(String sql)throws Exception{

        rs=null;

       try{

           sql=new String(sql.getBytes("ISO-8859-1"));

            conn=DriverManager.getConnection(sConnStr);

            Statement stmt=conn.createStatement();

            rs=stmt.executeQuery(sql);

        }

        catch(SQLException ex){

            System.out.println("sql.executeQuery:"+ex.getMessage());

        }

       return rs;

    }

    public void CloseConn()

          throws Exception {

          try

          {

            if (rs!=null)

              rs.close();

            if (conn!=null)

              conn.close();

          }

            catch(SQLException ex)

          {

            System.out.println ("closeConn: " + ex);

          }

    }

}

 

 

3. 創建Action文件,ActionCheck.java

package com.sql.struts;

import java.sql.ResultSet;

import java.sql.SQLException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

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 class ActionCheck extends Action{

    public ActionForward execute(

           ActionMapping mapping,

           ActionForm form,

           HttpServletRequest request,

           HttpServletResponse response) throws Exception {

       CheckForm checkForm = (CheckForm) form;

       String username = checkForm.getName();

       checkForm.setName(toGB(username));

       String password = checkForm.getPassword();

       //toGB(password);

       DBConn db = new DBConn();

       boolean okflag=false;

       try{

           ResultSet rs = db.executeQuery("select * from test");

           while(rs.next()){

              if(rs.getString("name").equals(toGB(username))&&

rs.getString("password").equals(password)) {

                  okflag=true;

                  break;

              };

           }

           rs.close();

           if(okflag){

              return (mapping.findForward("success"));

           }else{

              checkForm.reset(mapping,request);

              return (mapping.findForward("failure"));

           }

       }catch(SQLException ex){

           System.out.print("Logon Error" + ex.getMessage());

       }finally{

           db.CloseConn();

       }

       return (mapping.findForward("success"));

    }

    public static String toGB(String iso){

       String gb=null;

       if (iso != null) {

           try {

              gb=new String(iso.getBytes("ISO-8859-1"),"GB2312");

           } catch (Exception e) {

              gb=null;

           }

       }

       return gb;

    }

}

4. 創建Form bean 文件,CheckForm.java

package com.sql.struts;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionMapping;

public  class CheckForm extends ActionForm {

    String name=null;

    String password=null;

    public String getName() {

       return name;

    }

    public void setName(String name) {

       this.name = name;

    }

    public String getPassword() {

       return password;

    }

    public void setPassword(String password) {

       this.password = password;

    }

    public void reset(ActionMapping mapping, HttpServletRequest request) {

       password = "";

       name = "";

    }

}

5.運行程序:http://localhost:8089/db_test/HelloWorld.jsp   即可運行程序

發佈了38 篇原創文章 · 獲贊 0 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章