JSP 动态 Web 技术 深圳职业技术学院软件技术专业 JSP 与 Servlet
内容提要 4 学习目标 彩色验证码 购物车 留言板 总结与提高
学习目标 了解 Servlet 生命周期 掌握 Servlet 和 JSP 的交互技术 掌握常用的 Servlet API 应用 了解基本的 Web 应用开发模式 Java Servlet 概念和意义 操 作 使 用 Servlet 工作原理 Servlet 生命周期 编写 Servlet Servlet 与表单的交互 彩色验证码 购物车 会 话 Servlet 访问数据库 留言板
Servlet 彩色验证码 防范恶意网站下载软件 防止不经过本网站而使用网站资源 Servlet 可以方便调用 Java 相关的类库进行图像操作 验证码是一个在 Web 服务器上生成的随机字符串 验证码以图片形式显示 图片中字符串使用旋转字符、添加背景纹理等技术
认识 Servlet 是 Java 编程语言中的一个类; 服务器端的 Java 应用程序; 可生成动态 Web 页面; 用于处理客户机和服务器之间的消息传递; Servlet 不支持图形用户界面; Servlets 利用输出 HTML 语句来实现动态网页; …… 客户端 Servlet 运 行于服务 器上
JSP 与 Servlet 的联系 从 Jsp 的角度, servlet 实际上是 jsp 被解释执行的中间过程; jsp 实际上是为了让 Servlet 的开发显得相对容易而采取 的脚本语言形 式 jsp 实际上就是 Servlet , jsp 实际上转换成 servelt ,然后编译执行; jsp 与 servlet 的不同 编程方式不同 jsp 遵循脚本语言的编制标准; servlet 严格遵循 java 语言的编程标准; 运行速度的不同 Jsp 比 servlet 运行慢, jsp 必须转换成 servlet 再运行; 运行方式不同 Servlet 是 java 程序,必须编译成.class 文件执行, jsp 直接由 Tomcat 将以执行;
为什么要学习 servlet 编制 jsp 程序时,使得编程更具结构化; jsp 是为了便于 编制 servlet 而开发的脚本程序语言; 为了更深入进行 jsp 编程; 学习 servelt 是解决高难度的 jsp 问题非常有用; Servlet 可以弥补 jsp 的弱点; jsp 职责是承担页面处理的工作; 内部数据的处理由 servlet 或者 JavaBean 来进行;
HTTP Servlet 基础知识 HttpServlet 类提供一个抽象类以创建 HTTP Servlet public void doGet(HttpServletRequest req,HttpServletResponse res) doGet() 方法处理客户端作出的 GET 请求。 doGet() 方法处理客户端作出的 GET 请求。 public void doPost(HttpServletRequest req,HttpServletResponse res) doPost() 方法处理客户端作出的 POST 请求。 doPost() 方法处理客户端作出的 POST 请求。
Servlet 的生命周期 Servlet 容器创建 Servlet 的一个实例 Servlet 的生命周期就是指创建 Servlet 实例之后其存在的 时间以及何时消失 实例化 Servlet 容器创建 Servlet 的实例 初始化 该容器调用 init() 方法 服 务服 务 服 务服 务 如果请求 Servlet ,则容器调用 service() 方法 销毁实例之前调用 destroy() 方法 销 毁销 毁 销 毁销 毁 不可用 销毁实例并标记为垃圾收集
项目实现 验证码的产生 —— 编写 Servlet 文件 VefifyCode.java 创建登录验证码校验页面 —— 设计 login.jsp 验证码验证 —— 编写 Servlet 文件 Check.java
配置 web.xml verifycode /verifycode verifycode app61. verifycode 完成了 Servlet 的映射,程序运行的 IE 地址栏: , verifycode 映射 VerifyCode.java 文件。 完成了对 Servlet 的名称( VerifyCode )和 Servlet 的类之间的映射,把 名称为 verifycode 的 Servlet 映射到 app61 包中的 VerifyCode.class 。 两个名称必须相同
程序解析 Servlet 文件通过实现 javax.servlet.http.HttpServlet 类来实现 重载 doGet() 、 doPost() 方法就可实现自己的 Servlet ; Servlet 被加载时进行初始化操作,还可重载 init() 和 destroy() 方法 response.setContentType(CONTENT_TYPE) 说明返回的 MIME 类型 PrintWriter out = response.getWriter(); 获得 PrintWriter 对象,然后输 出一段 HTML 文本
Servlet 生成 JPEG 图像 创建一个 BufferedImage 在 BufferedImage 上绘制内容 设置 ContentType 响应包头 获取流 以 JPEG 格式将 BufferedImage 发送到输出流
课堂实训 实训 1 实训 2
商品订购
JSP 调用 servlet 通过超链接访问 Servlet 例如: 访问验证码程序 通过表单向 Servlet 提交数据 使用 HTML 表单向服务器的某个 JSP 页面提交信息, 格式: 提交手段 </form
项目实现 提交订单 ——select.jsp 添加订单 ——addBook.java 修改订单页面 ——remove.jsp 修改订单 ——removeBooks.java Enumeration 接口定义了从一个数据结构得到连续数据的方 法 While(e.hasMoreElements()){ Object o=e.nextElement(); System.out.println(o); } 相关知识相关知识相关知识相关知识
课堂实训
留言板程序 馔写留言模块 阅读留言模块 留言管理模块
MVC 设计模式 MVC ( Model-View-Controller )模式,即模型 - 视图 - 控制器模式 ,其核心思想是将整个程序代码分成相对独立而能协同工作的 3 个组 成部分。 1) 模型( Model ):业务逻辑层。实现具体的业务逻辑、状态管 理的功能。 2) 视图( View ):表示层。即与用户实现交互的界面,通常实 现数据的输入和输出功能。 3) 控制器( Controller ):控制层。起到控制整个业务流程( Flow Control )的作用,实现 View 和 Model 部分的协同工作。
项目实现 数据表 mas 视图组件 ——message.jsp 、 addMessage.jsp 模型组件 ——DBconn.java 、 StrConvert.java 控制器组件 —— addMessage.java 、 delMessage.java
课堂实训 设计了一个简单的投票系统。 请使用 MVC 开发模式进行投票系统的改写和完善。 投票显示、投票结果显示由 JSP 实现; 数据库的连接及其操作用 JavaBean 实现; 投票处理,投票项目的新增、修改、删除功能用 Servlet 技 术实现
总结与提高 Servlet 运行于服务器上,它接受请求并用请求的数据响 应客户端 Servlet 广泛使用 HTTP 协议,因此称为 HTTP Servlet HTTP Servlet 发送 HTTP 请求并接收 HTTP 响应 Servlet API 包含在两个包中,即 javax.servlet 和 javax.servlet.http 中 Servlet 的生命周期包含三种方法,分别是 init() 、 service() 和 destroy()