欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

6、JSP语言基础之---JSP内置对象

程序员文章站 2022-06-21 22:40:22
对应书本第6章 注意,本章的9个内置对象都是java语言的,而非javascript的,所以代码放在中。 jsp内置对象有9个,不需要先定义可以直接用。 这9个分别是:request、resp...

对应书本第6章
注意,本章的9个内置对象都是java语言的,而非javascript的,所以代码放在中。
jsp内置对象有9个,不需要先定义可以直接用。
这9个分别是:request、response、session、application、out、pagecontext、config、page、exception

6.2 request对象

只要有http请求就有request
request对象封装了客户端产生的http请求的所有细节,包括http头信息、信息、请求方式、请求参数等。
直接用request对象的方法即可。

请求参数
超链接跳转也是一种访问请求,超链接可以带有参数。例

index.jsp中有:
处理页
deal.jsp中有



页面转发的属性
语法:

request.setattribute(string name,object object);
request.getattribute(string name);

例子:

index.jsp中:






deal.jsp中:




获取cookie
首先保证客户机允许使用cookie!!!

cookie可以标识用户身份,记录用户名和密码,跟踪重复用户等。
是将cookie以key/value形式保存到本地某个指定目录。
方法有:
cookie cookie = new cookie(“cookie名”, cookie值);
cookie[ ] cookies = request.getcookies();
response.addcookie(cookie);
cookies[i].getname() //获取cookie的key
cookies[i].getvalue() //获取cookie的value

例:通过cookie保存并读取用户登录信息
效果如下:
6、JSP语言基础之---JSP内置对象

index.jsp






通过cookie保存并读取用户登录信息



        游客您好,欢迎您初次光临!
        
            请输入姓名:
            
        

        欢迎[]再次光临
您注册的时间是: ----------------------------------------------- deal.jsp 写入cookie <script type="text/javascript">window.location.href="index.jsp"</script> 总结: 整体结构是index.jsp中用到deal.jsp,所以index.jsp有request,deal.jsp有response; 在jsp文件中既有java代码又有html,有的地方是两者结合着写,但是java代码放在内; 为啥在点击“确定”按钮后就会到deal.jsp执行?因为浏览器并不是将所有的表单控件全部发送到服务器的,而是会查找所有的【成功控件】,只将这些成功控件的数据发送到服务端, 什么是成功控件呢?简单地来说,成功控件就是:每个表单中的控件都应该有一个name属性和”当前值“, 在提交时,它们将以 name=value 的形式做为提交数据的一部分。

request获取客户端信息(p126)
例:index.jsp




使用request对象的相关方法获取客户端信息



客户提交信息的方式:
使用的协议:
获取发出请求字符串的客户端地址:
获取发出请求字符串的客户端地址:
获取提交数据的客户端ip地址:
获取服务器端口号:
获取服务器的名称:
获取客户端的主机名:
获取客户端所请求的脚本文件的文件路径:
获得http协议定义的文件头信息host的值:
获得http协议定义的文件头信息user-agent的值:
获得http协议定义的文件头信息accept-language的值:
获得请求文件的绝对路径: 结果: 客户提交信息的方式:get 使用的协议:http/1.1 获取发出请求字符串的客户端地址:/6.05/index.jsp 获取发出请求字符串的客户端地址:http://localhost:8080/6.05/index.jsp 获取提交数据的客户端ip地址:0:0:0:0:0:0:0:1 获取服务器端口号:8080 获取服务器的名称:localhost 获取客户端的主机名:0:0:0:0:0:0:0:1 获取客户端所请求的脚本文件的文件路径:/index.jsp 获得http协议定义的文件头信息host的值:localhost:8080 获得http协议定义的文件头信息user-agent的值:mozilla/5.0 (compatible; msie 10.0; windows nt 6.1; win64; x64; trident/6.0) 获得http协议定义的文件头信息accept-language的值:zh-cn 获得请求文件的绝对路径:d:\java\eclipse_ee\lifan_workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\5\index.jsp

request获取页面的国家信息
通过http请求能知道是从哪个国家发出的
java.util.locale类封装了一个国家和该国所使的一种语言。
见test.jsp





insert title here





6.3 response对象

用于响应客户请求,向客户端输出信息。
它封装了jsp产生的响应,并发送到客户端。
请求的数据可以各种数据类型,甚至是文件。
response对象在jsp页面内有效。

重定向网页

重定向与转发区别:
假设你去办理某个执照
重定向:你先去了a局,a局的人说:“这个事情不归我们管,去b局”,然后,你就从a退了出来,自己乘车去了b局。
转发:你先去了a局,a局看了以后,知道这个事情其实应该b局来管,但是他没有把你退回来,而是让你坐一会儿,自己到后面办公室联系了b的人,让他们办好后,送了过来。

代码:index.jsp重定向到login.jsp

index.jsp





login.jsp
login的代码。。。

对页面的一些设置

    

设置输出缓冲
服务器输出到客户端的内容不直接到客户端,而是先到输出缓冲区
对缓冲区配置的方法:
6、JSP语言基础之---JSP内置对象
例:
设缓冲区大小为32kb
response.setbuffersize(32);喎? f/ware/vc/"="" target="_blank" class="keylink">vcd4kcgokpggyiglkpq=="64-session对象">6.4 session对象

比request对象用途更广!!

session:会话。会保存用户的状态。
为啥会有session?因为http协议是无状态协议,服务器不保存相关信息,为了弥补该缺点,http协议提供了session。
一个session会存在直到浏览器关闭,指整个浏览器关闭不是仅关闭此页面(客户端长时间不向服务器发请求session也会自动消失,时间取决于服务器,例如tomcat默认30分钟,该时间可通过编写程序修改)
一个session就是一个打电话

创建及获取会话:
session.setattribute("username","陈默");
session.getattribute("username");

将session中某个对象移除:
session.removeattribute("username");

session手动销毁:
session.invalidate();

会话超时的管理:
一般session的生命周期在20-30分钟间,session提供了设置会话生命周期的方法,分别为:
session.getlastaccessedtime():返回客户端最后一次与会话关联的请求时间;
session.getmaxinactiveinterval():以秒为单位返回一个会话内两个请求最大时间间隔;
session.setmaxinactiveinterval():以秒为单位设置session的有效时间
例  session.setmaxinactiveinterval(10000);

例子:
例6.18(书本p133)在index.jsp中用户名输入框;在session.jsp将显示index.jsp中的用户名,以及一个最喜欢地方输入框;result.jsp将显示用户名及最想去的地方
代码:

本例总结:相邻页面间跳转,一些数据直接用request.getparameter()方法就可获得,而如果第三个页面需要用到第一个页面输入的属性,则需要在第二个页面将第一个页面的某个属性添加到session中,第三个页面通过session获得第一个页面的属性。

#########index.jsp






  
    ">

    my jsp 'index.jsp' starting page
    
    
        
    
       
    
  

  
  
  
  。。。。。。。。。
   
   
  
  




#########session.jsp

以上与index.jsp那部分相同
 
  
    
  
   
      
        您的名字是:
        
      
      
        您最喜欢去的地方是:
        
          
        
      
      
        
          

###############result.jsp 以上与index.jsp那部分相同

显示答案

您的名字是:

您最喜欢去的地方是:

6.5 application对象

用途:用于保存所有应用程序中的公有数据;
存在:服务器启动时自动创建,服务器停止时销毁;
没被销毁时,所有用户均可共享该application对象。
与session对比:application对象生命更长,类似于“全局变量”

获取初始化参数parameter
在 项目名/webcontent/web_inf/web.xml 中

例子,在web.xml 配置连接mysql所需的url参数


    urljdbc:mysql://127.0.0.1:3306/db_database

application有两种方法:
application.getinitparameter(string name) //根据参数名求参数值
application.getinitparameternames() //获取所有参数名组成枚举类型

例:获取web.xml中全部初始化参数



读写attribute
session只在当前客户的会话范围内有效,当超过保存时间,session对象被收回;application对象在整个应用区域内有效。

application的方法有:
getattributenames()
getattribute(string name)
setattribute(string key,object obj)
removeattribute(string name)

6.6 out对象

用途:用于在浏览器输出信息,管理服务器上的输出缓冲区。

向浏览器输出数据
例:

    

管理缓冲
方法有:
clear()
clearbuffer()
flush()
isautoflush()
getbuffersize()

6.7 其他内置对象

pagecontext、config、page、exception

喎?>