0基础学习Java开发之Java Wed编程----《第二章JSP核心内置对象》--JSP内置对象,out,request,response,重定向,转发,session,会话超时和摧毁,Cookie


什么是JSP内置对象

首先大家看下图 1.1 我们定义了一个数组,接下俩我们对对数组进行for循环的遍历,遍历完我们使用out.print()进行浏览器的输出,输出的结果就是 60,70,80,大家可以发现,我们的out并没有在上面创建,怎末就能使用out对象呢,这种对象我们称之为JSP的内置对象,这些代码容器会帮我们声明的,不止out对象我们还有其他对象,让我们来了解他们,看下图 1.2 这些是我们不经常使用的内置对象,out,session 等我们经常使用的我们来哦慢慢讲。

例子:1.1

例子:1.2

jsp内置对象out

如图:1.3 out对象就是jspWriter类的实例,再往下看就是out的方法,第一个print主要是向客户端打印数据的,还可以把各种类型的数据转换成字符串,对于第二个write对然也是向客户端打印数据但是不同的是,他只能打印字符,字符数组,字符串这三种,在对于第三个println他和我们的print很相近不同的是,它会将各种数据转换成字符串,然后或换行,对于图 1.4 是更新的一些方法,大家可以看一看,图 1.5大家可以看见定义了几数组,数据类型啊 等...我们使用print的方式输出出来,大家可以看见他转换成了字符串,输出出来,例子:1.6 使用我们的write进行了输出,最后一个呢就是加了个换行,我们来总结根据图 1.7,大家多看看,多练练。

例子:1.3

例子:1.4 

例子:1.5 

例子 :1.6

例子:1.7 

request

如图: 1.7当点击提交的时候把我输入的东西打包发给另一个也i面,这里最难的就是我们的打包数据,使用我们的request传输数据, 如图:1.9 当我们的客户端想要请求服务器的时候,但其实我们的客户端携带非常多的内容,URL,data,客户端的一些信息,用户填写的信息,把信息发送到服务器,我们服务器拿到数据,并不是直接给到我们gs页面了,而是分析和整理成我们的request然后给进我们的服务器

例子;1.8

 

例子:1.9

request对象的常用方法

以下是request的常用方法,第一个是获取提交数据的,但是他是根据name来获取的,第二个跟第一个一样,但是他是针对多个值,第三个就是指定编码格式的,第四个就是里面有一个方法叫forward方法用于转发请求的,还有更多方法大家看一看如图:2.1

 例子:2.0

 

例子:2.1 

相信大家通过前面的练习大家都已经熟练掌握了jsp的方法,那么我们下面利用我们学到的知识做一个小项目,美团评价系统。

美团评价系统

1.我们打开idea创建一个wed文件文件名叫:ti,这个是提交页面,再创建一个wed文件,文件名叫:zhan,这个文件是展示页面.大家可以看到图2.1和图2.2是提交页面,图 :2.4 是显示页面,图2.5和2.6是运行结果,在实际开发中有可能发生乱码,我们一定要,把字符基设置成utf-8的格式,大家看图2.8 是我为大家总结的知识。

例子:2.2

 例子:2.3

 例子:2.4

 

 例子:2.5

例子:2.6 

例子:2.7 

例子:2.8

response对象 

我们response从服务器到jsp页面 respones 设置相应参数 页面重定向,最后响应客户端,sendRedirect ();请求另一个页面

 例子:2.9

使用respones实现登录验证,并在验证成功跳转欢迎页面

下面我们来实现一下如图:3.0,根据图 3.1 创建deng页面,当我点击提交跳转处理页面 kong.jsp,

根据图:3.2,从kong页面获取我deng页面的用户名和密码,在进行判断如果我输入的用户名等于sa并且密码等于123.com那么使用我们刚刚学的重定向,跳转成功页面,否则给他提示登录失败,在wed页面设置初始页面,开始运行,根据图:3.4,3.5 输入成功跳转成功页面并显示欢迎访问,如果输入不正确 如图:3.6,3.7 登录失败,那下面我想让他登录成功显示我的用户名和密码,怎末设置呢?,我根据 图3.8 进行设置获取我输入的用户名和密码,我们运行来看看,大家可以看见 图:3.9显示为null空值,这是为什么呢?我们deng页面用户把数据填写好,当点击提交把数据提交到kong这个页面,页面request获取用户输入的值,如果他的用户名和密码正确那么,我们的服务器resqons告诉我们客户端你该来请求cheng.jsp,这个页面,接下来我们客户端就请求这cheng.jsp页面,他又从新启动,对于我们从新启动的客户端我们的第一次请求的 request就已经失效了,因为我们的客户端又从新发送了一个请求。那么我们怎末处理呢有两种方法:

1.当第一次请求失败的时候,把数据作为参数来发起第二次请求。

根据图 4.0,我们在第二次请求把我们第一次的参数传进去,让我们第二次请求继续用我们的第一次请求,如图:4.1 值显示出来了

2.只发出一次请求 完成页面跳转

根据图 ;4.2 ,4.3  ,4.4 使用转发替代重定向,他就是创建了一个RequestDispatcher里面的forward(request,response)来对我们的请求进行转发。

那么大家一定有疑问就是,转发和重定向的区别,根据图 ;4.5 大家来看看,我们比一个例子就是,你有一封信,你要把这封信寄给b地址但是你不知道b地址的详细地址,那么你就把这封信寄给A地址来询问b地址详细的信息,信里面的内容你就可以理解为我们requst你向A地址请求b地址,然后A地址的工作人员给你写了封回信,回信的内容就是b地址的详细细信息,然后你拿着b地址的信息去请求b地址,那么你就发出了两次请求,第一次从a地址请求b地址,第二次就是把a的信息里面的b地址请求b地址。

转发一样就是我们要请求我们的b地址,你写了一封信交给我们a地址a地址没有给你写回信,而是,转发到b地址所以这个a地址拿到的信还是你第一次写的内容,为对于我们并不知道我们中间经历了什么,你只知道最后b地址给你写了封回信,关于中间的过程你是不知道的,转发生在服务器端的将同一请求进行传递。

 例子:3.0

 例子:3.1

例子:3.2 

例子:3.3 

例子:3.4

 例子:3.5

 

 例子:3.6

 例子;3.7

例子:3.8 

 例子;3.9

例子;4.0 

 例子:4.1

 例子:4.2

例子;4.3 

例子;4.4 

 例子:4.5

使用查询字符串

假如下面我们要实现,我点击颜色,跳转另一个页面并显示我选择的颜色,如图:4.6 首先我们创建,yan页面,如图:4.7 在创建xianshi.jsp,最后我们来运行一下 根据图:4.8,4.9 我点击那个,就显示那个,我们来分析一下代码 yan页面利用a标签跳转xainze页面 并设置 一个名字等于我所要点的这个值,在xianshi页面 直接获取我跳转页面的值,进行输出,大家看图 ;5.0 是我为大家整理的总结大家多多练习,和理解代码。

 例子:4.6

例子:4.7 

例子:4.8 

例子:4.9 

例子:5.0 

什么是会话呢?

会话就是比如我现在要给另外一个账户转钱,我们要先登录,服务器给我们响应是登录成功了还是失败了,接下来进行转账操作,对于我们的服务器他并不知道我们进行了登录操作,他只知道有一个浏览器进行了转账操作,这个时候服务器就给给我们执行相应的逻辑,并且把相应的结果返回给我们,总之不管谁来操作,我都给他相应的结果,很明显他不符合我们的安全原理,那么接下来我们怎末处理这样的逻辑呢,这就需要而我们的会话机制,那什么是会话机制呢,对于图:5.1 浏览器向服务器发送请求,这个时候在服务器,保存了一个 session,这个时候就创建好了一个session对象,服务器会把一个叫sessionId的对象这个sessionId就来自我们的session对象这是session对象的唯一标识,我们把sessionId返回给浏览器,第二次来访问我们浏览器的时候,我们就会把一个叫做sessionId的带上,来访问 我们的服务器,这里注意,不管是第一次第二次只要是在一个项目就行,这个时候我们的浏览器就会把sessionId和我们的服务器里面的session来看看我们的sessionId一样吗,如果一样的,就表示我们的sessionId就访问过我们的服务器,我们session有效期内,对我们服务器一个交互过程,我们就称之为一次会话,这里有效期指的就是,一旦超过我们设置的这个时间没有访问我们的服务器就会销毁,过期,我们的session就会销毁,这个时候我们来访问我们的服务器,不管你带上没我们的sessionId,这个时候我们的sessionId就已经失效了,

例子:5.1 

session对象常用的方法

根据图:5.2,5.3 第一个就是获取sessionID的,第二个就是设置我们最大失效时间,失效了就销毁了,第三个就是获取这个时间,第四个就是让我们session对象失效的,第五个就是根据类型保存数据,后面几个就是针对属性设置的。

 例子:5.2

 例子:5.3

根据图5.4 进行修改如果他没有登录就要访问数据就让他登录,还是按照以前的例子,deng页面没有改动,根据图 : 5.5 ,5.6 进行设置,将用户信息保存到session 在cheng页面进行获取和判断。

 例子:5.4

 例子:5.5

例子;5.6 

session对象的失效

在学之前,我们先来试试手动失效,如图:5.8 ,5.9 当我点击退出的时候进行退出,并且从新登录。

接下来进行自动失效,

根据图:6.0 在0秒后失效,跳转登录页面,

总结如图 :6.2

例子:5.7 

例子;5.8

 例子;5.9 

例子6.0

 根据wed来设置失效时间

在一分钟后session失效

 例子:6.1

例子:6.2 

Cookie

Cookie它是由服务器端生成并发送给客户端浏览器的,

创建Cookie对象

Cookie newCookie= new Cookie(String name, String value);,name是代表Cookie的名称,value是表示该名称对应的值。

将Cookie对象写入响应,使用response的addCookie()方法将Cookie对象写入响应中。

response.addCookie(newCookie);

从请求中读取Cookie数据

Cookie发送到客户端保存,会自动随请求提交的相关网站,读取时需要调用jsp中request 对象的getCookies()方法,该方法返回HTTP请求中的Cookie对象数组,因此必须通过遍历的方式进行访问,大家自己看看下图的演示。

例子:6.3

 

 例子:6.4

例子:6.5 

Cookie的方法大家来看看,根据图:6.3

 例子:6.3

设置Cookie有效期

根据图 6.4 大家先来了解一下Cookie,那么设置Cookie有效的方法是调用Cookie对象的setMaxAge(int  expiry)方法,其中参数 expiry 代表 Cookie的有效期,以秒为单位。

比如:

Cookie name=new Cookie("username",username)

name.setMaxAge(60);

例子:6.4 

感谢大家的观看我们第二章《JSP核心内置对象》就讲完了,希望大家课下多多练习,那么下一章我们学习《JSP数据访问》,大家多多练习,那么这一章就到此结束了,拜拜喽。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值