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>
课程ID 课程学分 课程容量 学生成绩 教师 课程名
经验分享 程序员 微信小程序 职场和发展