MVC+三层架构开发模式

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_36639232/article/details/89104836

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
一般我们用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;br&gt;&lt;fontcolor=red&gt;/&lt;/font&gt;&lt;br&gt;{表达式或变量}&lt;br&gt;&lt;font color=red&gt;表达式/变量是从域对象中得到的,也就是说,我们必须先往域对象中存储&lt;/font&gt;&lt;br&gt; 输出对象的某个成员:{student.name},其中student的对象必须有方法getName()

form表单形式:

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

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

展开阅读全文

没有更多推荐了,返回首页