<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Feng.Li's Java See

    抓緊時間,大步向前。
    隨筆 - 95, 文章 - 4, 評論 - 58, 引用 - 0
    數據加載中……

    漂亮的struts實例

    (mystruts應用)目錄結構
    ?? mystruts
    ??????? |-WEB-INF
    ??????? |????? |- lib
    ??????? |????? |?? |- struts.jar
    ??????? |????? |- classes
    ??????? |????? |????? |- ConnectionPool
    ??????? |????? |????? |??????????? |- getDbConnection.class
    ??????? |????? |????? |-mystruts
    ??????? |????? |???????????? |- user1Action.class
    ??????? |????? |???????????? |- userAction.class
    ??????? |????? |???????????? |- userActionForm.class
    ??????? |????? |???????????? |- userdao.class
    ??????? |????? |-struts-bean.tld
    ??????? |????? |-struts-config.xml
    ??????? |????? |-struts-html.tld
    ??????? |????? |-struts-logic.tld
    ??????? |????? |-struts-template.tld
    ??????? |-adduser.jsp
    ??????? |-index.jsp
    ??????? |-viewuser.jsp

    第一步: 開發環境配置

    (如果你還沒有相關軟件. 請到http://www.apache.org 下載)

    tomcat5.0 配置? (建立一個 mystruts 應用, 并拷貝相關文件)

    請在你的tomcat安裝目錄中找到\conf\Catalina\localhost 子目錄. 新建 mystruts.xml 文件
    文件內容如下. 在這個文件中. 我們將配置一個聯接池.請把相關的驅動.數據庫用戶,密碼改成你自己的本機配置.
    并把JDBC驅動拷貝一份到 Tomcat 5.0\common\lib 目錄下. 請把 struts.jar \mystruts\WEB-INF\lib 目錄下.

    <Context path="/mystruts" docBase="D:\www\mystruts\mystruts\mystruts" debug="0" privileged="true">

    ? <Resource name="jdbc/TestDB"
    ?????????????? auth="Container"
    ?????????????? type="javax.sql.DataSource"/>

    ? <ResourceParams name="jdbc/TestDB">
    ??? <parameter>
    ????? <name>factory</name>
    ????? <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    ??? </parameter>

    ??? <parameter>
    ????? <name>maxActive</name>
    ????? <value>10</value>
    ??? </parameter>

    ??? <parameter>
    ????? <name>maxIdle</name>
    ????? <value>5</value>
    ??? </parameter>

    ??? <parameter>
    ????? <name>maxWait</name>
    ????? <value>10000</value>
    ??? </parameter>

    ??? <parameter>
    ???? <name>username</name>
    ???? <value>sa</value>
    ??? </parameter>
    ??? <parameter>
    ???? <name>password</name>
    ???? <value>test</value>
    ??? </parameter>

    ??? <parameter>
    ?????? <name>driverClassName</name>
    ?????? <value>net.sourceforge.jtds.jdbc.Driver</value>
    ??? </parameter>

    ??? <parameter>
    ????? <name>url</name>
    ????? <value>jdbc:jtds:sqlserver://192.168.10.223:1433/mystruts</value>
    ??? </parameter>
    ? </ResourceParams>
    </Context>

    WEB-INF/web.xml? (加入struts標記庫的支持)

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "<web-app>
    ? <servlet>
    ??? <servlet-name>action</servlet-name>
    ??? <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    ??? <init-param>
    ????? <param-name>debug</param-name>
    ????? <param-value>2</param-value>
    ??? </init-param>
    ??? <init-param>
    ????? <param-name>config</param-name>
    ????? <param-value>/WEB-INF/struts-config.xml</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>
    ? <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>
    </web-app>

    第二步: 配置數據庫

    1.首先創建數據聯接bean, 并打包到 ConnectionPool, 它將從我們配置的聯接池中取得可用聯接.

    // Java Document
    package ConnectionPool;
    import javax.naming.*;
    import javax.sql.*;
    import java.sql.*;
    import java.io.*;
    import java.util.*;

    public class getDbConnection {

    ?Connection conn;
    ?Statement stmt;
    ?ResultSet rs=null;

    String foo = "Not Connected";
    ? int bar = -1;

    ? public getDbConnection() {
    ??? try{
    ????? Context ctx = new InitialContext();
    ????? if(ctx == null )
    ????????? throw new Exception("Boom - No Context");

    ????? DataSource ds =
    ??????????? (DataSource)ctx.lookup(
    ?????????????? "java:comp/env/jdbc/TestDB");

    ????? if (ds != null) {
    ??????? conn = ds.getConnection();

    ??????? }
    ????? }
    ??? catch(Exception e) {
    ????? e.printStackTrace();
    ??? }
    ?}

    public Connection? getCon()
    ?{
    ?? return? conn;
    ?}


    public void d_close() throws SQLException
    ? {
    ??? if (rs != null) {
    ????? try { rs.close(); } catch (SQLException e) { ; }
    ????? rs = null;
    ??? }
    ??? if (stmt != null) {
    ????? try { stmt.close(); } catch (SQLException e) { ; }
    ????? stmt = null;
    ??? }
    ??? if (conn != null) {
    ????? try { conn.close(); } catch (SQLException e) { ; }
    ????? conn = null;
    ??? }

    ? }

    protected void finalize() throws Throwable
    ? {
    ?? try { d_close(); } catch (SQLException e) { ; }
    ? }

    }

    2.創建數據庫.?

    數據庫名: mystruts

    部門表: mydep

    _______________________________________
    dep_id?????????? dep_name
    _______________________________________
    ?1?????????????? dep1
    ?2?????????????? dep2
    ?3?????????????? dep3
    ?4?????????????? dep4
    _______________________________________

    用戶表: myuser
    ______________________________________________
    user_id???? user_name??? dep???? tel
    ______________________________________________
    ?1????????? jack????????? 1????? 0769-2454042
    ?2????????? max?????????? 2????? 0769-2454043
    ______________________________________________

    (注: 以上字段為了測試方便. 全部使用字符型)


    第三步:? 創建ActionForm? (userActionForm.java)

    ?

    package mystruts;? //請打包到mystruts下.

    import org.apache.struts.action.*;
    import javax.servlet.http.*;

    public class userActionForm extends ActionForm {
    ? private String action="add";
    ? private String dep;
    ? private String tel;
    ? private String user_id;
    ? private String user_name;
    ? public String getAction() {
    ??? return action;
    ? }
    ? public void setAction(String action) {
    ??? this.action = action;
    ? }
    ? public String getDep() {
    ??? return dep;
    ? }
    ? public void setDep(String dep) {
    ??? this.dep = dep;
    ? }
    ? public String getTel() {
    ??? return tel;
    ? }
    ? public void setTel(String tel) {
    ??? this.tel = tel;
    ? }
    ? public String getUser_id() {
    ??? return user_id;
    ? }
    ? public void setUser_id(String user_id) {
    ??? this.user_id = user_id;
    ? }
    ? public String getUser_name() {
    ??? return user_name;
    ? }
    ? public void setUser_name(String user_name) {
    ??? this.user_name = user_name;
    ? }
    ? public ActionErrors validate(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {

    ??? return null;
    ? }
    ? public void reset(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {
    ? }
    }


    第四步:建立數據庫操作對象 (完成對表的增刪修改與查詢)

    package mystruts;

    import java.sql.*;
    import ConnectionPool.*;
    import java.util.*;

    public class userdao {
    ? getDbConnection db=null;
    ? Connection con=null;

    ? public userdao() {
    ? }
    ? //-------------------------------------------------------------------
    ? public void userInsert(userActionForm uaf1)
    ? {
    ?? db=new getDbConnection();
    ?? con=db.getCon();
    ?? userActionForm uaf=uaf1;
    ?? PreparedStatement ps = null;
    ?? String sql="insert into myuser (user_id,user_name,dep,tel) values(?,?,?,?)";
    ?? try {

    ?????? ps = con.prepareStatement(sql);
    ?????? ps.setString(1,uaf.getUser_id());
    ?????? ps.setString(2,uaf.getUser_name());
    ?????? ps.setString(3,uaf.getDep());
    ?????? ps.setString(4,uaf.getTel());
    ?????? ps.executeUpdate();
    ??????? }
    ??????? catch (SQLException e)
    ??????? {
    ???????? System.out.println("sql error");
    ??????? }
    ?????? finally
    ?????? {
    ??????? try{
    ?????????????? con.close();
    ?????????????? db.d_close();
    ???????????? }
    ??????? catch(Exception e) {}
    ??????? }
    ??? }
    ?? //---------------------------------------------
    ?? public void userUpdate(userActionForm uaf1)
    ?? {
    ?? db=new getDbConnection();
    ?? con=db.getCon();
    ?? userActionForm uaf=uaf1;
    ?? PreparedStatement ps = null;
    ?? String sql="update myuser set user_name=?,dep=?,tel=? where user_id=?";
    ?? try {

    ????? ps = con.prepareStatement(sql);
    ????? ps.setString(1,uaf.getUser_name());
    ????? ps.setString(2,uaf.getDep());
    ????? ps.setString(3,uaf.getTel());
    ????? ps.setString(4,uaf.getUser_id());
    ????? ps.executeUpdate();
    ?????? }
    ????? catch (SQLException e)
    ????? {
    ?????? System.out.println("sql error");
    ????? }
    ???? finally
    ????? {
    ????? try{
    ???????????? con.close();
    ???????????? db.d_close();
    ?????????? }
    ????? catch(Exception e) {}
    ????? }
    ? }
    ?//---------------------------------------------
    ? public userActionForm getUser(String key)
    ? {
    ?? db=new getDbConnection();
    ?? con=db.getCon();
    ?? ResultSet rs=null;
    ?? userActionForm uaf=new userActionForm();
    ?? PreparedStatement ps = null;
    ?? String sql="select * from? myuser where user_id=?";
    ?? try {
    ???????? ps = con.prepareStatement(sql);
    ???????? ps.setString(1,key.trim());
    ???????? rs=ps.executeQuery();
    ??????? if(rs.next())
    ?????????? {
    ??????????? uaf.setUser_id(rs.getString("user_id"));
    ??????????? uaf.setUser_name(rs.getString("user_name"));
    ??????????? uaf.setDep(rs.getString("dep"));
    ??????????? uaf.setTel(rs.getString("tel"));
    ??????????? uaf.setAction("edit");
    ?????????? }
    ??????? }
    ??????? catch (SQLException e)
    ??????? {
    ???????? System.out.println("sql error");
    ??????? }
    ?????? finally
    ?????? {
    ??????? try{
    ?????????????? con.close();
    ?????????????? db.d_close();
    ???????????? }
    ??????? catch(Exception e) {}
    ??????? }
    ????? System.out.println("mod"+key);
    ???? return uaf;
    ??? }
    ? //----------------------------------------
    ? public void delUser(String key)
    ?? {
    ?? db=new getDbConnection();
    ?? con=db.getCon();
    ?? PreparedStatement ps = null;
    ?? String sql="delete? from? myuser where user_id=?";
    ?? try {
    ???????? ps = con.prepareStatement(sql);
    ???????? ps.setString(1,key.trim());
    ???????? ps.executeUpdate();
    ??????? }
    ??????? catch (SQLException e)
    ??????? {
    ???????? System.out.println("sql error");
    ??????? }
    ?????? finally
    ?????? {
    ??????? try{
    ?????????????? con.close();
    ?????????????? db.d_close();
    ???????????? }
    ??????? catch(Exception e) {}
    ??????? }
    ????? System.out.println("del"+key);
    ??? }
    ?? //----------------------------------
    ? public Collection getAlluser()
    ? {
    ?? db=new getDbConnection();
    ?? con=db.getCon();
    ?? ResultSet rs=null;
    ?? userActionForm uaf=new userActionForm();
    ?? PreparedStatement ps = null;

    ?? ArrayList rslist = new ArrayList();

    ?? String sql="select * from myuser u,mydep d where u.dep=d.dep_id";
    ?? try {
    ???????? ps = con.prepareStatement(sql);
    ???????? rs=ps.executeQuery();
    ??????? while(rs.next())
    ?????????? {
    ??????????? HashMap rscol = new HashMap();
    ??????????? rscol.put("user_id",rs.getString("user_id"));
    ??????????? rscol.put("user_name",rs.getString("user_name"));
    ??????????? rscol.put("dep",rs.getString("dep"));
    ??????????? rscol.put("dep_name",rs.getString("dep_name"));
    ??????????? rscol.put("tel",rs.getString("tel"));
    ??????????? rslist.add(rscol);
    ?????????? }
    ??????? }
    ??????? catch (SQLException e)
    ??????? {
    ???????? System.out.println("sql error");
    ??????? }
    ?????? finally
    ?????? {
    ??????? try{
    ?????????????? con.close();
    ?????????????? db.d_close();
    ???????????? }
    ??????? catch(Exception e) {}
    ??????? }
    ???? return rslist;
    ??? }
    ?? //----------------------------------
    }

    第五步:建立Action? (userAction.java)

    這里我們將建產兩個Action .
    ?
    userAction.java 將完成以下工作.
    1.添加(前期數據準備. 主是提取部門資料.并傳遞給adduser.jsp)
    2.修改(前期數據準備)
    3.刪除
    4.查看所有用戶資料.

    user1Action.java 將完成以下工作
    1.添加用戶(對myuser表操作)
    2.修改用戶(對myuser表操作)

    package mystruts;

    import org.apache.struts.action.*;
    import javax.servlet.http.*;
    import mystruts.*;
    import java.util.*;
    import java.sql.*;
    import ConnectionPool.*;

    public class userAction extends Action {
    ? public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)? throws Exception
    ? {
    ?? userdao dao=new userdao();
    ?? HttpServletRequest request=httpServletRequest;
    ?? String action;
    ?? if(request.getParameter("action").equals("") || request.getParameter("action")==null)
    ?? {
    ???? action="add";
    ?? }
    ?? else
    ?? {
    ???? action=request.getParameter("action");
    ?? }
    ? if(action.equals("add"))
    ? {
    ??? request.setAttribute("dep",this.getDep());
    ??? return (actionMapping.findForward("add"));
    ? }
    ? if(action.equals("edit"))
    ? {
    ?? String key=request.getParameter("key");
    ?? request.setAttribute("dep",this.getDep());
    ?? request.setAttribute("userActionForm",dao.getUser(key));
    ?? return (actionMapping.findForward("add"));
    ? }
    ? if(action.equals("del"))
    ??? {
    ????? String key=request.getParameter("key");
    ????? dao.delUser(key);
    ???? return (actionMapping.findForward("delview"));
    ??? }
    ? if(action.equals("view"))
    ??? {
    ???? request.setAttribute("rs",dao.getAlluser());
    ???? return (actionMapping.findForward("view"));
    ??? }

    ?? return null;
    ? }
    ? //---------------------------------------------
    ? public? Collection getDep()
    ? {
    ?? getDbConnection db=new getDbConnection();
    ?? Connection con=db.getCon();
    ?? ResultSet rs=null;

    ?? PreparedStatement ps = null;

    ?? ArrayList rslist = new ArrayList();

    ?? String sql="select * from mydep";
    ?? try {
    ???????? ps = con.prepareStatement(sql);
    ???????? rs=ps.executeQuery();
    ??????? while(rs.next())
    ?????????? {
    ??????????? HashMap rscol = new HashMap();
    ??????????? rscol.put("id",rs.getString("dep_id"));
    ??????????? rscol.put("name1",rs.getString("dep_name"));
    ??????????? rslist.add(rscol);
    ?????????? }
    ??????? }
    ??????? catch (SQLException e)
    ??????? {
    ???????? System.out.println("sql error");
    ??????? }
    ?????? finally
    ?????? {
    ??????? try{
    ?????????????? con.close();
    ?????????????? db.d_close();
    ???????????? }
    ??????? catch(Exception e) {}
    ??????? }
    ???? return rslist;
    ?? }
    }

    ?

    package mystruts;

    import org.apache.struts.action.*;
    import javax.servlet.http.*;

    public class user1Action extends Action {
    ? public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception
    ? {
    ??? userActionForm uaf = (userActionForm) actionForm;
    ??? if(uaf.getAction().equals("add"))
    ??? {
    ????? new userdao().userInsert(uaf);
    ????? return (actionMapping.findForward("view"));
    ??? }
    ??? if(uaf.getAction().equals("edit"))
    ??? {
    ????? new userdao().userUpdate(uaf);
    ????? return (actionMapping.findForward("view"));
    ??? }
    ? return null;
    ? }
    }


    第六步:建立JSP視圖頁面 (主要有兩個jsp文件. 添加頁面. adduser.jsp 查看頁面 viewuser.jsp)

    adduser.jsp

    <%@ 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=gb2312" %>
    <html:html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>
    adduser
    </title>
    </head>
    <body>
    <h1>&nbsp;</h1>
    <p>
    <html:form action="/user1Action.do" method="POST">
    <html:hidden property="action"/>
    <br>
    部門:
    ?<html:select property="dep">
    ???? <html:options collection="dep" property="id" labelProperty="name1"/>
    ?</html:select>
    <br>
    ID:
    <logic:equal name="userActionForm" property="action" scope="request" value="add">
    <html:text property="user_id"/>
    </logic:equal>
    <logic:equal name="userActionForm" property="action" scope="request" value="edit">
    <html:text property="user_id" readonly="true"/>
    </logic:equal>
    <br>
    名字:<html:text property="user_name"/>
    <br>
    電話:<html:text property="tel"/>
    <br>
    <html:submit property="submit" value="Submit"/><br>
    <html:reset value ="Reset"/>
    </html:form>
    </body>
    </html:html>

    viewuser.jsp

    <%@ 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>
    <head>
    <title>
    viewuser
    </title>
    </head>
    <body>
    <div align="center"><a href="userAction.do?action=add">add </a></div>
    <table width="60%" border="1" align="center">
    ? <tr bgcolor="#CCCCCC">
    ??? <td>ID</td>
    ??? <td>user_name</td>
    ??? <td>dep</td>
    ??? <td>tel</td>
    ??? <td>modify</td>
    ??? <td>del</td>
    ? </tr>
    ? <logic:iterate name="rs" id="user" scope="request" type="java.util.HashMap">
    ? <tr>
    ??? <td><bean:write name="user" property="user_id"/>&nbsp;</td>
    ??? <td><bean:write name="user" property="user_name"/>&nbsp;</td>
    ??? <td><bean:write name="user" property="dep_name"/>&nbsp;</td>
    ??? <td><bean:write name="user" property="tel"/>&nbsp;</td>
    ??? <td><a href="userAction.do?action=edit&key=<bean:write name="user" property="user_id"/>">modify</a></td>
    ??? <td><a href="userAction.do?action=del&key=<bean:write name="user" property="user_id"/>">del</a></td>
    ? </tr>
    ? </logic:iterate>
    </table>
    </body>
    </html:html>

    建產一個轉向頁面 (index.jsp)
    <%@ page contentType="text/html; charset=gb2312" %>
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>

    <body>
    <% response.sendRedirect("userAction.do?action=view"); %>
    </body>
    </html>

    遞七步:建立struts配置文件 (WEB-INF/config-struts.xml)

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "
    <struts-config>
    ? <form-beans>
    ??? <form-bean name="userActionForm" type="mystruts.userActionForm" />
    ? </form-beans>
    ? <action-mappings>
    ??? <action type="mystruts.userAction" scope="request" path="/userAction">
    ????? <forward name="view" path="/viewuser.jsp" />
    ????? <forward name="add" path="/adduser.jsp" />
    ????? <forward name="delview" path="/userAction.do?action=view" />
    ??? </action>
    ??? <action name="userActionForm" type="mystruts.user1Action" scope="request" path="/user1Action">
    ????? <forward name="view" path="/userAction.do?action=view" />
    ??? </action>
    ? </action-mappings>
    </struts-config>

    運行程序:
    啟動tomcat
    啟動IE? 在地址欄中輸入:http://localhost:8080/mystruts

    OK.....

    posted on 2006-09-27 19:49 小鋒 閱讀(451) 評論(0)  編輯  收藏 所屬分類: J2EE

    主站蜘蛛池模板: 日韩亚洲一区二区三区| 精品国产亚洲一区二区在线观看| 亚洲AV无码一区东京热久久| 成人无码视频97免费| 国产av无码专区亚洲国产精品| 4hu四虎免费影院www| 亚洲精品高清国产一线久久| 中文字幕在线免费看| 亚洲人成在线电影| 美丽的姑娘免费观看在线播放| 亚洲欧洲精品一区二区三区| 1000部拍拍拍18免费网站| 亚洲国产成人在线视频| 欧美a级在线现免费观看| 在线观看亚洲视频| 亚洲综合国产精品第一页| 最近的2019免费中文字幕| 亚洲精品中文字幕乱码影院| 久久99九九国产免费看小说| 在线观看亚洲视频| 情人伊人久久综合亚洲| 3d成人免费动漫在线观看| 亚洲熟妇AV一区二区三区浪潮| 亚洲AV无码乱码在线观看性色扶| 最近免费中文字幕中文高清| 亚洲第一成年男人的天堂| 日韩吃奶摸下AA片免费观看| 精品久久久久久亚洲中文字幕 | 久久精品国产亚洲AV电影| 黄+色+性+人免费| 福利片免费一区二区三区| 国产精品亚洲片在线观看不卡| 日韩欧毛片免费视频| 成人免费网站视频www| 久久精品国产亚洲AV大全| 国产成人3p视频免费观看 | 亚洲热线99精品视频| 亚色九九九全国免费视频| 一级毛片正片免费视频手机看| 亚洲电影中文字幕| 国产免费啪嗒啪嗒视频看看|