2.JSP数据交互

本文深入探讨JSP数据交互核心,涵盖request和response对象应用、GET与POST请求中文乱码解决方案、转发与重定向区别及其应用场景。同时,解析session对象原理及常见方法,展示如何实现注册信息获取、企业邮箱登录验证及新闻发布系统的访问控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JSP数据交互(一)

  1. 预习检查
    1. requestresponse对象的作用和常用方法是什么?
    2. 针对GETPOST请求如何处理中文乱码?
    3. 转发重定向的区别和应用场合是什么?
    4. session对象的作用和常用方法是什么?

 

  1. 本章任务
    1. 实现在JSP页面中获取注册信息
    2. 实现企业邮箱登录验证功能
    3. 实现新闻发布系统页面访问控制

 

  1. 本章目标
    1. 熟练应用request对象获取用户请求
    2. 熟练应用response对象处理响应
    3. 熟练应用转发与重定向控制页面跳转
    4. 掌握session的原理及应用
    5. 掌握include指令的应用

 

  1. 什么是表单?

收集用户的数据,并进行提交.

 

(数据提交了之后,到JSP中了)

  1. 什么是JSP内置对象

是 Web 容器创建的一组对象

 

常见的out内置对象

 

常用的JSP内置对象:

 

 

 

 

  1. JSP内置对象request

request对象主要用于处理客户端请求

 

  1. JSP内置对象request

request对象常用方法:

  1. JSP内置对象request

如何实现学员的注册功能?

注册信息包括:用户名、密码、信息来源

页面提交后,显示学员输入的数据

 

  1. JSP内置对象request

信息读取显示页面

 

提示:

为什么我们输入的中文都是乱码显示?

 

  1. JSP内置对象request ------------乱码
    1. 在页面设置支持中文字符的字符集,如:UTF-8
    2. 获取数据时解决中文乱码问题

示例: 下面的表单get方法------只是治标

 

byte[] name=name.getBytes(ISO-8859-1);

name=new String (name,utf-8);

(和下面的这种方法一样)

 

 

下面这个治本的方法,需要---------------先暂停服务!

POST解决方法:

 

  1. 为什么要用转发和重定向?

解决乱码了之后,如何给用户提示成功/失败呢?

需要转发或者重定向!

  1. JSP内置对象response -1
    1. response对象用于响应客户请求并向客户端输出信息

    1. 页面重定向
      • void  sendRedirect  (String location)
      • 客户端将重新发送请求到指定的URL

 

 

如果中文乱码,则给他编码utf-8格式

也可以给他解码,用URLDncoder就好

 

  1. JSP内置对象response -2

实现登录验证,并在验证成功后跳转至欢迎页面

示例:

 

  1. JSP内置对象response -3
    1. 页面实现跳转了,请求的信息是否也一起转移呢?

 

    1. 如何才能实现页面跳转后,请求信息不丢失呢?

 

使用转发取代重定向实现页面跳转

 

  1. 请求的转发
    1. 转发的作用
      • 在服务器端,将请求发送给服务器上的其他资源,以共同完成一次请求的处理
    2. 转发的实现
      • RequestDispatcher对象的forward()方法

在多个页面交互过程中请求中的数据可以共享

 

  1. 小结------转发和重定向的区别

 

request:

setAttribute() 作用域仅限于一次请求

request.setAttribute(“mess” ,  ”**” );

doUserCreate.jsp:

注册成功----->index.jsp 重定向,给他一个新的页面网址

注册失败----->userCreate.jsp 转发,返回给客户端

 

转发:服务器内部自动完成了跳转,服务器行为,无形中延长了request作用域

--->doUserCreate.jsp

--->doUserCreate.jsp--->userCreate.jsp

  1. page session application

page:  this----当前对象

作用域仅限于当前页面

 

session setAttribute()作用域是一次会话

会话:

一个会话就是在一段时间内,这一用户与Web服务器的一次对话的过程

会话可以在多次请求中保存和使用数据

session是一种机制,同一个机器/浏览器上,sessionId是固定的.

不同的浏览器,sessionId是不同的

服务器使用的记录客户端状态的机制----sessionId

每一个session有一个唯一的sessionId

session.getId();

session是单用户,多页面可共享的   

session保存在服务器端

 

application

  1. 什么是会话

一个会话就是在一段时间内,一个客户端与Web服务器的一连串相关的交互过程

 

  1. JSP内置对象session

session对象常用方法:

 

  1. session与窗口的关系

每个session对象都与一个浏览器窗口对应 ,重新开启一个浏览器窗口,可以重新创建一个session对象(不同版本浏览器可能有所差别)

通过超链接打开的新窗口,新窗口的session与其父窗口的session相同

 

  1. 使用session实现访问控制4-1

在新闻发布系统中,增加访问控制功能 :

提供用户登录功能

管理员有权对新闻实现增、删、改的操作

 

  1. 使用session实现访问控制4-2

在控制页面获取用户请求的登录信息进行验证

 

  1. 使用session实现访问控制4-3

在新闻发布系统页面增加登录验证:

 

  1. 使用session实现访问控制4-4

访问控制效果验证,步骤如下:

 

 

  1. 会话的清除和过期

  1. session对象的失效

语法:

手动设置失效:invalidate()

超时失效:

26. 1 通过setMaxInactiveInterval( )方法,单位是秒

26.2 通过设置项目的web.xml或Tomcat目录下的/conf/web.xml文件,设置时间单位是分钟

 

 

 

 

 

 

  1. 二次复习:

page session application

page:  tihs----当前对象

作用域仅限于当前页面

 

request 作用域是一次请求

session setAttribute()作用域是一次会话

会话:

一个会话就是在一段时间内,一个用户与Web服务器的一次对话的过程

会话可以在多次请求中保存和使用数据

session是一种机制,同一个机器/浏览器上,session是固定的.

不同的浏览器,session是不同的

服务器使用的记录客户端状态的机制----sessionId

每一个session有一个唯一的sessionId

session.getId();

session是单用户,多页面可共享的   

session保存在服务器端

 

application

 

  1. cookie 跟踪用户的整个会话

给客户端发送一个通行证 ,每一个客户一个

cookie本质是文本信息

 

session保存在服务器端

cookie通过在客户端记录信息

 

 

使用cookie自动填充用户名,自动保存密码---------有时候比较方便

cookie以文件方式保存数据

添加数据:

public void addCookie(Cookie cookie)

获取数据:

public Cookie[] getCookies()

设置有效期:

public void setMaxAge(int expiry)

expiry

>0,保存信息expiry秒

=0,删除当前信息

<0,不保存当前信息

 

 

  1. include指令2-1

除了首页面,其它页面中同样需要加入登录验证,有没有办法避免冗余代码的出现

 

可以将一些共性的内容写入一个单独的文件中,然后通过include指令引用该文件

 

  1. include指令2-2

创建登陆验证文件loginControl.jsp

 

 

在后台首页面中,  使用include指令,  引用登陆验证文件

 

 

 

 

  1. 总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值