用JSP开发的Web应用模型可以分为Model1和Model2

对于小型的Web应用,通常可以使用模型1来完成。

模型1可以分为两种方式:

一种是完全使用JSP页面来开发Web应用;

另一种是使用JSP页面和JavaBean相结合的方式。由JSP页面来接收客户端请求,用JavaBean或其它服务来完成业务逻辑和生成返回页面。

实战:Model1模式录入商品信息

1、构建javabean对象(Goods.java)

package com.wuyudong;
public class Goods {
private String name;
private double price;
private String description;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
} }

2、创建GoodsDao类来封装对数据库的操作

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement; public class GoodsDao {
public void saveGoods(Goods goods) {
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/db_database05";
Connection conn = DriverManager.getConnection(url, "root",
"wuyudong");
String sql = "insert into tb_goods(name,price,description)values(?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, goods.getName());
ps.setDouble(2, goods.getPrice());
ps.setString(3, goods.getDescription());
ps.executeUpdate();
ps.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
} }

index.jsp文件

<%@ page language="java" contentType="text/html" pageEncoding="GBK"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<form action="service.jsp" method="post" onsubmit="return save(this);">
<table border="1" align="center" width="300">
<tr>
<td align="center" colspan="2"><br>
<h1>录入商品信息</h1></td>
</tr>
<tr>
<td align="right">商品名称</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td align="right">价 格:</td>
<td><input type="text" name="price"></td>
</tr>
<tr>
<td align="right">商品描述:</td>
<td><textarea rows="3" cols="30" name="description"></textarea></td>
</tr>
<tr>
<td align="center" colspan="2"><input type="submit" value="提 交">
<input type="reset" value="重 置"></td>
</tr>
</table>
</form>
</body>
</html>

service.jsp用于处理表单请求并向数据库中添加数据

<%@ page language="java" contentType="text/html" pageEncoding="GBK"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("GBK");
%>
<jsp:useBean id="goods" class="com.wuyudong.Goods"></jsp:useBean>
<jsp:setProperty property="*" name="goods" />
<jsp:useBean id="goodsDao" class="com.wuyudong.GoodsDao"></jsp:useBean>
<%
goodsDao.saveGoods(goods);
%>
<a href="index.jsp">返回添加页面</a>
</body>
</html>

在模型2中,使用了JSP、JavaBean和Servlet三种技术。

其中,Servlet扮演一个控制者的角色。

  1. 浏览器的请求首先发送给Servlet;
  2. Servlet执行流程控制,并根据需要创建JavaBeans对象,这些JavaBeans对象完成诸如访问数据库等服务,并返回处理结果;
  3. 最后Servlet再将处理结果交由JSP文件生成网页返回给客户端。

在模型2中,JSP文件不再处理业务逻辑。  它的主要功能是生成返回给客户端的网页。

在模型2中,各个开发者的角色划分非常明确。  因此,对于复杂的Web应用开发,使用模型2的优点不言而喻。

(但对于小型应用,还是使用模型1更简单)

MVC模型

MVC模型是一种将应用分解成三个独立部分的通用模型(并不单指JSP应用)。

这三个部分分别是:

模型(Model):描述系统的数据

视图(view):数据的显示,包括图形、文本和  文件输出等;

控制器(Controller):获取系统的输入,控制系  统的执行;

JSP模型2其实就是一种MVC体系结构,也称为MVC模型2。

其中,Servlet处理所有请求,并执行业务逻辑,相当于控制器(Controller)的作用;

而JavaBeans用于操作各种数据和对象,相当于模型(Model)。

JSP文件用于生成返回给客户端的页面,则相当于视图组件(View)。

实战:Model2录入商品信息

index.jsp

<body>
<form action="GoodsServlet" method="post" onsubmit="return save(this);">
<table border="1" align="center" width="300">
<tr>
<td align="center" colspan="2">
<br><h1>录入商品信息</h1>
</td>
</tr>
<tr>
<td align="right">商品名称:</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td align="right">价 格:</td>
<td><input type="text" name="price"></td>
</tr>
<tr>
<td align="right">商品描述:</td>
<td><textarea name="description" cols="30" rows="3"></textarea></td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="submit" value="提 交">
<input type="reset" value="重 置">
</td>
</tr>
</table>
</form>
</body>

GoodsServlet类

package com.wuyudong;

import java.io.IOException;
import java.io.PrintWriter; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class GoodsServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 291800654190966979L; @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html");
resp.setCharacterEncoding("GBK");
req.setCharacterEncoding("GBK"); PrintWriter out = resp.getWriter(); String name = req.getParameter("name");
String price = req.getParameter("price");
String description = req.getParameter("description"); Goods goods = new Goods();
goods.setName(name);
goods.setPrice(Double.valueOf(price));
goods.setDescription(description); GoodsDao goodsDao = new GoodsDao();
goodsDao.saveGoods(goods);
out.print("保存商品成功!");
out.flush();
out.close();
}
}

web.xml配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>GoodsServlet</servlet-name>
<servlet-class>com.wuyudong.GoodsServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>GoodsServlet</servlet-name>
<url-pattern>/GoodsServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

JSP Model模式的更多相关文章

  1. 十五 JSP开发模式&MVC设计模式

    JSP开发模式: JavaBean + JSP  : 缺点:页面代码过多,不利于维护,JSP页面代码变得臃肿 Servlet + JavaBean + JSP :MVC设计模式 M:model   模 ...

  2. JSP内置标签 JSP中JavaBean标签 JSP开发模式 EL和JSTL快速入门

    2 JSP内置标签(美化+业务逻辑)   1)为了取代<%%>脚本形式,使用JSP标签/JSP动作,目的:与JSP页面的美化,即JSP面页都是由标签组成,不再有其它的内容   2)JSP内 ...

  3. JSP运行过程 JSP脚本 静态动态包含 jsp指令 jsp内置对象jsp四大作用域 jsp动作元素 EL表达式 JSTL 设计模式 JSP开发模式 EL内置对象

    Day38 JSP JSP的运行过程具体如下: (1)客户端发出请求,请求访问JSP文件. (2)JSP容器先将JSP文件转换成一个Java源文件(Java Servlet源程序),在转换过程中,如果 ...

  4. Tip: JSP开发模式

    SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. JSP+JavaBean模式适合开发业务 ...

  5. JavaWeb -- JSP+JavaBean模式

    SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. JSP+JavaBean模式适合开发业务 ...

  6. 三种Model模式

    目前项目中可能出现的三种Model模式,对于我们现在开发的一个项目,我觉得使用DDD的思想来设计模型比较清晰,使用DDD的思想把模型model分成了如下三种:ViewModel,它与页面相关,Doma ...

  7. JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  8. JSP——MVC模式+Servlet生命周期

    设计模式MVC模式 模型MODEL操作数据库的增删改查——javaBean 视图VIEW显示数据——JSP 控制器CONTROLLER响应用户的——servlet Model(模型),是程序的主体部分 ...

  9. JavaEE——JSP开发模式(model1)

    model1开发模式 工作流程: ①浏览器请求,JSP页面接收 ②JSP根据请求和JavaBean进行交互 ③JavaBean进行业务处理,JDBC操纵数据库 ④JSP将请求结果返回浏览器页面 利用m ...

随机推荐

  1. [转]VS2010中水晶报表安装应用及实例

    基本分类如下:第一部分:VS2010简介VS2010是微软的提供的一套完整的开发环境,功能也是相当的大微软宣布了下一代开发工具和平台的正式名称,分别称为“Visual Studio Team Syst ...

  2. SmartJS 第一期(0.1)发布 - AOP三剑客

    隔了好久才终于又发布了一点东西,SmartJS是最近才开始搞的一个开源js库,目的是做一些比较有特点的事情(smartjs暂时也是依赖于jquery). SmartJS的内容规划比较多,也无法在短时间 ...

  3. PE渲染引擎 三

    加进了SSAO,讲真这个东西,很容易忽略他的存在.并且动态的话,会有闪烁. 下面两幅图,单独给你看一张,应该看不出去区别....依旧是浓重风格,这个tongmaping,哪位大神指教下.....

  4. Unity3D Android手机开发环境配置,可真机发布调试

    此方法配置好,在可以在unity直接发布到手机上,并可以实时调试. 1.配置eclipse环境:首先在官网下载安装包:http://developer.android.com/sdk/index.ht ...

  5. DDD:Repository和UnitOfWork的生命周期问题

    UnitOfWork UnitOfWork是一种有状态的.用例级别的对象.如果不采用ORM是不会使用UnitOfWork模式的, Repository Repository是一种特殊的领域服务,因此是 ...

  6. gcview使用

    1.下载适用的版本 https://github.com/chewiebug/GCViewer Supported verbose:gc formats are: Oracle JDK 1.8 -Xl ...

  7. 探索jdk8之ConcurrentHashMap 的实现机制

    在介绍ConcurrentHashMap源码之前,很有必要复习下java并发编程中的一些基础知识,比如内存模型等. 存储模型 并发编程中的三个概念 1.原子性 2.可见性 3.重排序 对HashMap ...

  8. Mysql学习笔记(五)数学与日期时间函数

    学习内容: 1.数学函数 2.日期时间函数 这些函数都是很常用的函数...在这里进行简单的介绍... 数学函数: mysql); //取绝对值函数 这个函数可安全地使用于 BIGINT 值. mysq ...

  9. 谈Mysql索引

    myisam和innodb的索引有什么区别? 两个索引都是B+树索引,但是myisam的表存储和索引存储是分开的,索引存储中存放的是表的地址.而innodb表存储本身就是一个B+树,它是用主键来做B+ ...

  10. 手动测试——MTM

    在Test Manager中,测试计划用于管理某个迭代的整个测试工作.包括测试用例.测试结果,计划测试的配置. Test Center分为4个主要活动区域: Plan---用于管理整个测试计划,包括计 ...