總結一下今天寫的代碼,總覺得有一些需要拿來總結的,這些天一直困擾我的的MVC模式終於被我攻克了,自己寫了一個比較容易理解的測試代碼、
#################################################################
這是模型層
public static Collection<Team> allTeams() throws Exception {
ArrayList<Team> teams = new ArrayList<Team>();//創建集合對象
//從數據庫獲取數據
Connection cn = DataSource.getConnection();
Statement stmt = cn.createStatement();
ResultSet rs = stmt.executeQuery("select * from team");
while(rs.next()) {
Team team = new Team();//創建team對象
//用數據庫取得的數據設置team對象的屬性
team.setId(rs.getInt("id"));
team.setName(rs.getString("name"));
team.setSlogan(rs.getString("slogan"));
team.setLeader(rs.getString("leader"));
teams.add(team);//把team對象放到集合teams中
}
return teams;
}
這是控制層
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
try {
Collection<Team> teams = TeamBusiness.allTeams();
request.setAttribute("teams", teams);
RequestDispatcher rd = request
.getRequestDispatcher("../viewTeams.jsp");
rd.forward(request, response);
} catch (Exception e) {
e.printStackTrace();
RequestDispatcher rd = request
.getRequestDispatcher("../viewTeamsFail.jsp");
rd.forward(request, response);
}
}
這是視圖層
<table border="1" align="center">
<tr><th>組名</th><th>口號</th><th>組長</th></tr>
<%
Collection<Team> teams = (Collection<Team>)request.getAttribute("teams");//這個地方對報警告
Iterator<Team> it = teams.iterator();
while(it.hasNext()) {
Team team = it.next();
%>
<tr>
<td><%=team.getName()%></td>
<td><%=team.getSlogan()%></td>
<td><%=team.getLeader()%></td>
</tr>
<%
}
%>
</table>
學過一點MVC模式的人都基本上能夠很容易的看懂這幾段代碼,我們通過鏈接的訪問servlet,servlet會通過doget的方式獲取信息。然後定向到所要顯示的頁面。自己畫了一張圖容易理解。
最後想要解決相關- Type safety: Unchecked cast from Object to ArrayList<Reply>的問題,自己做的項目報錯,還以爲是這個原因,最後證明與這個毫無關係,這只是簡單的警告而已,意思是當Object類型轉換爲ArrayList類型會有危險。至於什麼危險我也不知道。一下提供幾點解決方案,只是讓自己寫的代碼少一些警告而已,自己感覺沒那個必要
第一:添加@SuppressWarnings("unchecked")
第二:myeclipse的Window->Preferences->Java->Compiler->Errors/Warning->Generic types中Unchecked generic type operation設置爲Ignore。
第三:myeclipse的Window->Preferences->Java->Compiler將Compiler compliance level 設置爲小於1.5。
爲什麼javaeye沒有微軟雅黑這個字體,