Presentation is loading. Please wait.

Presentation is loading. Please wait.

第 4 课 使用 JSP 处理客户端请求.  掌握 Form 表单的请求处理  掌握 JSP 常用内置对象的用法 out 对象 request 对象 response 对象 本章目标.

Similar presentations


Presentation on theme: "第 4 课 使用 JSP 处理客户端请求.  掌握 Form 表单的请求处理  掌握 JSP 常用内置对象的用法 out 对象 request 对象 response 对象 本章目标."— Presentation transcript:

1 第 4 课 使用 JSP 处理客户端请求

2  掌握 Form 表单的请求处理  掌握 JSP 常用内置对象的用法 out 对象 request 对象 response 对象 本章目标

3 本章任务  升级新闻发布系统 从页面上添加新闻一级标题,并保存至数据库中 从页面上添加新闻二级标题,并保存至数据库中

4 为什么需要使用 HTML 表单 ? 如何在服务器端获得 文本框中的数据? HTML 表单是与用户交互信息的主要手段

5 回顾 HTML 表单 2-1  创建表单 一个表单至少应该包括说明性文字、表单控件、提交 和重填按钮等内容。 HTML 表单标记说明了表单提交的方式和地点。  创建表单控件 通过 HTML 表单的各种控件,用户可以输入文字信息, 或者从选项中选择,以及做提交的操作。 用户名: 密码:

6  method 表示表单发送的方式, 分为两种: get 方式:将表单内容经过编码之后 ,通过 URL 发送, 使用 get 方式发送时有 255 个字符的限制。 post 方式:将表单的内容通过 http 发送, post 没有字符 长度的限制 回顾 HTML 表单 2-2 可以在地址 栏里看到 在地址栏看不到 表单的提交信息

7 表单处理的编程模式  用户通过表单控件输入并提交信息  JSP 获得表单数据,进行逻辑处理  JSP 根据处理结果,转向不同的结果页面 JSP 1 、获得表单数据 2 、进行逻辑处理 3 、根据处理结果返回不同页 JSP 1 、获得表单数据 2 、进行逻辑处理 3 、根据处理结果返回不同页 邮箱主页面 登陆失败页面 用户名、密码输入正确 用户名、密码输入错误 1 2 3

8 处理表单请求 5-1  升级新闻发布系统,要求如下: 从页面上添加新闻一级标题,并保存至数据库中 如果保存成功,返回成功页面 如果保存失败,返回失败页面 saveFirstLevelTitle.jsp 1 、获得用户输入的一级标题 2 、插入数据库 3 、根据保存结果返回不同的页面 saveFirstLevelTitle.jsp 1 、获得用户输入的一级标题 2 、插入数据库 3 、根据保存结果返回不同的页面 成功页面 失败页面 保存成功 保存失败 1 2 3

9 处理表单请求 5-2  创建一级标题的发布页面 (createLevelOneTitle.jsp)  创建发布成功页面 (success.jsp)  创建发布失败页面 (error.jsp) ------ 发布页面的代码片断 ------

10 处理表单请求 5-3  创建数据访问类 FirstLeveTitleDbOpreation 建立方法 getNewId() :用来获取新闻一级标题表中 最大的 ID ,并对它加一,作为新的一级标题的 ID 建立方法 insertOneRecord(FirstLevelTitle fTitle) : 用来向数据库中插入一条新闻一级标题

11 处理表单请求 5-4  创建发布提交页面 —— saveFirstLevelTitle.jsp <% request.setCharacterEncoding("GBK"); String titleName = request.getParameter("titlename"); FirstLevelTitle fTitle = new FirstLevelTitle(); fTitle.setTitleName(titleName); fTitle.setCreator(" 管理员 "); FirstLeveTitleDbOpreation dbOpreation = new FirstLeveTitleDbOpreation(); int result = dbOpreation.insertOneRecord(fTitle); if (result > 0) request.getRequestDispatcher(“success.jsp").forward(request, response); else request.getRequestDispatcher("error.jsp").forward(request,response); %> 获取用户输入 逻辑处理 返回不同页面

12 处理表单请求 5-5 演示:添加新闻一级标题整体效果演示

13 什么是 JSP 内置对象 ?  JSP 内置对象是 Web 容器创建的一组对象  JSP 内置对象是可以直接在 JSP 页面使用的对象 ,无需使 用 “new” 获取实例  JSP 内置对象的名称是 JSP 的保留字 <% request.setCharacterEncoding("GBK"); String titleName = request.getParameter("titlename"); %> 常用内置对象 request response out application session 示例 没有出现 new 关键 字,但却可以使用 request 对象

14 JSP 内置对象 out  out 对象用于向客户端输出数据  out 对象常用方法: print() :在页面中打印出字符串信息 <% out.print(“ hello 同学们! " ); %>

15 JSP 内置对象 request 4-1  request 对象主要用于处理客户端请求 JSP 页面 request 对象 客户端 请求请求信息

16 JSP 内置对象 request 4-2  request 对象常用方法 方法名称说明 String getParameter(String name) 根据页面表单组件名称获取页面提交数据 String[ ] getParameterValues (String name) 获取一个页面表单组件对应多个值时的用户 的请求数据 void setCharacterEncoding (String charset) 指定每个请求的编码 在调用 request.getParameter() 之前进行设定, 可以解决中文乱码问题 request.getRequestDispatcher(S tring path) 返回一个 javax.servlet.RequestDispatcher 对 象,该对象的 forward 方法用于转发请求

17 JSP 内置对象 request 4-3  编程实现论坛的注册功能 注册信息包括:用户名、密码、你从哪里知道本论坛 页面提交后,显示会员输入的数据 1 2

18 JSP 内置对象 request 4-4 用户名 密码 你从哪里知道本论坛 报刊 网络 朋友推荐 电视 String[] channels = request.getParameterValues("channel"); if (channels != null) { for (int i = 0; i < channels.length; i++) { out.println(channels[i]); } String[] channels = request.getParameterValues("channel"); if (channels != null) { for (int i = 0; i < channels.length; i++) { out.println(channels[i]); } request.setCharacterEncoding("GBK"); request.getParameter(“name”); request.getParameter("pwd");

19 JSP 内置对象 response 2-1  response 对象用于响应客户请求并向客户端 输出信息  response 对象常用方法 void sendRedirect (String location) :将请求重新 定位到一个不同的 URL JSP 页面 response 对象 客户端 响应 从服务器中 检索的信息 存储信息,以在响应客 户端请求时发送此信息

20 JSP 内置对象 response 2-2  在首页面( input.jsp )上输入用户名、密码,提交至 input2.jsp 进行处理  如果输入的用户名、密码都是 sa ,跳转至欢迎页面 ( welcome.jsp ) 用户名: 密码: input.jsp 客户端重新建立链接 <% request.setCharacterEncoding("GBK"); String name = request.getParameter("userName"); String pwd = request.getParameter("pwd"); if(name.equals("sa") && pwd.equals("sa")) response.sendRedirect("welcome.jsp"); %> 跳转至欢迎页面 input2.jsp

21 处理表单请求进阶 5-1  升级新闻发布系统,要求如下: 从页面上添加新闻二级标题,并保存至数据库中 如果保存成功,返回成功页面;保存失败,返回失败页 面 saveSecondLevelTitle.jsp 1 、获得用户输入 2 、插入数据库 3 、根据保存结果返回不同页面 saveSecondLevelTitle.jsp 1 、获得用户输入 2 、插入数据库 3 、根据保存结果返回不同页面 成功页面 失败页面 保存成功 保存失败 在下拉框中列出 所有一级标题 文件上载控件 1 2 3

22 处理表单请求进阶 5-2 字段名称字段说明数据类型大小 Id 序号 int4 TitleName 标题名称 varchar100 FilePath 文件位置 varchar200 Creator 创建者 varchar50 CreateTime 创建时间 datetime8 ParentTitle 所属一级标题的 ID int4  创建类 SecondLevelTitle.java :负责存储数据  创建类 SecondLevelTitleDbOpreation.java :负责向数 据库中添加新闻二级标题  创建表 SecondLevelTitle

23 处理表单请求进阶 5-3  创建新闻二级标题的发布页面( createLevelTwoTitle.jsp ) ------ 代码片断 ------ <% List list = new FirstLeveTitleDbOpreation().getAllFirstLevelTitleList(); if(list.size()>0){ for(int i=0;i<list.size();i++){ FirstLevelTitle fTitle = (FirstLevelTitle)list.get(i); %> "> 这是文件上载控件,该控件带有 一个文本框和一个浏览按钮 在下拉框中列出 所有一级标题

24 处理表单请求进阶 5-4  创建发布提交页面( saveSecondLevelTitle.jsp ) ------ 代码片断 ------ <% request.setCharacterEncoding("GBK"); String titleName = request.getParameter("titlename"); int parentTitleId = Integer.parseInt(request.getParameter("parenttitle")); String filePath = request.getParameter("filepath"); SecondLevelTitle sTitle = new SecondLevelTitle(); sTitle.setTitleName(titleName); …… SecondLevelTitleDbOpreation dbOpreation = new SecondLevelTitleDbOpreation(); int result = dbOpreation.insertOneRecord(sTitle); if (result > 0) { request.getRequestDispatcher("success.jsp").forward(request,response); } else { request.getRequestDispatcher("error.jsp").forward(request, response); } %> 获取用户输入 逻辑处理 返回不同页面

25 处理表单请求进阶 5-5 演示:添加新闻二级标题整体效果演示

26 总结 2-1 编程实现如下页面效果: input.jsp output.jsp 1 2

27 总结 2-2 input.jsp output.jsp 请选择您的性别: 女 男 请选择您喜欢的食物: 薯条 奶酪 String sex = request.getParameter("sex"); String[] foods = request.getParameterValues("foods"); String foodStr=""; if (foods != null) { for (int i = 0; i < foods.length; i++) { foodStr +=foods[i]+" "; } %> 您的性别是: 您喜欢的食物是: 单选框 复选框


Download ppt "第 4 课 使用 JSP 处理客户端请求.  掌握 Form 表单的请求处理  掌握 JSP 常用内置对象的用法 out 对象 request 对象 response 对象 本章目标."

Similar presentations


Ads by Google