JSP Model模式
用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扮演一个控制者的角色。
- 浏览器的请求首先发送给Servlet;
- Servlet执行流程控制,并根据需要创建JavaBeans对象,这些JavaBeans对象完成诸如访问数据库等服务,并返回处理结果;
- 最后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模式的更多相关文章
- 十五 JSP开发模式&MVC设计模式
JSP开发模式: JavaBean + JSP : 缺点:页面代码过多,不利于维护,JSP页面代码变得臃肿 Servlet + JavaBean + JSP :MVC设计模式 M:model 模 ...
- JSP内置标签 JSP中JavaBean标签 JSP开发模式 EL和JSTL快速入门
2 JSP内置标签(美化+业务逻辑) 1)为了取代<%%>脚本形式,使用JSP标签/JSP动作,目的:与JSP页面的美化,即JSP面页都是由标签组成,不再有其它的内容 2)JSP内 ...
- JSP运行过程 JSP脚本 静态动态包含 jsp指令 jsp内置对象jsp四大作用域 jsp动作元素 EL表达式 JSTL 设计模式 JSP开发模式 EL内置对象
Day38 JSP JSP的运行过程具体如下: (1)客户端发出请求,请求访问JSP文件. (2)JSP容器先将JSP文件转换成一个Java源文件(Java Servlet源程序),在转换过程中,如果 ...
- Tip: JSP开发模式
SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. JSP+JavaBean模式适合开发业务 ...
- JavaWeb -- JSP+JavaBean模式
SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. JSP+JavaBean模式适合开发业务 ...
- 三种Model模式
目前项目中可能出现的三种Model模式,对于我们现在开发的一个项目,我觉得使用DDD的思想来设计模型比较清晰,使用DDD的思想把模型model分成了如下三种:ViewModel,它与页面相关,Doma ...
- JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- JSP——MVC模式+Servlet生命周期
设计模式MVC模式 模型MODEL操作数据库的增删改查——javaBean 视图VIEW显示数据——JSP 控制器CONTROLLER响应用户的——servlet Model(模型),是程序的主体部分 ...
- JavaEE——JSP开发模式(model1)
model1开发模式 工作流程: ①浏览器请求,JSP页面接收 ②JSP根据请求和JavaBean进行交互 ③JavaBean进行业务处理,JDBC操纵数据库 ④JSP将请求结果返回浏览器页面 利用m ...
随机推荐
- 关于welcome-file-list(欢迎页)不起作用的解决办法
今天我遇到了一个问题,就是直接输入http://localhost:8080/xxx-admin/,不是跳转到index.html,而是报404找不到的错误,根据错误信息看明显是没有跳转到index. ...
- [0x00 用Python讲解数据结构与算法] 概览
自从工作后就没什么时间更新博客了,最近抽空学了点Python,觉得Python真的是很强大呀.想来在大学中没有学好数据结构和算法,自己的意志力一直不够坚定,这次想好好看一本书,认真把基本的数据结构和算 ...
- 扩展 IEnumerable<T>,让它根据另一个集合的顺序来排列
假如我有两个集合: public class Teacher { public int Id { get; set; } public string Name { get; set; } } publ ...
- STL中的map/multimap小结
(1)使用map/multimap之前必须包含头文件<map>:#include<map> 并且和所有的关联式容器一样,map/multimap通常以平衡二叉树来完成 (2)n ...
- java--实现将文字生成二维码图片,并在中间附上logo,下方附上文字
前段时间因为工作需要,要实现将一段文字或者url生成二维码,然后中间附上logo,下方正中间附上文字的功能. 上网找了几篇教程学习了下,由于没有保存借鉴的博文链接,所以就没po上参考文章的链接啦,感谢 ...
- [Node.js] Promise,Q及Async
原文地址:http://www.moye.me/2014/12/27/promise_q_async/ 引子 在使用Node/JS编程的时候,经常会遇到这样的问题:有一连串的异步方法,需要按顺序执行, ...
- [linux]重拾linux
起因 因为想重拾起linux,同时需要用docker起几个镜像,用来学习网络知识.本来想直接去阿里云上买,后来一想自己机器上,起一个linux是个不错的选择,毕竟不花钱! 还可以用来做本地测试,学习使 ...
- 关于python中赋值、浅拷贝、深拷贝之间区别的深入分析
当重新学习了计算机基础课程<数据结构和算法分析>后再来看这篇自己以前写的博文,发现错误百出.python内置数据类型之所以会有这些特性,归根结底是它采用的是传递内存地址的方式,而不是传递真 ...
- EFcodeFirst+T4=操纵任意数据库
之前有写过两篇,EF选择Mysql数据源 跟 EF添加ADO.NET实体模型处直接选择Oracle数据源,其方便之处就不多说了,使用DBfirst直接点点点就能与数据库双向更新,而且关键是方便我们使用 ...
- Sprint回顾
1.回顾组织 主题:“我们下次怎么样才能更加认真对待?” 时间:设定为1至2个小时. 参与者:整个团队. 场所:能够在不受干扰的情况下讨论. 秘书:指定某人当秘书,筹备.记录.整理. 2.回顾流程 ...