学习情境3
学习情境
一、任务
操纵JSP内置对象 内置对象 操纵
1.为博客系统增加用户登陆验证 2.为博客系统增加访问控制 3.为博客系统增加已访问者等信息
图 3-1 任务的主页
二、技能点
1、request对象的使用 2、response对象的使用 3、session对象的使用 4、application对象的使用
三、知识点
1、JSP内置对象的语法 2、访问控制流程中的参数传递
四、技能目标
1、灵活选用内置对象的技能 2、操纵JSP内置对象的技能 3、操纵页面权限访问的技能
五、知识目标
1
1.掌握JSP内置对象的用法 request对象 response对象 session对象 application对象 2.掌握访问控制实现的流程 3.掌握如何在超链接中传递参数
六、正文内容
回顾: 1、列举一些 page 指令的常用属性,并说明它们的作用 2、 JSP 文件中, 在 有几种输出数值的方法 (如: 输出 20 与 40 的乘积) ? 分别怎样表示? 问题引入:如何利用 JSP 获得表单数据?
1 JSP 2 1、获得表单数据 、 2、进行逻辑处理 、 3、根据处理结果返回不同页 、
邮箱主页面 3 登陆失败页面
用户名、 用户名、密码输入正确 用户名、 用户名、密码输入错误
图 3-2 获得表单数据
3.1
request对象的使用 对象的使用
3.1.1 request对象的应用举例 对象的应用举例 1.个人博客系统用户登陆验证 2.
登陆成功后,获取相关信息 3.1.2 利用 利用request对象获取客户提交的信息步骤 对象获取客户提交的信息步骤
2
1.建立
HTML表单
2.用REQUEST对象处理 . 对象处理 用户输入的数据存放在request对象里, 可以在JSP代码中直接访问request 对象,处理客户传递过来的数据。 3. request对象常用方法: 对象常用方法: 对象常用方法
方法名称 String getParameter(String name) 说明 根据页面表单组件名称获取页面提交数据
String[ ] getParameterValues (String 获取一个页面表单组件对应多个值时的用户的请 name) 求数据 void setCharacterEncoding (String charset) request.getRequestDispatcher(String request.getRequestDispatcher(String path) 指定每个请求的编码 request.getParameter()之前进行设定 之前进行设定, 在调用 request.getParameter()之前进行设定, 可以解决中文乱码
问题 返回一个 javax.servlet.RequestDispatcher 对 象,该对象的 forward 方法用于转发请求
3.2 response对象 对象
任务:个人博客
系统用户登陆验证,如果输入的用户名、密码都正确,跳转 至欢迎页面(show.jsp) 3.2.1 response对象的使用 对象的使用 (1)重定向。 response 对象
常用方法 void sendRedirect (String location):将请求重新定位到一个不同的 URL. (2)设置 cookie。 <% Cookie mycookie=new Cookie("name1","value1"); Response
.addCookie(mycookie); %>
3
(3)删除 cookie。 <% Cookie killmycookie=new Cookie("mycookie",null); killmycookie.setMaxAge(0); killmycookie.setPath("/"); response.addCookie(killmycookie); %> 3.3 session对象 对象 任务:升级博客系统增加访问控制功能,具体要求如下: 用户必须登录之后,才能发表评论。 3.3.1 session对象应用举例 对象应用举例 博客中增加 session 来实现访问控制,如:未登录,不能参与发表评论。 3.3.2 session对象概述 对象概述 session 对象指的就是客户端与服务器端的一次会话。 session 对象是一个非常重要的工具,应用极广,主要用来保存各个用 户个人信息。 session 对象常用方法如下。 (1)getAttribute() getAttribute()方法 (1)getAttribute()方法 形式:String getAttribute(String attribute1) 说明:获得指定名字的属性,如果该属性不存在,则返回 null。 (2)getAttributeNames() getAttributeNames()方法 (2)getAttributeNames()方法 形式:Enumeration getAttributeN