Web开发之MVC模式实现学生课程信息管理系统
Web开发之MVC模式实现学生课程信息管理系统
缺点: 1、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。 2、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。 3、由于它没有明确的定义,所以完全理解MVC并不是很容易。使用MVC需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。 4、MVC并不适合小型甚至中等规模的应用程序,花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。
下面是我用javabean+jsp+servlet来实现一个实现一个简单的web项目—一个简易的学生课程信息的管理系统。 其中: JavaBean对应于Model层 Jsp对应于View层 Servlet对应于Controller层
这三者之间的调用关系如下:
其他功能的实现大体一致,就不一一展示了。 项目的目录如下:
Jsp文件如下:
项目部分重要代码如下: 课程实体类代码: public class Course1 { private String cid; public String cxf; public String cmax; public String cgrade; public String ctea; public String cname;
public String getCid() { return cid; } public void setCid(String cid) { this.cid = cid; } public String getCxf() { return cxf; } public void setCxf(String cxf) { this.cxf = cxf; } public String getCmax() { return cmax; } public void setCmax(String cmax) { this.cmax= cmax; } public String getCgrade() { return cgrade; } public void setCgrade(String cgrade) { this.cgrade = cgrade; } public String getCtea() { return ctea; } public void setCtea(String ctea) { this.ctea = ctea; } public String getCname() { return cname; } public void setCname(String cname) { this.cname = cname; }
添加课程的具体函数如下:
添加功能实现的servlet的主要代码: protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String couid = req.getParameter(“couid”); String couxf =req.getParameter(“couxf”); String coumax = req.getParameter(“coumax”);
String cougrade = req.getParameter("cougrade"); String coutea= req.getParameter("coutea"); String couname = req.getParameter("couname"); Course1 course1=new Course1(); course1.setCid(new String(couid.getBytes("ISO-8859-1"), "UTF-8")); course1.setCxf(new String(couxf.getBytes("ISO-8859-1"), "UTF-8")); course1.setCmax(new String(coumax.getBytes("ISO-8859-1"), "UTF-8")); // 转值,中文需要转换为utf-8 course1.setCgrade(new String(cougrade.getBytes("ISO-8859-1"), "UTF-8")); course1.setCtea(new String(coutea.getBytes("ISO-8859-1"), "UTF-8")); course1.setCname(new String(couname.getBytes("ISO-8859-1"), "UTF-8")); course1Dao dao=new course1Dao(); dao.addcourse(course1); req.getRequestDispatcher("FindServlet.do").forward(req, resp);
} 连接数据库的代码:
jsp页面的主要代码: 课程管理
课程信息:
</tr> <% List<Course1> list= (List<Course1>)request.getAttribute("list"); List<Course2> list2= (List<Course2>)request.getAttribute("list2"); if(list == null || list.size() < 1){ out.print("<script language=javascript>alert(没有数据);</script>"); }else{ for(Course1 Course1:list){ %> <tr align="center"> <td> <%= Course1.getCid() %></td> <td> <%= Course1.getCxf() %></td> <td> <%= Course1.getCmax() %></td> <td> <%= Course1.getCgrade() %></td> <td> <%= Course1.getCtea() %></td> <td> <%= Course1.getCname() %></td> <td><a href="updateServlet.do?id=<%=Course1.getCid()%>">修改课程信息</a> </td>