MVC+三层架构开发模式

Web开发模式

MVC

  • Model:javabean:封装业务数据,模型
  • View:jsp:显示数据,视图
  • Controller:servlet:调度jsp和javabean资源,控制器

三层结构:

  • dao层: 和数据访问相关的操作
  • service层: 和业务逻辑相关的操作
  • web层: 和用户直接交互相关的操作(传接参数,跳转页面)

MVC+三层架构

在这里插入图片描述

个人理解:

  1. service层(业务逻辑层),比如说当我们添加用户时需要判断用户的id是否为空,此时service层负责判断后再调用dao层的方法,dao层只负责对数据的增删查改
  2. servlet负责调用业务逻辑(页面的调度),而不处理业务逻辑。真正处理业务逻辑的是service层。

从servlet->jsp (页面跳转过程)

    //设置编码格式
    response.setContentType("text/html;charset=utf-8");
		request.setCharacterEncoding("utf-8");
		//拿到对象 ,通过调用dao中的方法
		Contact contact=new ContactPerson();
		List<Person> list = contact.search();
		//
		//shift+alt+A  区块选择,按一次进入选择模式,再按一次回来
		/**
		 * ctrl+F  正则替换    ^(.*)$    \1";
		 *                 ^一行表示
		 *                 $结束表示
		 *                 \1匹配里面的一行内容   替换为这个";
		 */
		//将对象保存在域中
		request.setAttribute("contacts",list);
		//跳转到显示页面
		request.getRequestDispatcher("/listContact.jsp").forward(request, response);

**从jsp->servlet
一般我们用 p a g e C o n t e x t . r e q u e s t . c o n t e x t P a t h ∗ ∗ 来 获 取 当 前 路 径 ∗ ∗ / Q u e r y C o n t a c t S e r v l e t ? i d = {pageContext.request.contextPath }**来获取当前路径 **/QueryContactServlet?id= pageContext.request.contextPath/QueryContactServlet?id={con.id}**是页面跳转的同时将id作为参数传递过去

<!-- 直接用EL表达式从域对象中获取数据-->
<c:forEach items="${contacts}" var="con" varStatus="varsta">
		<tr>
			<th>${varsta.count}</th>
			<th>${con.name}</th>
			<th>${con.gender} </th>
			<th>${con.email }</th>
			<th>${con.qq}</th>
		   <td colspan="2" align="center">
		   <a href="${pageContext.request.contextPath }/QueryContactServlet?id=${con.id}">修改</a>
		   <a href="${pageContext.request.contextPath }/DeleteContactServlet?id=${con.id}">删除</a>
       //说明,此处的pageContext.request相当于pageContext.getRequest()方法,其在于先得到request对象,再调用request的方法。
		   </td>
		</tr>
		</c:forEach>

注意:此处设计到EL表达式

语法: 表 达 式 或 变 量 &lt; b r &gt; &lt; f o n t c o l o r = r e d &gt; 表 达 式 / 变 量 是 从 域 对 象 中 得 到 的 , 也 就 是 说 , 我 们 必 须 先 往 域 对 象 中 存 储 &lt; / f o n t &gt; &lt; b r &gt; 输 出 对 象 的 某 个 成 员 : {表达式或变量}&lt;br&gt;&lt;font color=red&gt;表达式/变量是从域对象中得到的,也就是说,我们必须先往域对象中存储&lt;/font&gt;&lt;br&gt; 输出对象的某个成员: <br><fontcolor=red>/</font><br>{student.name},其中student的对象必须有方法getName()

form表单形式:

<form action="${pageContext.request.contextPath }/AddContactServlet" method="post">

项目结构:
在这里插入图片描述
注意:不管是获取数据还是发送数据,都是以对象为基本单位,即JavaBean。

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值