1. 程式人生 > >Web開發學習之路--Eclipse+Tomcat+mysql之初體驗

Web開發學習之路--Eclipse+Tomcat+mysql之初體驗

    學習了一段時間android,正好要用到android和伺服器之間的互動,既然要學習android,那麼就涉獵下伺服器端的開發了,以前學過php,用thinkphp很快可以搭建起來,但是android是java的,web用java來寫不是更好,主要實現聊天的話得需要socket長連線,用php不好整。既然要學習Web開發,那最開始的搭建伺服器最最根本了,這裡用了eclipse+tomcat+mysql來實現之。

    首先下載eclipse了,這裡我用的4.4.1的版本,tomcat7.0,至於這個eclipse+tomcat的環境的話相信網上的資料已經非常的多了,這裡就不介紹了。關於mysql可以參考這裡:

http://www.cnblogs.com/macro-cheng/archive/2011/10/25/mysql-001.html。特別注意的是,下載安裝好了之後會有彈出來臨時的密碼,這個需要記住的。

    這裡假設已經安裝搭建好了環境了。啟動eclipse,然後新建一個tomcat的server:


    接著next


    這裡選擇了tomcat7.0,然後按照要求來,因為我已經建立了一個dynamic的web,所以新增到server中就好了。


    好了,這樣server就建立好了,接著我們建立一個工程:


    按照步驟一步一步來

  

    已經建立了hello,所以這裡建立hello1,接著下一步:


    自動新增web.xml用來配置。接著把hello1新增到server中去,通過Add and Remove,如下:


    接著new一個index.jsp檔案:


    然後新增程式碼:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hello</title>
</head>
<body>
	這是我們第2個web專案,哈哈
</body>
</html>

    執行看下效果:


    好了,基本上環境都搭建好了。

    先在mysql 資料庫裡面新建下表:一般mysql安裝在/usr/local/mysql/bin下,cd 到該目錄下,執行命令:

    ./mysql -u root -p

    進入到mysql中,執行show databases;檢視當前的database,新建test資料庫:

   接著我們新建一個表Student:


     然後查看下錶建立的沒有,執行show tables;


    可以發現裡面有了student表。 接著插入兩個student的資訊;


    再查看下錶中的資訊:


    可以發現已經有了兩個student的資訊了。

    然後參考了網上的程式碼,簡單實現下資訊的增刪改查,並解決了中文亂碼的問題:

    首先新建Student類:

package com.example;

public class Student {
	private String sid;  
    private String name;  
    private String age;  
  
    public String getSid() {  
        return sid;  
    }  
  
    public void setSid(String sid) {  
        this.sid = sid;  
    }  
  
    public String getName() {  
        return name;  
    }  
  
    public void setName(String name) {  
        this.name = name;  
    }  
  
    public String getAge() {  
        return age;  
    }  
  
    public void setAge(String age) {  
        this.age = age;  
    }  

}

    最簡單的設定和獲取id,name和age的方法。

    接著是連線資料庫,更新資訊,查詢資訊的方法:

package com.example;
import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.ResultSet;  
import java.sql.SQLException;  
import java.sql.Statement;  
import java.util.ArrayList;

import com.example.Student;

public class ConnectDB {
	private static Connection conn = null;
	private static Statement stmt = null;
	private static ResultSet rs = null;
	
	public static void startConnect() {
		try {
			Class.forName("com.mysql.jdbc.Driver");
			try {
				conn = DriverManager.getConnection(
						"jdbc:MySQL://127.0.0.1:3306/test", "root", "你的密碼"); 
			} catch (SQLException e) {
				// TODO: handle exception
				e.printStackTrace();
			}
		} catch (ClassNotFoundException e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}
	
	public static void endConnect() throws SQLException {   
        //關閉連線  
        if (rs != null) {  
            rs.close();  
            rs = null;  
        }  
        if (stmt != null) {  
            stmt.close();  
            stmt = null;  
        }  
        if (conn != null) {  
            conn.close();  
            conn = null;  
        }  
    }  
  
    public static void update(String sql) throws SQLException {   
  
        //資料庫更新  
        startConnect(); 
        stmt = conn.createStatement();  
        stmt.executeUpdate(sql);  
        endConnect();  
    }  
  
    public static ArrayList getList1(String sql) throws SQLException {  
  
        //資料庫查詢  
        ArrayList list = new ArrayList();  
        startConnect(); 
        stmt = conn.createStatement();  
        rs = stmt.executeQuery(sql);  
        while (rs.next()) {  
            Student st = new Student();  
            st.setSid(rs.getString("sid"));  
            st.setName(rs.getString("sname"));
            st.setAge(rs.getString("sage"));  
            list.add(st);  
        }  
        endConnect();  
        return list;  
    }  
  
}
    然後實現幾個簡單的jsp程式碼,首先是list.jsp:
<%@page import="com.example.Student"%>
<%@page import="com.example.ConnectDB"%>
<%@ page language="java" import="com.example.ConnectDB,com.example.Student,java.util.*"  
    pageEncoding="gbk"%>   
    <%--jsp標頭檔案,包括引入的包和支援語言,gbk為支援中文--%>  
<%  
	ArrayList list = ConnectDB.getList1("select sid,sname,sage from student"); //獲得test表中所有資料並以列表形式返回  
%>  
  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>  
    <head>  
        <title>My JSP 'list.jsp' starting page</title>  
    </head>  
    <body>  
        <input type="button" name="bottom" value="新增新學生"  
            onclick="javascript:window.location.href='add.jsp'">  
        <br>  
        <br>  
        <table border="1">  
            <tr>  
                <td>  
                    編號  
                </td>  
                <td>  
                    姓名  
                </td>  
                <td>  
                    年齡  
                </td>  
                <td>  
                    操作  
                </td>  
            </tr>  
            <%  
                    {  
                    for (Iterator it = list.iterator(); it.hasNext();) {  
                        Student s = (Student) it.next();  
            %>  
            <tr>  
                <td><%=s.getSid()%></td>  
                <td><%=s.getName()%></td>  
                <td><%=s.getAge()%></td>  
                <td>  
                    <a href="update.jsp?sid=<%=s.getSid()%>">修改</a>  
                    <a href="delete.jsp?sid=<%=s.getSid()%>"  
                        onclick="return confirm('確定刪除?');">刪除</a>  
                </td>  
            </tr>  
            <%  
                }  
                }  
            %>  
        </table>  
    </body>  
</html>  

    這裡通過呼叫了ConnectDB的getlist1方法來顯示目前資料庫test的student表中的資料資訊。接著是新增的jsp:
<%@ page language="java" pageEncoding="utf-8"%>  
<%
	request.setCharacterEncoding("UTF-8"); 
	response.setCharacterEncoding("UTF-8"); 
	response.setContentType("text/html; charset=utf-8"); 
%>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>  
    <head>  
        <title>add</title>  
    </head>  
    <body>  
        <form action="addInfo.jsp" method="post">  
            提交到addinfo.jsp  
            <p>  
                新增學生:  
            </p>  
            SID:  
            <input type="text" name="sid">  
            <br>  
            <br>  
            姓名:  
            <input type="text" name="sname">  
            <br>  
            <br>  
            年齡:  
            <input type="text" name="sage">  
            <br>  
            <br>  
            <input type="submit" name="submit" value="提交">  
        </form>  
    </body>  
</html>  
    這裡把資料提交到addinfo.jsp:
<%@page import="com.example.ConnectDB"%>
<%@ page language="java" import="com.example.ConnectDB" pageEncoding="UTF-8"%>  
<%  
	request.setCharacterEncoding("UTF-8"); 
	response.setCharacterEncoding("UTF-8"); 
	response.setContentType("text/html; charset=utf-8"); 

	String sid=new String(request.getParameter("sid").getBytes("UTF-8"));   
 	String name = new String(request.getParameter("sname").getBytes("UTF-8"));  
 	String age = new String(request.getParameter("sage").getBytes("UTF-8"));  
 	ConnectDB.update("insert into student (sid,sname,sage) values ('"+sid+"','"+name+"','"+age+"')");  
 	response.sendRedirect("list.jsp");
%>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>  
    <head>  
        <title>My JSP 'addinfo.jsp' starting page</title>  
    </head>  
    <body>  
        新增成功!<br>  
    </body>  
</html>  

    接著是delete.jsp
<%@ page language="java" import="com.example.ConnectDB" pageEncoding="gbk"%>  
<%  
	ConnectDB.update("delete from student where sid ="+request.getParameter("sid")); //獲得要刪除人的sid並刪除  
 	response.sendRedirect("list.jsp");  //轉到list.jsp頁面  
%>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>  
    <head>  
        <title>My JSP 'delete.jsp' starting page</title>  
    </head>  
    <body>  
        This is my JSP page.<br>  
    </body>  
</html>

    基本上就這些了,更新的jsp就不寫了。執行結果如下:


    通過這個例子基本上關於web的簡單工程建立啊,修改資料庫之類的都基本上可以去玩了,那麼之後就可以搭建web和前段時間研究的仿微信的android app可以互動了。