MVC Servlet与MVC设计模式.

Slides:



Advertisements
Similar presentations
模块五 动态网页技术 任务五 查询记录 任务一 表单设计制作 任务二 简单动态的 ASP 页面制作任务三 页面与数据库的集成任务四 添加记录 任务六 电商系统融入网站.
Advertisements

基于 JSP 搭建 Web 应用程序. 第五章 Web 应用程序优 化 回顾 什么是会话跟踪技术 ? cookie 和 session 的区别是什么 ? 对象的四种作用域范围分别是什么?
LOGO 第 9 章 Java Servlet 和 JSP 编程 孙焘. 重点: servlet 编程原理 1 servlet 的基础类与编程实现 2 JSP 编程原理 3 JSP 的常用语法 4.
JSP 与数据库 SQL 语言简介 SQL 语言简介 JDBC 简介 JDBC 简介 使用 JDBC 连接数据库 使用 JDBC 连接数据库 访问数据库 数据库访问应用举例.
单元二:面向对象程序设计 任务二:借书卡程序设计.
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
HE Fixed Assets Manage System
基于JSP搭建Web应用程序.
上节课我们是讲解了request, response, session, application 等内置对象,有了它们,我们就可以编写一个完整的应用程序了。 我们来看ebank这个小应用程序的编写。
第14章 JDBC技术和数据库开发应用.
基于SSH的web开发 AND 企业级WEB应用开发新技术
配合< JSP程序设计>例子源代码一起使用
第12章 JDBC数据库应用程序设计.
第一章 面向对象程序设计.
设计模式可以帮助我们改善系统的设计,增强 系统的健壮性、可扩展性,为以后铺平道路。
课程整体教学设计 ——《面向对象程序设计基础》
第十章 综合编程实例 前9章分别介绍了JSP概念、运行环境、页面组成、各种技术的应用方法。本章将综合各章概念、技术和方法,把这些概念、技术和方法运用到实际应用当中,使读者对JSP技术和应用有更深刻的理解。本章涉及到4个应用:留言板、成绩管理、问卷调查和在线考试。 学习目标 理解4个应用的设计原理和设计方法.
第二章 JAVA语言基础.
第15章 Java数据库连接(JDBC) 15.1 创建数据源 15.2 JDBC-ODBC桥接器 15.3 顺序查询
類別與物件 Class & Object.
第八章 分析與設計階段 – 物件導向設計(OOD)
外观模式.
11-1 JDBC的基礎-說明 昇陽公司提出的資料庫中介軟體(Middleware)稱為「JDBC」(Java Database Connectivity),這是一種開放標準的Java程式介面,可以讓Java程式連接資料庫管理系統, 以Java技術來說,就是實作JDBC驅動程式介面(JDBC Driver.
Hello World 體驗實作第一個JSP程式.
第9章 过滤器和监听器技术 过滤器(Filter)和监听器(Listener)是两种特殊的Servlet技术。过滤器可以对用户的请求信息和响应信息进行过滤,常被用于权限检查和参数编码统一设置等。监听器可以用来对Web应用进行监听和控制的,增强Web应用的事件处理能力。 本章主要介绍过滤器和监听器的编程接口、基本结构、信息配置、部署和运行,最后通过案例说明过滤器和监听器的典型应用。
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
软件设计模式与体系结构课程设计 周 宇 College of Information Science and Technology
JDBC 数据库系统与应用 2014年.
AJAX基础.
Signutil.
数据库操作示例 import java.sql.*; //导入java.sql包 public class JDBCDemo {
专题4:JSP脚本和指令.
JAVA vs. SQL Server 建國科技大學 資管系 饒瑞佶 2013/4 V1.
Java基础 JavaSE异常.
JSP自定义标签技术的分析与应用 ----Custom Tag 的分析与应用
胡鹏 王慧锋 TEL: 数据库系统原理课程设计 实验环节1 胡鹏 王慧锋 TEL:
第四次课后作业 1 问题描述: 将谜题定义为:包含一个初始位置,一个目标位置,以及用于判断是否是有效移动的规则集。
崑山科技大學資訊管理系 伺服網頁程式設計 系統開發細部流程 教師:游峰碩.
電子商務網站建制技術與實習(II) 助教:江宜政 吳昇洋.
2018/11/23 面向对象与多线程综合实验-数据库操作 教师:段鹏飞.
本單元介紹何謂變數,及說明變數的宣告方式。
西南科技大学网络教育系列课程 高级语程序设计(Java) 第五章 继承、接口与范型.
厦门大学数据库实验室 MapReduce 连接
程式設計實作.
Java语言程序设计 第五部分 Java异常处理.
王豐緒 銘傳大學資訊工程學系 問題:JAVA 物件檔輸出入.
简单的介绍,简单的配置,简单的扩展 By jfm
异常及处理.
Java程序设计 第2章 基本数据类型及操作.
第11章 Android客户端与服务器交互.
C/C++/Java 哪些值不是头等程序对象
第11章 系统结构与包模型模型.
4.2通讯服务模块线程之间传递信息 信息工程系 向模军 Tel: QQ:
第 7 章 JDBC数据库访问.
JSP程序设计 第9章 Servlet简介.
第十二章 过滤器.
12-0.開發步驟檢查 游峰碩.
第二章 Java基本语法 讲师:复凡.
第五次课后作业 1 问题描述: 将谜题定义为:包含一个初始位置,一个目标位置,以及用于判断是否是有效移动的规则集。
第二章 Java语法基础.
第二章 Java基本语法 讲师:复凡.
Java程序设计 第17章 异常和断言.
硬幣遊戲解題詳解 王豐緒 銘傳大學資訊工程學系.
JAVA 程式設計與資料結構 第三章 物件的設計.
第2章 Java语言基础.
97學年度專題成果展 畢業生職業性向測驗系統之建立
判斷(選擇性敘述) if if else else if 條件運算子.
----以《西北民族音乐学术资源数据库》为例 西安音乐学院 景 月 亲
第二章 Java基础语法 北京传智播客教育
第6章 继承和多态 伍孝金
Presentation transcript:

MVC Servlet与MVC设计模式

回顾 提问 简述会话概念 会话跟踪有几种方式?分别是什么? 什么是Cookie? JSP中如何使用Cookie? session如何使用?

本章案例 使用MVC设计模式实现登录功能

本章目标 介绍MVC模式的优势 使用MVC模式实现登录功能

预习检查 提问 MVC设计模式中各个组件的含义? MVC设计模式的优势 ?

JSP的缺点(2-1) JSP中登录功能的实现 <% request.setCharacterEncoding("GBK"); String pass = request.getParameter("password"); String user = request.getParameter("loginName"); String sql = "select * from userinfo where loginname = ?"; Connection con = ConnectionManager.getConnction(); PreparedStatement pStatement = con.prepareStatement(sql); pStatement.setString(1, user); ResultSet rs = pStatement.executeQuery(); if (rs.next() && rs.getString("password").equals(pass)) { User logineduser = new User(user, pass); session.setAttribute("LOGINED_USER", logineduser); response.sendRedirect("books.jsp"); } else { response.sendRedirect("register.html"); } %> JSP中大量 调用业务代码 访问数据库 JSP的主要作用是什么? 提交数据到register.jsp 逻辑判断

JSP的缺点(2-2) 美工进行页面编辑和维护 这是什么呀?我 <% 只认识HTML标签 for (int i=0;i<titles.size();i++){ if (i % 3 == 0){ %> <TR> <% } %> <TD><%=subStr(currentBook.getTitle()) %></TD> </TR> <TD><IMG src="/store/images/<%=currentBook .getImageFile() %>"/ > </TD> 如果将流程控制和 数据显示分离就好了 美工

如何解决JSP的缺点 1、在你所写的程序中,很多JSP页面直接 访问数据库,如果数据库表名改变了, 你所要做的工作是什么? 2、你的程序中所有的页面都需要美工进行美 化,但是他不懂Java怎么办?

设计模式的定义 什么是设计模式 设计模式的作用 是一套被反复使用、多数人知晓的、代码设计经验的总结 模式必须是典型问题(不是个别问题)的解决方案 设计模式的作用 解决一类问题的成功经验 是为了可重用代码、让代码更容易被他人理解、保证代码可靠性

MVC设计模式 MVC设计模式 模型 ----- Model 视图 ----- View 控制器 ----- Controller JavaBean JSP Servlet

MVC设计模式 MVC设计模式的模块组成 模型:代表应用程序状态和业务逻辑 视图:提供可交互的客户界面,向客户显示模型数据 控制器:根据客户的请求来操纵模型,并把结果经由视图展现给客户

生活案例 顾客点菜 把菜单给服务员 把菜单给厨师 厨师 服务员 以各自的功 加工菜肴 能进行分工 服务员上菜 顾客点菜 把菜给服务员 服务员

Web程序的MVC Web容器处理请求过程 数 据 库 数 据 库 请求 响应 执行 客户端 Servlet控制器,用 于接收请求和控制 应用程序的流程 Servlet 转向 JSP页面 JSP视图动 态显示数据 访问 数 据 库 数 据 库 调用 JavaBean数据 模型进行业务逻 辑和访问数据库 返回数据 JavaBean

MVC模式的应用——登录 第一步:创建数据库连接DBConnection类 public class DBConnection { private final static String URL="jdbc:oracle:thin:@localhost:1521:xe"; private final static String USERNAME = "scott"; private final static String PASSWORD = "tiger"; public static Connection getConnection(){ Connection con = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); con = DriverManager.getConnection(URL, USERNAME, PASSWORD); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { } return con;

MVC模式的应用——登录 第二步:创建名为UserBean的登录用户Javabean public class UserBean { /****以下为属性以及对应的get/set方法****/ public boolean login(){ boolean flag = false; Connection con = DBConnection.getConnection(); PreparedStatement pstmt = null; ResultSet rs = null; String sql = "select * from t_user where username = ?"; try { pstmt = con.prepareStatement(sql); pstmt.setString(1, this.getUserName()); rs = pstmt.executeQuery(); if(rs.next()){ String password = rs.getString("userpassword"); if(this.getUserPassword().equals(password)){ flag = true; }else{ this.setError("error"); } }else{this.setError("error");} } catch (SQLException e) {e.printStackTrace()} return flag;}}

MVC模式的应用——登录 第三步:创建控制器组件LoginServlet public class LoginServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { UserBean userBean=new UserBean(); //接收用户提交的用户名和密码 String username=request.getParameter("userName"); String pwd=request.getParameter("userPassword"); //给UserBean属性赋值 userBean.setUserName(username); userBean.setUserPassword(pwd); request.setAttribute("loginUser", userBean); // 登录验证 if(userBean.login()){ request.getRequestDispatcher("/success.jsp").forward(request, response); } else { request.getRequestDispatcher("/login.jsp").forward(request, response);

MVC模式的应用——登录 第四步:并且在web.xml文件中配置servlet <servlet> <description></description> <display-name>LoginServlet</display-name> <servlet-name>LoginServlet</servlet-name> <servlet-class>cn.com.systop.l07.controller.LoginServlet</servlet-class> </servlet> <servlet-mapping> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping>

MVC模式的应用——登录 第五步:创建登录页面login.jsp 演示示例

总结 为什么使用MVC设计模式? MVC设计模式各部分对应的组件是什么? MVC各部分间是如何协作的?

课后作业

Thank You!