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可以參考這裡:
這裡假設已經安裝搭建好了環境了。啟動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可以互動了。