天天看點

servlet讀取資料庫資料顯示到jsp表格中問題描述解決過程主要代碼

問題描述

這一篇講到的問題是上一篇文章的下半部分。上一篇已經把資料存儲到資料庫中了,本篇文章将要實作:

1.servlet從資料庫中讀取資料并存為JavaBean對象,插入到list中,然後将list插入到session,将請求轉發到jsp;

2.jsp讀取session裡面的list,把list中的資料顯示在一個表格上。

解決過程

1.servlet擷取資料庫資料比較容易,存為JavaBean對象:用接收到的資料庫資料執行個體化一個JavaBean對象。然後把這些對象插入到list中,用setAttribute的方式将list插入session。

2.可用el、jstl在jsp中顯示session中的list,但是我的機子一直調試不成功,是以采用了正常的get方法讀取資料。原本糾結了很久要用什麼類型的變量存取session中的list,後來發現 “它是什麼就用什麼去讀”。在jsp用**List< Msgjb >**讀取。

主要代碼

1.servlet讀取并插入session:

List< Msgjb > getData()類

List<Msgjb> msglist=new ArrayList<>();
Connection conn=DBConfig.getConnection();
sql="select * from message";
ResultSet rs =null;
PreparedStatement state = conn.prepareStatement(sql);
rs=state.executeQuery();
while(rs.next()){
	Msgjb msg=new Msgjb();
	msg.setName(rs.getString("username"));
	msg.setText(rs.getString("content"));
	msglist.add(msg);
}
           

在doGet中:

HttpSession session=request.getSession(true);
List<Msgjb> msglist=new ArrayList<>();
msglist=getData();
session.setAttribute("msglist", msglist);
           

2.jsp顯示session中的list

<table id="tBody" border="1" cellspacing="0" cellpadding="0">
<% 
	List<Msgjb> list=(List)session.getAttribute("msglist");
	for(int i=0;i<list.size();i++){
		Msgjb ms=list.get(i);
%>
	<tr>
		<td><%=ms.getName() %></td>
		<td><%=ms.getText() %></td>
	</tr>
<%
	}
%>
</table>
           

接下來再把el、jstl好好琢磨一下。