MVC+三层架构开发模式

Web开发模式

MVC

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

三层结构:

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

MVC+三层架构

MVC+三层架构开发模式_第1张图片

个人理解:

  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 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作为参数传递过去



		
			${varsta.count}
			${con.name}
			${con.gender} 
			${con.email }
			${con.qq}
		   
		   修改
		   删除
       //说明,此处的pageContext.request相当于pageContext.getRequest()方法,其在于先得到request对象,再调用request的方法。
		   
		
		

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

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

form表单形式:

项目结构:
MVC+三层架构开发模式_第2张图片
注意:不管是获取数据还是发送数据,都是以对象为基本单位,即JavaBean。

你可能感兴趣的:(JavaWeb基础)