总结一下今天写的代码,总觉得有一些需要拿来总结的,这些天一直困扰我的的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没有微软雅黑这个字体,