如何在Docker中測驗Jsp連接數據庫mysql的操作(製作成一個鏡像)

在docker中運行tomcat和數據庫的操作流程

  1. 首先導入鏡像(tomcatdababase。tar是我們之前保存的鏡像)
  2. 然後運行容器
  3. 之後啓動mysql服務
    這裏寫圖片描述
  4. 啓動tomcat服務
    這裏寫圖片描述
  5. 外部檢測
    這裏寫圖片描述
    mysql啓動成功

  6. 外部檢測tomcat
    這裏寫圖片描述

  7. docker 環境已經搭好

現在進行顯示網頁

  1. 注意要將自己的tomcat文件夾的lib文件夾下,放置一個
    mysql的jar包
    這裏寫圖片描述
  2. 首先佈置數據庫(mydb.person)
-- 刪除表
DROP TABLE person ;
-- 建立person表
CREATE TABLE person
(
    -- 生成一個流水號,觀察顯示的記錄數
    id int AUTO_INCREMENT NOT NULL PRIMARY KEY ,
    -- 用戶的登陸ID
    uid varchar(32) ,
    -- 用戶的真實姓名
    name varchar(32) ,
    -- 用戶的登陸密碼
    password varchar(20)
) ;
-- 插入測試數據
INSERT INTO person(uid,name,password) VALUES ('Avaya01','Jeremy01','pwd01') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya02','Jeremy02','pwd02') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya03','Jeremy03','pwd03') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya04','Jeremy04','pwd04') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya05','Jeremy05','pwd05') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya06','Jeremy06','pwd06') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya07','Jeremy07','pwd07') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya08','Jeremy08','pwd08') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya09','Jeremy09','pwd09') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya10','Jeremy10','pwd10') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya11','Jeremy11','pwd11') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya12','Jeremy12','pwd12') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya13','Jeremy13','pwd13') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya14','Jeremy14','pwd14') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya15','Jeremy15','pwd15') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya16','Jeremy16','pwd16') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya17','Jeremy17','pwd17') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya18','Jeremy18','pwd18') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya19','Jeremy19','pwd19') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya20','Jeremy20','pwd20') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya21','Jeremy21','pwd21') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya22','Jeremy22','pwd22') ;
INSERT INTO person(uid,name,password) VALUES ('Avaya23','Jeremy23','pwd23') ;
  1. test_db.Jsp 文件
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<head>
    <title>分頁顯示</title>
</head>
<body>
<center>
    <h1>人員列表</h1>
    <hr>
    <br>
    <%!
        final String jspUrl = "list_person_false_05.jsp" ;
    %>
    <%
        // 定義如下分頁變量
        // 1、定義沒頁要顯示的記錄數
        int lineSize = 10 ;
        // 2、定義一個當前是第幾頁
        int currentPage = 1 ;
        // 計算出總頁數
        int pageSize = 0 ;
        // 總記錄數 / 每頁顯示的記錄數
        int allRecorders = 30 ;
    %>
    <%
        // 接收傳過來的當前頁
        try
        {
            currentPage = Integer.parseInt(request.getParameter("cp")) ;
        }
        catch(Exception e)
        {}
    %>
    <%
        final String DBDRIVER = "com.mysql.jdbc.Driver" ;
        final String DBURL = "jdbc:mysql://127.0.0.1:3306/mydb" ;
        final String DBUSER = "root" ;
        final String DBPASSWORD = "123456" ;
        Connection conn = null ;
    %>
    <%
        try
        {
            Class.forName(DBDRIVER) ;
            conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
             if(!conn.isClosed()) 
             {System.out.println("Succeeded connecting to the Database!");}
           else{
            System.out.println("not Succeeded connecting to the Database!");
            }

            PreparedStatement pstmt = null ;
            String sql = "SELECT COUNT(id) from person" ;

            pstmt = conn.prepareStatement(sql) ;
            ResultSet rs = pstmt.executeQuery() ;
            if(rs.next())
            {
                allRecorders = rs.getInt(1) ;
            }
            rs.close() ;
            pstmt.close() ;

            // 計算總頁數
            pageSize = (allRecorders+lineSize-1)/lineSize ;

            sql = "SELECT id,uid,name,password FROM person" ;
            pstmt = conn.prepareStatement(sql) ;
            rs = pstmt.executeQuery() ;
    %>
    <script language="javaScript">
        function openPage(curpage)
        {
            document.spage.cp.value = curpage ;
            // alert(cupage) ;
            document.spage.submit() ;
        }
        function selOpenPage()
        {
            document.spage.cp.value = document.spage.selpage.value ;
            document.spage.submit() ;
        }
    </script>
    <form name="spage" action="<%=jspUrl%>">
        <input type="button" value="首頁" onClick="openPage(1)" <%=currentPage==1?"disabled":""%>>
        <input type="button" value="上一頁" onClick="openPage(<%=currentPage-1%>)" <%=currentPage==1?"disabled":""%>>
        <input type="button" value="下一頁" onClick="openPage(<%=currentPage+1%>)" <%=currentPage==pageSize?"disabled":""%>>
        <input type="button" value="尾頁" onClick="openPage(<%=pageSize%>)" <%=currentPage==pageSize?"disabled":""%>>
        <input type="hidden" name="cp" value="">
        <font color="red" size="5"><%=currentPage%></font>
        /
        <font color="red" size="5"><%=pageSize%></font>
        跳轉到
            <select name="selpage" onChange="selOpenPage()">
            <%
                for(int x=1;x<=pageSize;x++)
                {
            %>
                <option value="<%=x%>" <%=currentPage==x?"selected":""%>><%=x%></option>
            <%
                }   
            %>
            </select></form>
    <table border="1" width="80%">
    <tr>
        <td>編號</td>
        <td>登陸名稱</td>
        <td>姓名</td>
        <td>密碼</td>
        <td colspan="2">操作</td>
    </tr>
    <%
            int i = 0 ;
            for(int x=0;x<(currentPage-1)*lineSize;x++)
            {
                rs.next();
            }
            // 對於輸出代碼之前要求按顯示的頁數空出
            for(int x=0;x<lineSize;x++)
            {
                if(rs.next())
                {
                    i++ ;
                    int id = rs.getInt(1) ;
                    String userid = rs.getString(2) ;
                    String name = rs.getString(3) ;
                    String password = rs.getString(4) ;
        %>
                <tr>
                    <td><%=id%></td>
                    <td><%=userid%></td>
                    <td><%=name%></td>
                    <td><%=password%></td>
                    <td>更新</td>
                    <td>刪除</td>
                </tr>
        <%
                }
            }
            rs.close() ;
            pstmt.close() ;
            if(i==0)
            {
    %>
                <tr>
                    <td colspan="6">沒有任何數據!!</td>
                </tr>
    <%
            }
    %>
    </table>
    <%
        }
        catch(Exception e)
        {
    %>
            <h2>系統出錯!!!</h2>
    <%
        }
        finally
        {
            conn.close() ;
        }
    %>
</center>
</body>
</html>

將此Jsp文件放置在

/usr/local/apache-tomcat-8.5.30/webapps/my

然後在
這裏寫圖片描述

在可以和host通信的機器上,進行測試

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章