112jspel开发模式课程笔记.docx
- 文档编号:4339326
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:14
- 大小:537.19KB
112jspel开发模式课程笔记.docx
《112jspel开发模式课程笔记.docx》由会员分享,可在线阅读,更多相关《112jspel开发模式课程笔记.docx(14页珍藏版)》请在冰豆网上搜索。
112jspel开发模式课程笔记
JSTL标签库_开发模式_综合案例
1.学习目标:
1:
开发模式servlet+jsp分层开发思想
2:
beanutils框架的使用说明
3:
基于servlet+jsp综合案例
4:
基于三层结构开发的综合案例
2.开发模式JAVAEE
企业开发模式之瀑布式
需求需求整理需求大纲---->需求设计--->编码阶段(w+架构师)svnmaven--->测试工程师(白盒测试黑盒)(5k---1w)--->发布--->维护(运维3500-5000linux工程师)
企业开发模式之迭代式缩短周期快速出产品内部框架(静态页面)
JSP两种开发模式
1:
纯jsp开发mvc做网站jsp页面显示和业务逻辑的处理(早期开发模式称为:
jspmodel1)
2:
mvc思想开发servletjsp分层servlet处理业务逻辑jsp显示页面(model2年代)
Servlet+JSP+JavaBean开发模式
设计模式,适合开发业务流程复杂大型应用,JSP只负责页面显示,(JAVAEE经典三层结构)
1、客户端提交请求给Servlet
2、Servlet接收数据,封装数据到JavaBean中
3、Servlet调用JavaBean处理数据,得到处理结果
4、Servlet将数据处理结果传递给JSP
5、JSP生成响应页面,返回客户端
图解:
流程说明
JavaBean介绍(实体类pojo类plainoldjavaobject)
数据封装(请求参数封装实体类/数据库表中数据封装到该对象实体类)--->TO类transferobject--->数据库表字段映射持久化类
三层数据传输载体!
javabean是一个Java类,满足下面特点规范!
!
1、public无参数构造函数
2、属性必须private
3、为属性提供public的getter和setter方法,方法遵循一定命名规则setName()
属性name-----方法getNamesetName(属性首字母大写,在前面加上get和set)
属性age-----方法getAgesetAge
3.BeanUtils的引入
客户端请求数据向JavaBean自动封装
使用BeanUtils框架来完成简化参数封装的代码
*Apachecommons组件包一个开源组件
使用BeanUtils说明
1、去官网下载开发包
下载commons-beanutils.jar同时下载commons-logging.jar
2、将两个jar包复制WEB-INF/lib
3、编写BeanUtils程序populate
BeanUtils.populate(person,parameterMap);
populate方法两个参数说明:
第一个参数实体类的实例
第二个参数表单全部信息Map
使用BeanUtils框架注意:
表单的name属性值要和实体类对象属性值要一致!
案例封装!
!
1:
导包web工程一定放到WEB-INF/lib下!
!
BeanUtils封装要求如下!
!
表单的name的属性值==实体类属性名称一致!
!
使用说明表单!
BeanUtils使用说明注意日期支持java.sql.Date格式yyyy-MM-dd
4.开发模式小节
程序开发步骤
1、客户端提交请求给Servlet
2、Servlet接收数据,封装数据到JavaBean中
3、Servlet调用JavaBean处理数据,得到处理结果
4、Servlet将数据处理结果传递给JSP
5、JSP生成响应页面,返回客户端
5.JSTL标签库说明
常用核心标签使用说明
详见文档:
常用标签库以及演示:
jsp设置一个变量对象...
流程判断
循环迭代集合数组....
作用切割字符串jsp如果需要切割字符型标签!
!
掌握集合List和Map的迭代
1:
index.jsp提供业务入口查询业务
2:
servlet接受请求调用三层结构数据库查询所有用户结果List
3:
list.jsp通过标签库核心标签库将复杂数据类型迭代出来显示在指定标签中
导入核心标签core
jsp使用taglib<%@taglibprefix=""uri=""%>
编写标签table显示数据
会有一个问题:
当用户直接输入list.jsp没有任何数据页面体验度很差空指针容易出现
引入 if>标签流程判断 添加非空判断 jsp显示Map集合转发数据标签库jstl+el 1: servlet代码构造map数据转给list1.jsp 2: list1.jsp 3: 留个作业: 将servlet数组String[]User[]如何使用foreach迭代! 6.三层结构开发的综合案例 案例功能需求说明 实现用户的登陆和注册功能(mysql基于数据库) 数据库表设计说明 user表 注册功能说明 1、一次性验证码技术 2、注册表单JavaScript校验 3、注册业务控制(用户名已经存在、邮箱已经存在错误信息显示) 4、将用户信息保存mysql数据库 登陆功能说明 1、登陆成功后,将用户信息保存Session中 2、在页面上通过session信息得知用户是否登陆 3、数据库实现用户的相关操作 4、记住用户名和密码(Cookie)----只是在form中显示已经登陆用户名和密码 环境的搭建 1、创建webproject: day14 mysql作为数据库 2、在工程中导入需要jar包: mysql驱动包、jstl标签库、beanutilsc3p0jar包 3、创建package目录结构JAVAEE经典三层结构 cn.itcast.user.domain实体类User cn.itcast.user.daodao层daoimple数据访问层 cn.itcast.user.webjsp不需要再src下新建 cn.itcast.user.service业务层 cn.itcast.user.utils工具类 编写注册功能 编写: 流程分析 编写登陆功能 流程分析: 编码 login.jsp登陆form表单(记住用户名和密码勾选框) LoginServlet接收login.jsp提交登陆数据 封装数据到User对象 调用model层进行登陆查询,返回existUser对象 登陆成功existUser保存Session中,编写用户注销功能 原理: 销毁当前session对象session.invalidate(); 记住用户名和密码功能(登陆成功后) 原理: Cookie将用户名和密码保存到cookie中 在jsp中通过设置input默认value-----${cookie.name.value} 7.js校验表单回顾 复习: 注册页面代码:注册页面
red">${error} 用户名? ? 密码 生日 javascript校验: form.js文件 //获取节点对象通用的方法 function$(obj){ returndocument.getElementById(obj); } varname_flag=false; varpassword_flag=false; varbirth_flag=false; window.onload=function(){ //用户名校验非空完成 $('name').onblur=function(){ //获取那么节点判断他是否为空 //如果空决定表单不能提交...用户输入的值this.value //表示一个正则表达式.....\s+*? if(isnull(this.value)){ //有空值 $('sp_name').innerHTML=" red'>用户名不能含有空格"; }else{ //没有空格 $('sp_name').innerHTML=" green'>√"; name_flag=true;//表单的提交判断 } } //密码校验 $('password').onblur=function(){ //[0-9]+\d if(isnull(this.value)||this.value.length<6){ //有空值 $('sp_password').innerHTML=" red'>密码不能含有空格或者6位以上"; }else{ //没有空格 $('sp_password').innerHTML=" green'>√"; password_flag=true;//表单的提交判断 } } //生日校验 $('birth').onblur=function(){ if(isnull(this.value)){ //有空值 $('sp_birth').innerHTML=" red'>生日不能为空"; }else{ //没有空格 $('sp_birth').innerHTML=" green'>√"; birth_flag=true;//表单的提交判断 } } } //封装一个通用的方法判断非空 functionisnull(str){ if(/\s+/.test(str)||str==""){ returntrue; }else{ returnfalse; } } //决定表单是否提交的函数返回值是true或者false functionvilaForm(){ returnname_flag&&password_flag&&birth_flag; } 注意: 非空校验和表单提交判断 //封装一个通用的方法判断非空 functionisnull(str){ if(/\s+/.test(str)||str==""){ returntrue; }else{ returnfalse; } } //决定表单是否提交的函数返回值是true或者false functionvilaForm(){ returnname_flag&&password_flag&&birth_flag; } 正则表达式: /\d+/.test(string) ===================================================================== 8.当天小节和作业要求 1: 掌握javaee三层结构流程 2: JSTL标签库常用的使用 3: 掌握三层结构完成的登陆和注册案例!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 112 jspel 开发 模式 课程 笔记
![提示](https://static.bdocx.com/images/bang_tan.gif)