1. 程式人生 > >續上 編寫Servlet查詢資料庫,列出員工資訊列表

續上 編寫Servlet查詢資料庫,列出員工資訊列表

編寫一個Servlet,通過JDBC連線MySQL資料庫,在網頁中顯示資料庫資訊。

此部分續上一篇:使用JDBC新增員工資訊。

後面的步驟為在原有專案基礎上新增的。

Step1:新建一個ListEmpServlet.java

package web;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ListEmpServlet extends HttpServlet{
	protected void service(HttpServletRequest request,
            HttpServletResponse response)
            throws ServletException,IOException{
		//保證正確讀取Post提交來的中文
		request.setCharacterEncoding("utf-8");
		//保證正確輸出中文
		response.setContentType("text/html;charset=utf-8");
		//獲取輸出流物件,並輸出資訊
		PrintWriter out=response.getWriter();
		//獲取表單提交的資料
		//String name= request.getParameter("name");
		//double salary = Double.valueOf(request.getParameter("salary"));
		//int age = Integer.valueOf(request.getParameter("age"));
		//將資料插入到資料庫t_emp表中
		Connection conn = null;
		java.sql.PreparedStatement stat=null;
		try {
			//1、載入MySQL的JDBC的驅動
			Class.forName("com.mysql.jdbc.Driver");
			//2、取得連線的URL,能訪問MySQL資料庫的使用者名稱和密碼
			String url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8";
			String username = "root";
			String password = "123456"; 
			//3、建立與MySQL資料庫的連線類的例項
			conn=DriverManager.getConnection(url,username,password);
			stat=conn.prepareStatement("select * from t_emp");
			ResultSet rs = stat.executeQuery();
			//4、輸出表格之前的頁面標記
			out.println("<HTML>");
			out.println("<HEAD></HEAD>");
			out.println("<BODY>");
			out.println("<table borde='1' cellpadding='0'"+
			             "cellspacing='0' width='60%'");
			out.println("<caption>員工資訊列表</caption>");  //定義表格標題
			out.println("<tr><td>ID</td><td>姓名</td><td>薪水</td>"+
			               "<td>年齡</td></tr>");
			//3、遍歷結果集,以表格形式輸出資料
			while(rs.next()){
				int id=rs.getInt("id");
				String name=rs.getString("name");
				double salary=rs.getDouble("salary");
				int age=rs.getInt("age");
				out.println("<tr><td>"+
				            id+"</td><td>"+
				            name+"</td><td>"+
				            salary+"</td><td>"+
				            age+"</td><td>");
			}
			out.print("</table>");
			out.print("<a href='addEmp.jsp'>增加員工資訊</a>");
			out.println("</body>");
			out.println("</HTML>");
		} catch (Exception e) {
			e.printStackTrace();
			out.print("系統繁忙,稍後重試");
		}finally{
			if(stat!=null){
				try {
					stat.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
				
			}
		}
	}
}

step2 : 在原有的web.xml檔案中新增

如下:

 <servlet>
  	<servlet-name>listEmpServlet</servlet-name>
  	<servlet-class>web.ListEmpServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>listEmpServlet</servlet-name>
  	<url-pattern>/list</url-pattern>  <!-- 之前必須是addEmp.jsp,提交表單後出現在位址列的地址 -->
  </servlet-mapping>

step3:部署,在瀏覽器檢視

http://localhost:8084/web02_exec/list