第三章--JSP内置对象
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
------从登录验证页面表单中获取用户名-----<% String username=reqeust.getParameter("username"); //以key/value的形式创建Cookie Cookie uname=new Cookie("uname", username); response.addCookie(uname); ... ... 创建Cookie,使用response的 %> addCookie方法保存Cookie -----在显示页面显示用户名--------------<%//获取请求中的Cookie,以数组方式保存 使用reqeust获取 Cookie cookies[ ]=request.getCookies(); Cookie数组,通过 //循环遍历数组,得到key=uname的Cookie cookie的名称获取对应 for(int i=0;i<cookies.length;i++){ 的内容 Cookie ucookie=cookies[i]; if(ucookie.getName().equals("uname”));//判断Cookie的名称 %> 欢迎你:<%=ucookie.getValue() %>//获取key对应的value,输出显示 <% } %>
JavaScript页面验证与JSP的集成
• 在JSP页面中增加JavaScript验证:如果用户输入的信息为空,表单 不能提交
------代码片断-----<script language="JavaScript" type=""> function checkUserInfo(){ if(ername.value==""){ alert("用户名不能为空"); return false; } } 通过onClick事件触发 </script> checkOneTitle()方法 <input type="submit" name="Submit“ value="确定" onClick="return checkUserInfo()"/>
– session会话 – cookie对象 – application对象
本讲目标
• JSP基本的内置对象
– – – – request response sission application
• 两种页面跳转方法
– 转发 – 重定向
JSP内置对象response
• response对象用于响应客户请求并向客户端输出信息 • response 对象常用方法
客户端重新建立链接
control.jsp <% <form name="form1" method=post action="control.jsp"> request.setCharacterEncoding("GBK"); 用户名:<input type="text" name="userName"> String name = request.getParameter("userName"); 密码:<input type="password" name="pwd"> String pwd = request.getParameter("pwd"); 跳转至欢迎页面 <input type="submit" value="登录"> if(name.equals("sa") && pwd.equals("sa")) <form> response.sendRedirect("welcome.jsp"); input.jsp %>
字段名称 uid uname upwd 字段说明 序号 用户名称 密码 数据类型 number varchar2 varchar2 大小 4 50 50
JSP访问数据库应用
• 创建注册页面
完整代码实现
<form name="form1" method="post" action="control.jsp"> <table> <tr> <td>用户名</td><td> <input type="text" name="userName"> </td> </tr> <tr> <td>输入登录密码</td> <td><input type="password" name="pwd"></td> </tr> …省略余下的代码 <td>提交:</td><td><input type="submit" value="注册"></td> </tr> </table> </form>
使用session实现访问控制
• 在新闻发布系统中,增加访问控制功能,具体要求如下:
– 提供用户登录功能 – 管理员有权对新闻实现增删改的操作
登录处理页面 2 1、获得登录信息 2、查询数据库,判断该用户是否注册 3、如果该用户已注册,在session中 保存该用户的登录信息 4、如果用户时管理员就跳转到管理员 界面;否则跳转到新闻发布系统的首 页面 用户已注册
session对象
请求 1 浏 览 器 响应 1
请求 2…n 浏 览 器 浏览器关闭, 本次会话结束 响应 2…n session对象
JSP内置对象session
• session对象用来存储有关用户会话的所有信息 • session对象常用方法: 类型
void Object int String void
JSP访问数据库应用
• 用户注册功能实现,要求如下:
– 从页面上添加用户注册信息 – 如果保存成功,返回登录页面 – 保存失败,返回失败页面 1
control.jsp
2 1、获得用户输入 2、插入数据库 3、根据保存结果返回不同页面
成功页面
保存成功 保存失败
3
失败页面
JSP访问数据库应用
• 创建表users
session与窗口的关系
一个session对应一个窗口,那么通过超链接打开 的窗口是否也是新的session呢?
• 每个session对象都与浏览器一一对应 重新开启一个浏览 器,相当于重新创建一个session对象重新开启一个IE窗 口,直接访问系统首页面 • 通过超链接打开的新窗口,新窗口的session与其父窗口 的session相同
response.addCookie(newCookie)
Cookie的方法
• 设置Cookie属性的常用方法 类型 void void String String String 方法名称 setMaxAge(int expiry) setValue(String value) getName() getValue() getMaxAge() 说 明
生活中的Cookie
• 浏览购物网站查看不同商品时,系统会自动记录已经浏览过的商品
什么是Cookie
• Cookie是Web服务器保存在客户端的一系列文本信息 • Cookie的作用
– 对特定对象的追踪 – 统计网页浏览次数 – 简化登录
• 安全性能
– 容易信息泄露
Cookie的语法
• 导入包 • 创建Cookie
第三章 JSP内置对象
上节回顾
• JSP的工作原理 • JSP的基本组成:
– – – – –
注释及静态内容 指令 小脚本 声明 表达式
• JSP内置对象request的使用
本节内容
• JSP基本的内置对象
– request – response – out
• 页面跳转的两种实现方法 • 作用域对象
系统是否保存了 该用户登录信息
是
系统如何保存不同用户的登录信息?
使用JSP会话跟踪机制,可以维持每个用户的会话信息,也就是为 不同的用户保存不同的数据
什么是会话
• 一个会话就是浏览器与服务器之间的一次通话,包含浏览器与服务器 之间的多次请求、响应过程
session是JSP内置对 象,与浏览器一一对应, 允许用户存储和提取会 话状态的信息
JSP内置对象response
• 页面实现跳转了,请求的信息是否也一起转移呢?
• 那么如何才能实现页面跳转后,请求信息不丢失呢?
使用转互过程中实现请求数据的共享 • 转发的实现:
– RequestDispatcher对象 – forward()方法
JSP访问数据库应用
• 创建业务处理页面
完整代码实现
try { Class.forName("oracle.jdbc.driver.OracleDriver"); con =DriverManager.getConnection("连接字符串", "用户名", "密码"); stmt = con.createStatement(); String str = "select max(id) from loguser"; int maxid =0; rs = stmt.executeQuery(str); if(rs.next()) maxid = rs.getInt(1)+1; //获取新的用户编号 String sql = "insert into loguser values("+maxid+",'"+name+"','"+pwd+"')"; validate = stmt.executeUpdate(sql); } catch (Exception e) { e.printStackTrace(); }
生活中的访问控制
• 下载电子书时,系统会提示用户登录网站
点击下载, 系统转入登录页面
• 每次下载之前,系统如何判断用户是否已经登录?
如何实现访问控制
• 访问流程控制分析
否 进入用户注 册页面 系统保存该用 户的登录信息 进入欲访问 的页面
1
用户登录
是否是注册用户 是
否
2
用户直接访 问某个页面
进入用户登录 页面 显示该页面 内容
1
session中无法 提取到用户信息
管理员界面 3 1、从session中提取该用户信息 2、如果用户信息存在,显示管理员界面内容 4、如果用户信息不存在,跳转到登录页面
– void sendRedirect (String location):将请求重新定位到一个 不同的URL,即页面重定向
JSP 页面 响应 response 对象 客 户 端
从服务器中 检索的信息
存储信息,以在响应客 户端请求时发送此信息
JSP内置对象response
• 根据业务逻辑实现页面跳转
设置Cookie的有效期,以秒为 单位
在Cookie创建后,对Cookie进 行赋值 获取Cookie的名称 获取Cookie的值
获取Cookie的有效时间,以秒 为单位
JSP中应用Cookie
• 用户登录成功后,将用户信息保存到Cookie中,在页面读取 Cookie并显示
JSP中应用Cookie2-2
import="javax.servlet.http.Cookie"
Cookie newCookie=new Cookie("parameter", "value"); – parameter: 用于代表cookie的名称 (key) – value:用于表示当前key名称所对应的值
• 写入Cookie
<% RequestDispatcher rd=request.getRequestDispatcher("welcome.jsp"); rd.forward(request,response); %>
将当前接收的用户请求,发送给服务 器的其他资源使用
转发与重定向的比较
• 转发是在服务器端发挥作用,通过forward方法将提交信息在多个页 面间进行传递。 • 转发是在服务器内部控制权的转移,客户端浏览器的地址栏不会显示 出转向后的地址 • 重定向是在客户端发挥作用,通过请求新的地址实现页面转向 • 重定向是通过浏览器重新请求地址,在地址栏中可以显示转向后的地 址
方法名称
setAttribute(String key,Object value) getAttribute(String key) getMaxInactiveInterval() getId() invalidate()
说 明
以key/value的形式保存对象 值 通过key获取对象值 获取session的有效非活动时 间,以秒为单位 获取session对象的编号 设置session对象失效
JavaScript页面验证与JSP的集成
• 在JSP页面中增加JavaScript验证:如果用户输入的信息为空,表单 不能提交
------代码片断-----<script language="JavaScript" type=""> function checkUserInfo(){ if(ername.value==""){ alert("用户名不能为空"); return false; } } 通过onClick事件触发 </script> checkOneTitle()方法 <input type="submit" name="Submit“ value="确定" onClick="return checkUserInfo()"/>
– session会话 – cookie对象 – application对象
本讲目标
• JSP基本的内置对象
– – – – request response sission application
• 两种页面跳转方法
– 转发 – 重定向
JSP内置对象response
• response对象用于响应客户请求并向客户端输出信息 • response 对象常用方法
客户端重新建立链接
control.jsp <% <form name="form1" method=post action="control.jsp"> request.setCharacterEncoding("GBK"); 用户名:<input type="text" name="userName"> String name = request.getParameter("userName"); 密码:<input type="password" name="pwd"> String pwd = request.getParameter("pwd"); 跳转至欢迎页面 <input type="submit" value="登录"> if(name.equals("sa") && pwd.equals("sa")) <form> response.sendRedirect("welcome.jsp"); input.jsp %>
字段名称 uid uname upwd 字段说明 序号 用户名称 密码 数据类型 number varchar2 varchar2 大小 4 50 50
JSP访问数据库应用
• 创建注册页面
完整代码实现
<form name="form1" method="post" action="control.jsp"> <table> <tr> <td>用户名</td><td> <input type="text" name="userName"> </td> </tr> <tr> <td>输入登录密码</td> <td><input type="password" name="pwd"></td> </tr> …省略余下的代码 <td>提交:</td><td><input type="submit" value="注册"></td> </tr> </table> </form>
使用session实现访问控制
• 在新闻发布系统中,增加访问控制功能,具体要求如下:
– 提供用户登录功能 – 管理员有权对新闻实现增删改的操作
登录处理页面 2 1、获得登录信息 2、查询数据库,判断该用户是否注册 3、如果该用户已注册,在session中 保存该用户的登录信息 4、如果用户时管理员就跳转到管理员 界面;否则跳转到新闻发布系统的首 页面 用户已注册
session对象
请求 1 浏 览 器 响应 1
请求 2…n 浏 览 器 浏览器关闭, 本次会话结束 响应 2…n session对象
JSP内置对象session
• session对象用来存储有关用户会话的所有信息 • session对象常用方法: 类型
void Object int String void
JSP访问数据库应用
• 用户注册功能实现,要求如下:
– 从页面上添加用户注册信息 – 如果保存成功,返回登录页面 – 保存失败,返回失败页面 1
control.jsp
2 1、获得用户输入 2、插入数据库 3、根据保存结果返回不同页面
成功页面
保存成功 保存失败
3
失败页面
JSP访问数据库应用
• 创建表users
session与窗口的关系
一个session对应一个窗口,那么通过超链接打开 的窗口是否也是新的session呢?
• 每个session对象都与浏览器一一对应 重新开启一个浏览 器,相当于重新创建一个session对象重新开启一个IE窗 口,直接访问系统首页面 • 通过超链接打开的新窗口,新窗口的session与其父窗口 的session相同
response.addCookie(newCookie)
Cookie的方法
• 设置Cookie属性的常用方法 类型 void void String String String 方法名称 setMaxAge(int expiry) setValue(String value) getName() getValue() getMaxAge() 说 明
生活中的Cookie
• 浏览购物网站查看不同商品时,系统会自动记录已经浏览过的商品
什么是Cookie
• Cookie是Web服务器保存在客户端的一系列文本信息 • Cookie的作用
– 对特定对象的追踪 – 统计网页浏览次数 – 简化登录
• 安全性能
– 容易信息泄露
Cookie的语法
• 导入包 • 创建Cookie
第三章 JSP内置对象
上节回顾
• JSP的工作原理 • JSP的基本组成:
– – – – –
注释及静态内容 指令 小脚本 声明 表达式
• JSP内置对象request的使用
本节内容
• JSP基本的内置对象
– request – response – out
• 页面跳转的两种实现方法 • 作用域对象
系统是否保存了 该用户登录信息
是
系统如何保存不同用户的登录信息?
使用JSP会话跟踪机制,可以维持每个用户的会话信息,也就是为 不同的用户保存不同的数据
什么是会话
• 一个会话就是浏览器与服务器之间的一次通话,包含浏览器与服务器 之间的多次请求、响应过程
session是JSP内置对 象,与浏览器一一对应, 允许用户存储和提取会 话状态的信息
JSP内置对象response
• 页面实现跳转了,请求的信息是否也一起转移呢?
• 那么如何才能实现页面跳转后,请求信息不丢失呢?
使用转互过程中实现请求数据的共享 • 转发的实现:
– RequestDispatcher对象 – forward()方法
JSP访问数据库应用
• 创建业务处理页面
完整代码实现
try { Class.forName("oracle.jdbc.driver.OracleDriver"); con =DriverManager.getConnection("连接字符串", "用户名", "密码"); stmt = con.createStatement(); String str = "select max(id) from loguser"; int maxid =0; rs = stmt.executeQuery(str); if(rs.next()) maxid = rs.getInt(1)+1; //获取新的用户编号 String sql = "insert into loguser values("+maxid+",'"+name+"','"+pwd+"')"; validate = stmt.executeUpdate(sql); } catch (Exception e) { e.printStackTrace(); }
生活中的访问控制
• 下载电子书时,系统会提示用户登录网站
点击下载, 系统转入登录页面
• 每次下载之前,系统如何判断用户是否已经登录?
如何实现访问控制
• 访问流程控制分析
否 进入用户注 册页面 系统保存该用 户的登录信息 进入欲访问 的页面
1
用户登录
是否是注册用户 是
否
2
用户直接访 问某个页面
进入用户登录 页面 显示该页面 内容
1
session中无法 提取到用户信息
管理员界面 3 1、从session中提取该用户信息 2、如果用户信息存在,显示管理员界面内容 4、如果用户信息不存在,跳转到登录页面
– void sendRedirect (String location):将请求重新定位到一个 不同的URL,即页面重定向
JSP 页面 响应 response 对象 客 户 端
从服务器中 检索的信息
存储信息,以在响应客 户端请求时发送此信息
JSP内置对象response
• 根据业务逻辑实现页面跳转
设置Cookie的有效期,以秒为 单位
在Cookie创建后,对Cookie进 行赋值 获取Cookie的名称 获取Cookie的值
获取Cookie的有效时间,以秒 为单位
JSP中应用Cookie
• 用户登录成功后,将用户信息保存到Cookie中,在页面读取 Cookie并显示
JSP中应用Cookie2-2
import="javax.servlet.http.Cookie"
Cookie newCookie=new Cookie("parameter", "value"); – parameter: 用于代表cookie的名称 (key) – value:用于表示当前key名称所对应的值
• 写入Cookie
<% RequestDispatcher rd=request.getRequestDispatcher("welcome.jsp"); rd.forward(request,response); %>
将当前接收的用户请求,发送给服务 器的其他资源使用
转发与重定向的比较
• 转发是在服务器端发挥作用,通过forward方法将提交信息在多个页 面间进行传递。 • 转发是在服务器内部控制权的转移,客户端浏览器的地址栏不会显示 出转向后的地址 • 重定向是在客户端发挥作用,通过请求新的地址实现页面转向 • 重定向是通过浏览器重新请求地址,在地址栏中可以显示转向后的地 址
方法名称
setAttribute(String key,Object value) getAttribute(String key) getMaxInactiveInterval() getId() invalidate()
说 明
以key/value的形式保存对象 值 通过key获取对象值 获取session的有效非活动时 间,以秒为单位 获取session对象的编号 设置session对象失效