MVC笔记

mvc设计模式之己见(一)

    经过大量总结分析后发现,成功的项目往往程序结构比较清晰,代码可重用性较好,开发过

程中分工比较明确,而失败的项目往往存在结构混乱,代码冗余,开发分工不明确。对成功的项

目根据体系结构大概分为两类:Model I Model II

 

    先来看Model I是什么?

Model I 体系结构使用 JSP 页面和 JavaBean 来开发 Web 应用程序。用JSP页面来接受请求和显示

       页面,用JavaBean来处理相关的逻辑。

Model I 体系结构包括多个用户可与之交互的页面,客户端能够直接访问加载到服务器上的页面。

Model I Web 应用程序由复杂的Web 逻辑组成,并链接至 Web 应用程序的其他页面。

特点:编写容易,有一定的可重用性,层次结构不够清晰。

应用:开发简单的应用程序。

实例:从产品信息表查询某个产品。

示例:产品信息beanProductBean.java(完整代码)

 

View Code
 1 package example_sg_1;
2
3 public class ProductBean {
4 private String productname = null;
5 private String producttype = null;
6 private int productprice = 0;
7 private String brand = null;
8 private String description = null;
9 public ProductBean() {
10
11 }
12
13 public void setProductname(String prodname) {
14 this.productname = prodname;
15 }

 

 

示例:数据库连接, ConnBean.java

View Code
 1 package example_sg_1;
2 import java.sql.*;
3 public class ConnBean {
4 Connection con = null;
5 private static ConnBean me = new ConnBean();
6 private ConnBean() {
7 }
8 public static ConnBeannewInstance() {
9 return me;
10 }
11 public Connection getConnDB() {
12 try {
13 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
14 con = DriverManager.getConnection("jdbc:odbc:accp", "", "");
15 }
16 catch (Exception e) {
17 e.printStackTrace();
18 }
19 return con;
20 }

 

   示例:查询bean, ColProduct.java(完整代码)

View Code
 1 package example_sg_1;
2
3 import java.util.*;
4 import java.sql.*;
5
6 public class ColProduct {
7 private Connection con = null;
8 private ResultSet rs = null;
9 private Statement stmt = null;
10 PreparedStatement pstmt = null;
11 private ConnBean cBean = ConnBean.newInstance();
12 public Collection getProduct(String sql) {
13 Collection col = new ArrayList();
14 try {
15 con = cBean.getConnDB();
16 stmt = con.createStatement();
17 rs = stmt.executeQuery(sql);
18 while (rs.next()) {
19 ProductBean product = new ProductBean();
20 product.setProductname(rs.getString(2));
21 product.setProducttype(rs.getString(3));
22 product.setProductprice(rs.getInt(4));
23 product.setBrand(rs.getString(5));
24 product.setDescription(rs.getString(6));
25 col.add(product);
26 }
27 }
28 catch (Exception e) {
29 e.printStackTrace();
30
31 }
32 try {
33 rs.close();
34 stmt.close();
35 con.close();
36 }
37 catch (Exception e) {
38 e.printStackTrace();
39
40 }
41 return col;
42 }
43 }

 

示例:查询结果页面, colproduct.jsp(完整代码)

View Code
 1 <%@page contentType="text/html; charset=GBK"%>
2 <%@page import="java.util.*"%>
3 <%@page import="example_sg_1.*"%>
4 <html>
5 <head>
6 <title>ProductDetails</title>
7 </head>
8 <body bgcolor="#ffffff">
9 <h1 align="center">产品详细信息</h1>
10 <jsp:useBean id="product" scope="session" class="example_sg_1.ColProduct"/>
11 <%!String p_productID, p_productname, p_producttype, p_brand, p_description;%>
12 <%!int p_productprice;%>
13 <%
14 p_productID = request.getParameter("txtproductid");
15 String sql = "select * from productdetails where ProductId='"+p_productID+"'";
16 Collection col = product.getProduct(sql);
17 Iterator it = col.iterator();
18 ProductBean temp = new ProductBean();
19 if (it.hasNext()) {
20 temp = (ProductBean) it.next();
21 p_productname = temp.getProductname();
22 p_producttype = temp.getProducttype();
23 p_productprice = temp.getProductprice();
24 p_brand = temp.getBrand();
25 p_description = temp.getDescription();
26 }
27 %>
28 <b> 产品名称:
29 <%=p_productname %></b>
30 <br/>
31 <b> 产品类型:
32 <%=p_producttype %></b>
33 <br/>
34 <b>产品价格:
35 <%=p_productprice %>
36 </b>
37 <br/>
38 <b>品牌:
39 <%=p_brand %>
40 </b>
41 <br/>
42 <b>说明:
43 <%=p_description %>
44 </b>
45 <br/>
46 </body>
47 </html>

 

我发现Model I的缺陷:

层次结构不够清晰;

对用户请求控制不方便;

修改困难等。

posted @ 2011-08-30 18:53  死靈天使  阅读(179)  评论(0编辑  收藏  举报