《JavaWeb实训》PPT课件.ppt

上传人:sh****n 文档编号:6578719 上传时间:2020-02-29 格式:PPT 页数:237 大小:5.48MB
返回 下载 相关 举报
《JavaWeb实训》PPT课件.ppt_第1页
第1页 / 共237页
《JavaWeb实训》PPT课件.ppt_第2页
第2页 / 共237页
《JavaWeb实训》PPT课件.ppt_第3页
第3页 / 共237页
点击查看更多>>
资源描述
JavaWeb项目实训 2011 12 HTMLJSPServletJavaBeanJDBCMySQL TrainingofJavaWebProject 2 1 课程介绍 3 1 课程介绍 课程的性质和目标本实训课程是在学生具备了Java程序设计知识与面向对象技术的基础上 为进一步提高项目实践能力 开拓创新能力而设置的实践性环节课程 本课程的目的掌握使用JSP应用程序设计的基本技能 熟练使用Eclipse进行Web应用程序的编写 调试 结合案例详细说明JavaWeb软件项目的整个开发过程 在项目开发过程中逐步熟悉知识点 掌握JavaB S结构程序的运行原理和应用技能 最后完成一个完整的软件开发项目 先修课程 Java语言程序设计 计算机网络 数据库原理 4 1 课程介绍 课程的基本要求掌握Java集成开发环境 IDE Eclipse的使用和调试方法利用JSP Servlet JavaBean实现Web应用开发掌握分层体系结构开发的技巧完成教师指定的开发任务 5 1 课程介绍 课程的基本内容本实训课程是围绕一个完整的Java项目而展开的 虽然每部分内容相对独立 但通过几次迭代开发后 最后形成一个完整的软件系统 在软件项目选择上遵循的原则是 技术上必须覆盖Java技术应用最为普遍的编程领域等 项目的选择具有良好的伸缩性 既要难易适中又能充分调动学生的创新能力 让学生有发挥的空间 项目 Web电子相册 6 1 课程介绍 考核方法每个学生按照实训项目要求完成实训报告 教师对实训的各项内容进行综合考核 比例为平时考勤20 实训项目考核80 提交源代码和实训报告 7 1 课程介绍 教学思想教师精炼地讲解理论知识教师做例子示范教师布置任务学生的任务课前自己学习相关的基础知识上课听基础知识上课看例子上课做例子课下饿补基础知识课下设计项目每次上课前检查进度 8 1 课程介绍 参考书目 1 邱加永 卞志城 郑经煜 JSP基础与案例开发详解 清华大学出版社 2009 2 温尚书 陈石华 万欣 JavaWeb编程入门与实战 人民邮电出版社 2010 9 2 Java软件项目要求与编程环境 10 2 Java软件项目要求与编程环境 项目要求前台查看图片下载图片发表评论用户登录新用户注册后台管理管理员登录修改管理员密码添加图片管理图片管理分类删除评论 11 2 Java软件项目要求与编程环境 软件项目开发的基本过程需求获取画出用例图用例描述系统分析架构设计初步的类设计和类图初步的界面设计利用分析类描述用例 顺序图 系统设计类细化 类图细化顺序图 活动图细化系统实现利用开发工具实现 12 2 Java软件项目要求与编程环境 客户端用户需求 13 2 Java软件项目要求与编程环境 服务器端用户需求 14 2 Java软件项目要求与编程环境 服务器端用户需求细化 15 2 Java软件项目要求与编程环境 逻辑结构 16 2 Java软件项目要求与编程环境 关于用户管理的功能 软件的构架示例如下 17 2 Java软件项目要求与编程环境 符合MVC模式 18 2 JavaWeb项目实训的要求与编程环境 我们所使用的工具JDK1 6 编译 解释器 MyEclipse 集成开发工具 Tomcat6 JSP Servlet容器 MySQL5 1 数据库服务器 安装 配置Connector J mySQL的JDBC驱动 NavicatLite MySQL客户端工具 19 2 JavaWeb项目实训的要求与编程环境 MyEclipseTomcat配置Web工程创建Web项目的结构 20 2 JavaWeb项目实训的要求与编程环境 JavaWeb应用程序工程制作流程设计目录结构编写Web应用程序代码编写部署描述文件Web xml编译代码将Web应用程序打包 war 部署Web应用程序 deploy 执行Web应用程序 21 2 Java软件项目要求与编程环境 Java编程基本规范为GUI上的每个控件起一个规范的Name包 类 变量的命名命名规则包 Java包的名字都是由小写单词组成类 类的名字必须由大写字母开头而单词中的其他字母均为小写 如果类名称由多个单词组成 则每个单词的首字母均应为大写方法 方法的名字的第一个单词应以小写字母作为开头 后面的单词则用大写字母开头 22 2 Java软件项目要求与编程环境 常用类型缩写对照 变量 变量命名的方法采用匈牙利命名法 它使用3字符前缀来表示数据类型 3个字符的前缀必须小写 前缀后面是由表意性强的一个单词或多个单词组成的名字 而且每个单词的首写字母大写 其它字母小写 23 2 Java软件项目要求与编程环境 任务1 熟悉开发环境开发环境的搭建在MyEclipse中配置好Tomcat服务器配置好MySQL数据库在MyEclipse中利用jdbc驱动访问MySQL数据库利用MyEclipse部署Web应用程序在MySQL创建用户表提示MySQL的数据库编码设置为UTF 8 这样有利于Web项目开发时 中文编码的一致性MyEclipse中Tomcat服务器的设置时 要将JVM设置为本机的JDK安装路径 而非JRE的路径记住netstartmysql netstopmysql命令使用navicatelite创建用户表 24 3 HTML网页编程基础 25 网页包含有文本 图形 超级链接以及其他信息元素的文件 可以通过Internet传输 用户可以使用浏览器浏览网站是一个包括多个超级链接在一起的网页集合主页某个站点的起始网页 包含必要的内容和索引信息浏览器是一种用于搜索 查看和管理网络上信息的一种带图形交互界面的应用软件超链接不同网页之间的连接关系地址 URL 标识Web上的页面和资源 3 网页编程基础 HTML 26 浏览器 网站主页 超链接 网页 网页 URL 27 网页的本质 HTML语言编写的文本 HTML用于创建网页文档 HTML文档是使用HTML标记和元素创建的 此文件以扩展名 htm或 html保存在Web服务器上 3 网页编程基础 HTML 28 Web服务器软件 浏览器 http请求 http响应 解释 工作原理 访问网页的规则 HTTP协议 网页开发工具 编辑生成 发布 3 网页编程基础 HTML Web程序 动态生成 29 网站 超链接 网页 Web浏览器 网站开发工具 Web服务器 多媒体 主页 通过http协议访问 具有1个或多个 发布 具有 具有 是一种 HTML 源代码是 构建 可视化编辑 生成 模型 3 网页编程基础 HTML Web程序 动态生成 发布 30 网页开发工具的主要作用HTML文档的可视化编辑生成HTML文档发布到Web服务器常用开发工具FrontPageDreamWeaver 3 网页编程基础 HTML 31 HTMLHyperTextMarkupLanguage超文本标记语言用它编写的文件 文档 的扩展名是 html或 htm 它们是可供浏览器解释浏览的文件格式HTML的基本形式内容标记名往往成对出现 中间的内容是标记的作用域 3 网页编程基础 HTML 32 常用标签全局架构标签 格式标签 文本标签 超链接标签 图像标签 表单标签 表格标签 框架标签 头元素标签 区域标签 3 网页编程基础 HTML 33 用于Html文档的最前边 用来标识Html文档的开始 放在Html文档的最后边 用来标识Html文档的结束两个标志必须一块使用 3 网页编程基础 HTML 34 构成Html文档的开头部分在此标志对之间可以使用等标志对标志对之间的内容是不会在浏览器的框内显示出来的 3 网页编程基础 HTML 35 是html文档的主体部分在此标志对之间可包含 分段标记 标题标记 换行标记 水平分界标记 等它们所定义的文本 图像等将会在浏览器的框内显示出来 3 网页编程基础 HTML 36 3 网页编程基础 HTML 实例用记事本构造最简单的HTML文档 37 常用的标记图像标记超链接标记文本 3 网页编程基础 HTML 38 表单表单是用来收集访问者信息的域集可实现网页与浏览者的交互 达到收集浏览者信息的目的表单元素主要包括单行文本框文本域下拉框单选按钮复选框 3 网页编程基础 HTML 39 表有以下部分组成标题行表头单元格边框cellspacing属性 3 网页编程基础 HTML 40 CSS内联样式表嵌入样式表外联样式表导入样式表请大家自学 3 网页编程基础 CSS 41 JavaScript由浏览器负责解释和执行脚本语言位置一般放在标记之间放在单独的 js文件中作为某个标签的事件属性值或者超链接的href属性值 3 网页编程基础 JavaScript 42 JavaScript常用内置对象winodw对象window open test html width 390 height 5 toolbar no resizable no top 200 left 200 document对象包含当前文档的信息write writeln 方法 向浏览器输出内容form对象表单对象 一个文档中可以有多个表单 表单之间互不关联document formName或document forms index 来获得对form的引用得到from对象后 就可以获得form中元素的引用 3 网页编程基础 JavaScript 43 JavaScript常用的方法 函数 alertconfirmprompt 3 网页编程基础 JavaScript 44 JavaScript中的事件处理onLoad事件onFocus事件onBlur事件onClick事件onChange事件onSelect事件onSubmit事件 3 网页编程基础 JavaScript 45 3 网页编程基础 实例 HTML实例利用HTML构造用户登录界面使用DreamWeaver注意表格的使用 46 3 网页编程基础 实例 JavaScript实例登录form中用户名有默认值当用户名文本框获得焦点则将文本框中文字选中当点击用户名文本框 自动清除文本框中的值 47 3 网页编程基础 实例 48 3 网页编程基础 训练 任务2用HTML构造登录表单 并且利用JavaScript验证表单 要求各项不能为空在MyEclipse中构建Web项目部署到Tomcat中课后任务 学习HTML学习Servlet的基本原理熟悉MyEclipse的使用尝试构造出Web电子相册的后台管理端页面原型根据需求进行数据库设计 画出E R模型 并在MySQL中建立表 49 50 51 4 Servlet基础与应用 52 Servlet服务端应用小程序用Java编写执行过程与CGI脚本相似 但有以下优势多线程应用编译的程序跨平台性 4 Servlet的应用 基础 53 Servlet的工作任务读取客户机发送的数据显式数据 表单中输入的数据隐式数据 http请求header信息生成结果可能要与数据库进行交流经过计算后形成结果发送数据到客户机显式数据 包括html 二进制数据隐式数据 http响应header信息 4 Servlet的应用 基础 54 4 Servlet的应用 实例 实例 创建简单的Servlet 利用MyEclipse生成一个Web项目在Web项目中创建一个简单的Servlet程序提示 注意Get和Post在Web xml中配置Servlet映射 55 4 Servlet的应用 实例 创建Web项目 56 4 Servlet的应用 实例 输入Web项目信息 57 4 Servlet的应用 实例 创建一个Servlet类名为TestServlet所在包为myServlets在Web xml中配置Servlet映射目的是隐藏Servlet的真正位置 58 这里的 是不能省略的 代表的含义是工程根目录 59 4 Servlet的应用 实例 在MyEclipse中配置好Tomcat服务器注意JVM的配置 要选择本机的Java安装路径下的完整JDK目录部署 deploy 实际是将开发环境中的程序拷贝到服务器的Webapps目录下启动服务器 60 4 Servlet的应用 实例 运行 61 4 Servlet的应用 实例 实例 利用表单向Servlet提交数据构建一个HTML网页 带有form在form的action中设置要提交的servlet 此处路径如果没有 则表示为相对于该网页的相对路径如果有 则表示为http localhost 8080 根目录 62 4 Servlet的应用 实例 创建UserManagerServlet 63 4 Servlet的应用 实例 关于JavaWeb项目中路径的总结web xml的 表示的是http localhost 8080 工程名而HTML网页 或JSP网页 的form中的action属性 如果加了 的时候表示绝对路径http localhost 8080 而没有加 表示的是相对路径在Servlet中 跳转时如果加了 的时候表示绝对路径http localhost 8080 而没有加 表示的是相对路径 64 已经加载了Servlet 调用service 方法 加载Servlet类 并创建新实例 调用init 方法初始化Servlet HTTP请求 是 HTTP响应 初始化 处理请求 否 利用一个线程调用service 方法 根据所接收到的http请求类型调用doGet doPost Servlet的工作方式 4 Servlet的应用 基础 Servlet生命周期创建 New 初始化 Init 服务 Service 撤销 Destory 65 HttpServlet类doGet GETdoGet HttpServletRequest HttpServletResponse doPost POSTdoPost HttpServletRequest HttpServletResponse Web容器收到一个请求时 调用HttpServlet类的公共的Service方法 再根据HTTP请求方法的类型 调用相应的doXXX 方法 4 Servlet的应用 基础 66 GET与POST1 GET GET的参数不能超过255个字符 GET的参数用URL中的 开头 GET servlet Query name tt age 2HTTP 1 02 POST POST请求后面跟着参数 POST servlet QueryHTTP 1 0name ttAge 2 4 Servlet的应用 基础 67 HttpServletRequest类Servlet能访问的CGI变量ServletRequest参数和各种方法getInputStream getReader getParameter getHeader getCookies 4 Servlet的应用 基础 68 HttpServletResposne类把MIME编码的数据回送给客户getOutputStream getWriter setHeader addCookie 4 Servlet的应用 基础 69 Cookie 是一小段文本 通过JSP或Servlet 可以将Cookie保存在浏览器所在的客户端的内存或磁盘上 需要时可以通过程序读出 要把Cookie发送到客户端 Servlet先要调用newCookie name value cookie setXXX设置各种属性response addCookie cookie 把cookie加入应答头 要从客户端读入Cookie Servlet应该调用request getCookies 返回一个Cookie对象的数组 在大多数情况下 你只需要用循环访问该数组的各个元素寻找指定名字的Cookie 然后对该Cookie调用getValue方法取得与指定名字关联的值 4 Servlet的应用 基础 70 Servlet的会话管理机制 根据设计 HTTP是一种无状态的协议 它意味着Web应用并不了解有关同一用户以前请求的信息 维持会话状态信息的方法之一是使用Servlet容器提供的会话跟踪功能 HttpSession接口提供了一种把对象保存到内存 在同一用户的后继请求中提取这些对象的标准办法 保存对象 setAttribute Stringname Objectvalue 提取对象 getAttribute Stringname 4 Servlet的应用 基础 71 Servlet调用方法 在浏览器中输入Servlet的URL通过HTML页面调用Servlet get方式或者post方式从另一个Servlet中调用Servlet 4 Servlet的应用 基础 72 在Servlet中跳转到其他页面方法一 使用HttpServletResponse的sendRedirect 方法在跳转之前所存储的request的属性都会被清空地址栏会显示出所跳转到的新地址实现跳转需要浏览器和服务器之间进行多次通信方法二 使用RequestDispatcher的forward 方法将Request中的属性传递到所跳转的新页面跳转时 不需要服务器与浏览器之间的额外通信浏览器地址栏不显示实际的新页面的URL 4 Servlet的应用 基础 73 中文编码在Servlet中 request setCharacterEncoding utf 8 设置Servlet从表单读取数据的编码格式解决读取表单中中文参数的问题response setContentType text html charset utf 8 相当于设置Servlet返回的HTML的编码解决向客户端输出中文的问题该语句要在PrintWriterout response getWriter 语句之前才能起作用 4 Servlet的应用 基础 74 Servlet开发 4 Servlet的应用 基础 75 J2EE应用程序目录结构 4 Servlet的应用 基础 76 实例 不带数据库的登录程序构建login html构建用于登录的servlet LoginCheck构建web xml中的servlet路径映射在servlet中显示登录表单提交上来的用户名和密码注意编码问题固定密码的验证逻辑登录成功页面跳转 登录失败页面跳转利用session防止绕过登录页面直接进入 4 Servlet的应用 实例 77 任务3 不带数据库的登录程序使用Servlet完成一个用户登录验证的程序 无数据库支持 若成功则导航到成功页面 若失败则导航到失败页面提示构建login html构建用于登录的servlet构建web xml中的servlet路径映射在servlet中显示登录表单提交上来的用户名和密码注意编码问题固定密码的验证逻辑登录成功页面跳转 登录失败页面跳转利用session防止绕过登录页面直接进入 4 Servlet的应用 任务 78 4 Servlet的应用 任务 79 4 Servlet的应用 任务 任务4 Web电子相册系统的面向对象分析按照边界 控制 实体的模式画出分析类图画出系统中主要的活动流程 80 4 Servlet的应用 任务 开发过程 DougRosenbergandMattStephens UseCaseDrivenObjectModelingwithUML 81 4 Servlet的应用 任务 示例 登录用例的分析类图 前端控制器 应用控制器 82 4 Servlet的应用 任务 成功登录的顺序图 83 5 JDBC基础知识与应用 84 JDBC介绍 JDBC驱动分类 使用JDBC编程的步骤 实例 5 JDBC基础知识与应用 85 JavaDataBaseConnectivity是一种可用于执行SQL语句的JavaAPI 为不同的DBMS提供统一的数据库编程接口 1 JDBC介绍 背景Java诞生后 没有Java语言直接可使用的数据库访问的API在Java程序中嵌入C语言的ODBC函数调用 使得Java的优秀特性无法发挥 平台无关 面向对象 JDK1 1 java sql包 即JDBCAPI 成为Java语言的标准部件 5 JDBC基础知识与应用 86 JDBC特点ForJavaSQL层API与数据库无关的 统一的API 编写一次 随处运行 5 JDBC基础知识与应用 87 分类Type1 桥驱动Type2 本地驱动Type3 基于中间件的驱动Type4 基于网络协议的驱动注意 Type1 Type2需要在客户端安装代码Type3 Type4是纯Java驱动 2 JDBC驱动分类 5 JDBC基础知识与应用 88 Type1即JDBC ODBC桥 提供了经由一种或多种ODBC驱动进行访问的JDBC接口 通常的DBMS都支持微软提出的ODBC规范 因此该模式可以普遍使用 非常灵活 具有很好的代码移植性 因为每次调用都要转换成ODBC调用 所以这种模式与其他模式相比性能最差 Type2使用NativeAPI它将JDBC调用转换为对数据库 Oracle Sybase Informix DB2等 客户端接口的调用 5 JDBC基础知识与应用 89 Type3纯Java驱动将JDBC调用转换为中间网络协议 然后转换为DBMS协议中间网络协议层起到一个读取数据库的中间件的作用 能够连接许多类型的数据库 因而是最灵活的JDBC模式 5 JDBC基础知识与应用 90 5 JDBC基础知识与应用 Type4纯Java驱动一般是数据库厂商才能实现直接调用DBMS 数据库管理系统 使用的网络协议 91 5 JDBC基础知识与应用 92 Java应用程序 JDBCAPI JDBC ODBC桥 JDBC Native桥 JDBC Net JavaJDBC ODBC驱动 NativeAPI C 中间件服务器 数据库 客户端 93 步骤加载驱动程序DriverManager类获取数据库连接Connection类创建一个数据库声明Statement类执行SQL语句 3 使用JDBC编程的步骤 5 JDBC基础知识与应用 94 DriverManager Connection Statement ResultSet 数据库 创建 创建 创建 建立连接 SQL语句 数据 5 JDBC基础知识与应用 95 java sql包中的主要类DriverManager作用于用户和驱动程序之间 它跟踪可用的驱动程序 并在数据库和相应驱动程序之间建立连接驱动加载方法 Class forName 类名 ConnectionConnectioncon DriverManager getConnection Stringurl Stringuser Stringpassword url jdbc subprotocol subname 5 JDBC基础知识与应用 96 StatementTheobjectusedforexecutingastaticSQLstatementandreturningtheresultsitproducesResultSetAtableofdatarepresentingadatabaseresultset whichisusuallygeneratedbyexecutingastatementthatqueriesthedatabase 5 JDBC基础知识与应用 97 加载驱动程序Class forName sun jdbc odbc JdbcOdbcDriver newInstance 获取数据库连接Connectioncon DriverManager getConnection jdbc odbc studs userID Password 创建一个数据库声明Statementstmt con createStatement 执行SQL语句ResultSetrs stmt executeQuery select fromstutable 5 JDBC基础知识与应用 98 ResultSet类移动next previous first last 取字段值ObjectgetObject 字段名 getInt 字段名 getFloat 字段名 getString 字段名 getDate 字段名 5 JDBC基础知识与应用 99 5 JDBC基础知识与应用 实例 实例访问数据库 取出所有数据 并显示出所有记录的某字段值例如 显示出用户表的所有用户姓名利用PreparedStatement联系访问指定用户 取出密码提示注意相应数据库的JDBC驱动是否配置好注意数据库连接串的基本语法本例的SQL语句没有参数 如果有参数怎么办 数据访问相关的Java语句必须放在try catch 中 异常处理本例无需编写Web程序 只需编写一个带main函数的Java类即可 将结果写在控制台上即可 100 简单实验代码 5 JDBC基础知识与应用 实例 101 5 JDBC基础知识与应用 实例 利用PreparedStatement联系访问指定用户 取出密码 102 5 JDBC基础知识与应用 实例 实例利用Servlet实现带数据库的登录将MySQL的JDBC驱动jar包文件放入web inf目录下的lib目录下 1 直接在Servlet中访问数据库 2 创建UserDAO类 构建isCheck 方法 在该方法中访问数据库并验证用户 103 5 JDBC基础知识与应用 104 5 JDBC基础知识与应用 实例 实例 Web电子相册项目的数据库设计E R实体联系图注意主键和外键 105 5 JDBC基础知识与应用 实例 106 5 JDBC基础知识与应用 实例 物理模型 107 5 JDBC基础知识与应用 任务 任务4 带数据库的登录程序Web电子相册数据库E R模型设计并在MySQL上构造物理数据表重构Web电子相册管理员登录功能 带数据库支持 在Servlet中直接访问数据库然后 将访问User表的程序放入单独的类提示在Eclipse中加入mySQL数据库驱动 108 6 JavaBean与DAO模式 109 JavaBean与DAO JavaBean一个特殊的Java类没有任何公共变量变量名首字母必须小写 例如name通过getter setter方法来读 写变量的值 例如getName 实现serializable接口将对象的状态保存在存储媒体中以便可以在以后重新创建出完全相同的副本 按值将对象从一个应用程序域发送至另一个应用程序域用途 主要用于在页面之间传递一个被封装的数据对象 110 例子 User类 111 JavaBean与DAO JavaBean的范围Page 该JavaBean只能在实例化它的页面中使用 这种JavaBean被存储在PageContext对象中Request 使用jsp include jsp forward RequestDispatcher的include 或forward 方法时 两个JSP页面或者Servlet页面之间共享这个JavaBean 该JavaBean实例被存储在ServletRequest对象中Session 这种JavaBean实例被存储在HttpSession对象中 该JavaBean实例会在整个会话过程中存在 Application 这种JavaBean实例存储到ServletContext中 该JavaBean可以被运行在应用服务器的相同生命周期中的任何对象 JSP或Servlet 调用 112 JavaBean与DAO DAO模式DataAccessObject用来抽象和封装所有对数据源的访问完全隐藏了数据源的实现细节当底层数据源实现发生变化时 只要DAO对象向客户提供的接口不变 就不会影响到客户程序 113 JavaBean与DAO UserDAO类的结构 114 JavaBean与DAO 部分 115 JavaBean与DAO 数据库操作独立出来 116 JavaBean与DAO 117 JavaBean与DAO 将数据库访问连接参数放入config包中的db properties文件 db properties文件 118 JavaBean与DAO Bean的使用 119 JavaBean与DAO 任务5 分层架构的带数据库的登录程序构建User类构建UserDAO类 在该类中构造isCheck Useruser 方法在Servlet中接收登录界面提交的用户名和密码 构造User对象 构造UserDAO对象 调用isCheck方法 120 JavaBean与DAO 完成登录工作的设计类 121 JavaBean与DAO 成功登录的顺序图 122 JavaBean与DAO login jsp 123 JavaBean与DAO UserServlet类 UserManager doPost方法登录部分关键代码 124 JavaBean与DAO UserBiz类 isChecked 方法 125 JavaBean与DAO UserDAO类 isChecked 方法 126 JavaBean与DAO dao包和pojo包 127 7 JSP原理及应用 128 JSP JavaServerPages 1 基于JavaServlet技术 2 页面包括静态HTMLJSP标记脚本 129 JSP特点内容的生成和显示分离 JavaBeans 生成可重用的组件 JavaBeans 采用标记简化页面开发能提供所有Servlets功能健壮的存储管理和安全性一次编写 随处运行JSP的平台适应性更广利用JDBC连接数据库 130 JSP实现原理客户对JSP的请求直接发送给JSP引擎JSP引擎接受到请求后 按照JSP源代码所规定的内容生成给客户端的响应把响应传递给客户端的浏览器 131 JSP与ServletJSP文档在后台会自动转换为ServletJSP更简捷 适合于生成大量的HTML 但与HTML标记混在一起Servlet适合于生成大量的二进制数据 访问数据库等工作 用它生成大量的html会很麻烦JSP与Servlet配合使用 132 jsp 133 JSP程序的基本结构 JSP页面 Elements JSPComments TemplateData Directives Actions Scripting delarations Scriptlets expressions 134 JSPComments 注释 第一种在结果html文档中显示第二种不在结果html文档中显示 TemplateData是不经过转换的文本一般是标准的HTML元素 135 Declarations 声明 在JSP程序中声明方法和全局变量形式可以一次声明多个变量和方法以分号结尾 136 Scriplet 小脚本 包含一个有效的程序段Java代码段例如 137 Expression 表达式 表示一个值在页面动态生成时以字符串的形式插入到页面中的相应位置 形式例如 138 Directives 指令 影响由JSP页产生的Servlet的总体结构语法指令page指令属性 import contentType language pageEncoding include指令 在转换为servlet前插入 属性 file作用 把其他的文件加入到当前的JSP文件中 例子 test jsp test include jsp 139 Actions 动作 jsp include 在页面被请求时包含进一个文件 jsp forward 让请求者可以向前到一个新的页面 jsp useBean 找到或实例化一个JavaBean jsp setProperty 设置一个JavaBean属性 jsp getProperty 将JavaBean的属性插入到输出 jsp plugin 执行一个Applet或Bean用OBJECT或EMBED标签为Javaplugins生成特定的浏览器的代码 140 include指令与include动作区别include指令 当被包含的文件内容发生变化时 服务器可能监测不到 此时服务器不会对它进行重新转换和编译 Include动作 在客户端对JSP文件发出请求的时候将对应包含文件的输出内容包含进来 它总是会检查被包含文件的变化 141 Haveaniceday Havealousyday 经过转译后将会是如下形式 if Math random niceday else out println Havealousyday JSP被编译为Servlet 142 JSP内建对象requestresponseoutsessionpageContextapplicationconfigpage 143 request获取请求的头部信息getHeader Stringname 获取客户端传送的数据getParameter Stringname 获取客户端host IP获取服务器名字 144 response用于向客户端发送数据addCookie Cookiecook setHeader Stringname Stringvalue sendRedirect out用来向客户端输出数据out print out println 145 session用来保存每一个用户信息getAttribute Stringname setAttribute Stringname java lang Objectvalue removeAttribute Stringname application用来在多个程序中保存信息每个用户都共用同一个application对象getAttribute Stringname setAttribute Stringname java lang Objectvalue 146 pageContext管理JSP中已经命名对象的访问config用来配置处理JSP程序的句柄Page 147 实例构造管理端界面利用include动作包含界面的上面头部和下面尾部 148 构造后台管理界面 admin jsp 头部Top jsp 尾部foot jsp 导航条navibar jsp 149 admin jsp 150 top jspfoot jsp 151 navibar jsp 152 实例构造修改用户密码功能 153 admin jsp表现 154 modifyPass jsp表现 155 modifyPass jsp代码 提交给对应的servlet并标明要做什么 利用session对象取出user对象中的name属性 156 result jsp 用于显示反馈结果 由Servlet中设置msg的值 157 UserServlet UserManager doPost 方法 158 UserBiz类 updatePassWord 方法 159 UserDAO类 updatePassWord 方法 160 任务6 1 利用JSP构造后台管理页面 利用jsp include包括顶部页面top jsp navibar jsp 底部页面foot jsp 2 利用Servlet JSP JavaBean实现多层结构下的 添加分类 功能 161 8 分层架构与MVC 162 Model1 163 Model2 MVC 模型 封装了应用程序的数据结构和事务逻辑视图 模型的外在表现控制器 对用户的输入进行相应处理并将模型和视图联系在一起 164 分层 165 修改密码 ModifyPass jsp Form 提交给相应的Servlet View 166 在UserServlet中撰写相应的处理代码 control 167 添加分类 Class add jsp Form View 提交给相应的Servlet 168 在ClassServlet中撰写相应的处理代码 control 169 9 EL与JSTL 170 9 EL与JSTL EL ExpressionLanguage JSP2 0后增加的重要功能 要求Tomcat5 0以上访问存储对象对JavaBean简化访问对集合的简化访问简单运算符条件输出 varName 171 9 EL与JSTL varName 以此从PageContext HttpServletRequest HttpSession ServletContext中查找名字为varName的属性所对应的值 firstVar secondVar thirdVar EL作用域 172 9 EL与JSTL EL访问JavaBean beanName beanVar 例如 在Servlet中request setAttribute bookBean book 在jsp中 bookBean publisher publisherName 173 9 EL与JSTL EL访问集合 collection index 例如 students 0 name 其中studnets是student对象的数组EL运算略 174 9 EL与JSTL JSTL JavaServerPagesStandardTagLibrary JSP标准标签库提供Web开发人员通用的标签库函数 用于取代在JSP页面上直接写Java代码的做法标签库c 核心标签库fmt I18N标签库sql SQL标签库xml XML标签库fn 函数标签库 175 9 EL与JSTL 在JSP中显示数据在JSP中定义变量并赋值用于移除指定范围内的某个变量用于捕获被嵌套在其中的操作的异常对象 176 9 EL与JSTL 完成if功能3 var result 完成ifelse功能 177 9 EL与JSTL 标签其他标签库略 178 9 EL与JSTL 实例 实例利用EL和JSTL构建表格显示所有分类Jsp页面 179 9 EL与JSTL 实例 pojo包的PhotoClass类 180 9 EL与JSTL 实例 PhotoClassDAO 181 9 EL与JSTL 实例 PhotoClassBiz 182 9 EL与JSTL 实例 PhotoClassServlet ClassManager 传递bean集合给 183 9 EL与JSTL 任务 任务7实现Web电子相册 图片分类管理 功能首先列出分类信息可以进行删除和修改 184 9 EL与JSTL 任务 185 10 实用技术 186 10 实用技术 文件上传 使用jspsmart组件完成上传工作将对应的jar文件放入web inf lib目录下步骤编写上传界面编写后台处理程序 187 10 实用技术 文件上传 图片上传简单例子通过jspSmartUpload上传图片 188 10 实用技术 文件上传 上传处理文件 189 任务8 1 实现Web电子相册中的 图片上传 功能 2 实现Web电子相册中的 图片管理 功能 190 10 实用技术 文件上传1 先上传再增加图片 图片添加界面photo add jsp 图片上传界面upload jsp upimg jsp 191 10 实用技术 文件上传1 将图片地址传回图片添加界面 192 10 实用技术 文件上传1 图片上传界面upload jsp中的主要代码 193 10 实用技术 文件上传1 后台处理程序upimg jsp中的主要代码 使用jspSmartUpload 194 10 实用技术 文件上传2 上传与增加图片信息一起进行 使用commons fileupload类 选择文件 文件并未上传 图片信息与上传一同进行 图片添加界面photo add1 jsp 195 10 实用技术 文件上传2 上传与增加图片信息一起进行 需要两个jar包支持 196 10 实用技术 文件上传2 上传与增加图片信息一起进行 PhotoServelt PhotoManager 197 10 实用技术 文件上传2 上传与增加图片信息一起进行 PhotoServelt PhotoManager 198 任务9图片管理首先显示图片分类 相册 然后选择一个分类的图片进行管理可以对图片进行删除和描述信息的编辑 199 10 实用技术 中文乱码问题 字符编码ASCII128个字符 面向使用英语的国家ISO 8859解决欧洲个国家的字符编码问题GB2312 GBK GB18030汉字编码Unicode使用双字节表达每个字符的编码 统一全球编码UTF 8变长的编码 对不同的Unicode可能采用不同的长度 从而减少存储或传输的数据量 200 10 实用技术 中文乱码问题 乱码原因在JSP中pageEncoding是指JSP文件自身的编码格式contentType的charset是指服务器发送给客户端的内容编码如果pageEncoding存在 那么JSP页面的字符编码由pageEncoding决定 否则由contentType的charset决定 如果都不存在 则默认为ISO 8859 1在Web应用中 浏览器 Web服务器 Web应用程序和数据库等各个部分都有可能使用不同的字符集 字符在不同字符集之间进行转换时 就可能出现乱码问题 201 10 实用技术 中文乱码问题 解决方案使用过滤器解决比较方便过滤器当客户请求某个html JSP Servlet之前 过滤器先 过滤 或者当服务器对客户端进行响应之前 过滤器先 过滤 从一个页面跳转 forward 到其他页面的时候在包含 include 其他内容时在发生错误时作用对HttpServletRequest进行预处理 对HttpServletResponse进行后处理 202 10 实用技术 中文乱码问题 创建一个过滤器的两个步骤 创建Filter处理类在Web xml文件中配置Filter过滤器必须实现javax servlet Filter接口 接口3方法voidinit FilterConfigconfig 初始化voiddestroy 销毁前voiddoFilter ServletRequestRequest ServletResponseresponse FilterChainchain 实现过滤功能 203 10 实用技术 中文乱码问题 web xml 204 10 实用技术 登录检测 登录检测防止用户在不登录的情况下 直接进入管理页面使用过滤器实现 205 10 实用技术 登录检测 web xml 206 10 实用技术 分页显示 分页显示的策略基于缓存 一次性地将所有的记录取出来放到session中 优点 除第一页外 后续的页面都能够很快的访问到所需数据缺点 第一页显示可能很慢 如果用户多时 内存开销大基于查询 根据需要从数据中取数据优点 第一个页面和后续页面访问时间差不多缺点 每次都要从数据库中读取数据 频繁地访问数据库 207 10 实用技术 分页显示 步骤 1 构建Pager类 2 修改dao包中的类 让相关方法返回Pager对象 3 修改biz包中的类 让相关方法返回Pager对象 4 修改servlet类 将Pager类放入reqeust变量中 5 修改JSP页面 208 10 实用技术 分页显示 Pager类 部分 209 10 实用技术 分页显示 PhotoClassDAO 210 10 实用技术 分页显示 PhotoClassBiz 211 10 实用技术 分页显示 PhotoClassServlet ClassManager 212 10 实用技术 分页显示 class manage jsp 213 10 实用技术 任务 任务10Web电子相册中前台图片浏览Web电子相册中后台评论管理实现Web电子相册中相应功能 例如图片浏览 分类管理 评论管理等 的分页显示 选作任务 214 10 实用技术 任务 Photo类 215 10 实用技术 任务 PhotoDAO 216 10 实用技术 任务 PhotoBiz 217 10 实用技术 任务 PhotoServlet PhotoManager 218 10 实用技术 任务 main jsp主要代码 219 10 实用技术 任务 index jsp 220 11 Ajax技术 221 11 Ajax简介 AjaxAsynchronousJavascriptandXML2005 2 JesseJamesGarrett ANewApproachtoWebApplications 综合运用JavaScript CSS DOM XMLHttpRequest XML等技术改善B S结构客户端用户体验效果的方法称为Ajax传统Web应用的问题 传统的Web应用允许用户端填写表单 form 当提交表单时就向Web服务器发送一个请求 服务器接收并处理传来的表单 然后送回一个新的网页 这个做法浪费了许多带宽 因为在前后两个页面中的大部分HTML代码往往是相同的 由于每次应用的交互都需要向服务器发送请求 应用的响应时间就依赖于服务器的响应时间 这导致了用户界面的响应比本地应用慢得多 222 11 Ajax简介 223 11 Ajax简介 Ajax的核心是JavaScript对象XMLHttpRequest 该对象在InternetExplorer5中首次引入 它是一种支持异步请求的技术 简而言之 XMLHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应 而不阻塞用户 224 11 Ajax简介 XMLHttpRequestXMLHttpRequest对象在大部分浏览器上已经实现而且拥有一个简单的接口允许数据从客户端传递到服务端 但并不会打断用户当前的操作 使用XMLHttpRequest传送的数据可以是任何格式 虽然从名字上建议是XML格式的数据 open 初始化HTTP请求参数 例如URL和HTTP方法 但是并不发送请求 send 发送HTTP请求 使用传递给open 方法的参数 以及传递给该方法的可选请求体 onreadystatechange事件用来定义XMLHttpRequest对象状态改编事件发生时的监听器 它对应一个JavaScript函数 225 11 Ajax简介 226 11 Ajax简介 227 11 Ajax简介 示例检测用户名是否存在 228 11 Ajax简介 Reg html 229 11 Ajax简介 Reg html 设置回调函数 230 11 Ajax简介 CheckUserName jsp 231 11 Ajax简介 调用servlet的版本 232 11 Ajax简介 UserServlet UserManager 233 11 Ajax简介 常用Ajax框架PrototypeDWRjQuery 234 任务11为Web电子相册中 图片分类信息 功能中添加查重功能可以不提交表单提示该分类是否已经存在 选作内容 235 任务12完成Web电子相册的所有业务功能测试程序调试程序 236 实训报告 实训目的实训的任务和要求实训过程与内容项目的需求分析项目的设计项目实现中的关键问题项目实现的效果实训心得体会参考文献 237 4 实训报告 形式打印在A4纸上 8000字以上图文并茂要当做锻炼 自己完成提交时间2012年1月15日下午之前提交报告 纸质 电子版 提交代码 电子
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!