用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. [原创]与来自facebook的朋友交流

    与来自facebook的朋友交流 老板的儿子在facebook工作,现在正好有个假期回来,老总让我们部门与之进行一次交流.其实主要是他讲一下那边情况,然后我们准备些问题,多扩展一下我们见识. 流程 交 ...

  2. 【转载】solr初体验

    [1]http://cxshun.iteye.com/blog/1039445 由于工作原因,这段时间接触到solr,一个基于lucene的企业级搜索引擎.不怎么了解它的童鞋可以去GOOGLE一下. ...

  3. Sass学习之路:Sass、Compass安装与命令行

    导言 CSS不是一门真正意义上的编程语言,很多编程语言理所当然的特性(比如变量),都不被支持.同时再开发模块化的web项目的时候,也要避免相互干扰.为了弥补CSS的这些不足,就产生了CSS预处理器,S ...

  4. Eclipse中使用Junit编写测试用例

    Eclipse自带Junit插件,不用安装就能在项目中编写测试用例,非常方便. 在项目中添加Junit库 在编写测试用例之前,需要先引入Junit.对项目根目录右键,选择Properties,Java ...

  5. 谷歌联合 Adobe 发布 Noto 字体【免费下载】

    Noto 涵盖了世界上所有主要语言,包括欧洲,非洲,中东,印度语,南亚和东南亚,中亚,美洲和东亚语言.也支持几个少数民族和历史语言.不久前,还发布了针对文.日文.韩文的开源字体——Noto Sans ...

  6. iOS-UIView-设置背景图片4种方式

    一 . 设置UIView的背景图片 1.将图片作为UIView的背景色,该方法过于占内存,不建议使用.     //1.imageNamed方式 self.view.backgroundColor = ...

  7. 转载:全球首个微信小程序(应用号)开发教程!通宵吐血赶稿,每日更新!

    微信应用号(小程序,「应用号」的新称呼)终于来了! 目前还处于内测阶段,微信只邀请了部分企业参与封测.想必大家都关心应用号的最终形态到底是什么样子?怎样将一个「服务号」改造成为「小程序」? 我们暂时以 ...

  8. [JS] JavaScript由浅入深(2) 进阶

    本节,将围绕以下几点来讲. 知识点:多线程.作用域.闭包.this 先顶后看 1.多线程 在不支持H5的浏览器中.使用Concurrent.Thread.js. 在支持H5中,使用WebWork. 在 ...

  9. DotNetCore跨平台~Startup类的介绍

    新宠儿 DotNetCore是.net5.0版本,之所以不叫.net5.0为的就是不让我们把它与前面的.net混为一淡,它将是真正意义的跨平台开发语言,在网上也有相关介绍,中国的一些大牛也发了相关文章 ...

  10. C# 通用验证类 支持 WPF,MVC,Winform

    验证方式,   通过继承 IDataErrorInfo接口 和 DataAnnotations 解释标记语言而实现, 为了能在WPF上通用,所了也要继承属性更改通知接口INotifyPropertyC ...