JavaEE-2020-02-展示层-MVC模式

MVC模式-展示层

展示层简介

展示层的作用是与用户交互信息. 向用户展示信息, 接收用户的输入.

对于系统之间的集成, 展示层的作用是与其他系统的交互接口. 因此有时展示层也称为业务接入层, 负责与其他系统的对接业务.

对于人类社会, 企业对外交流的(前台)窗口相当于展示层. 例如, 银行的营业网点(展示层), 负责接待客户. 真正对账户余额做变更的是银行的后台系统.

MVC模式

展示层常用的模式是MVC(Model-View-Controller). 由模型(Model), 视图(View), 控制器(Controller)构成.

  • 模型代表业务领域对象.
  • 视图代表向用户的展示信息 - 模型的信息.
  • 控制器接收用户的输入, 协调模型和视图的变化. - 转告模型, 模型根据输入发生变化.

MVC的执行过程为:

  • 视图向用户展示信息. 例如: 请输入存款数量.
  • 控制器接收用户的输入. 例如: 用户输入200.
  • 控制器把用户输入转告给模型. 例如: 把200给账户.
  • 模型根据输入转变状态. 例如: 账户余额增加200.
  • 控制器选择展现给用户的视图. 例如: 负责显示账户余额的视图.
    • 同时告知视图, 模型状态已经发生变化.
  • 视图向用户展示模型的信息. 例如: 账户余额5200.

展示层的构成

采用服务器动态生成网页技术时, 展示层包括:

  • 浏览器中的网页

  • 服务器中生成网页的程序

展示层关键技术

浏览器传递一个参数给服务器

HTML text 传递一个参数给服务器, URL与当前页面相同路径, 资源名为login. 向服务器传递的参数的名称是user_name, 参数的值是用户输入的.

<form action="login" method="post">
 <input type="text" name="user_name" required>
 <input type="submit" value="提交">
</form>
服务器接收数据

Servlet应用服务器执行Servlet, 其中接收浏览器传来的参数user_name的代码如下:

String username = request.getParameter("user_name");
服务器进行业务处理

服务器进行业务处理, 更新模型的状态. 通常是标准的Java程序, 不含有HTTP/HTML相关的技术. 本示例中什么都没处理.

服务器返回新视图

服务器经过复杂的业务处理, 更新模型的状态后, 把模型的新状态, 这里假设是在"Hello" + username, 传递给视图, 例如jsp文件/WEB-INF/view/hello.jsp.

request.setAttribute("message", "Hello" + username);
request.getRequestDispatcher("/WEB-INF/view/hello.jsp").forward(request, response);

向用户展示结果的新视图/WEB-INF/view/hello.jsp内容如下

<%   //java代码写在这里, 读取request传递来的参数
     String message = request.getAttribute("message");
%>
<h1><%=message%>/h1>
附加知识点: 浏览器向服务器传递数组
浏览器传递多个参数给服务器

HTML Checkbox传递多个参数数据. 向服务器传递的参数的名称是subject, 参数的值是用户输入的.

<input type="checkbox" name="subject" value="subject1" />subject1
<input type="checkbox" name="subject" 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值