Jsp 九大内置对象

Jsp 九大内置对象

什么是内置对象?

JSP 提供了由容器实现和管理的内置对象,也可以称之为隐含对象,由于JSP使用Java作为脚本语言,所以JSP将具有强大的对象处理能力,并且可以动态创建Web页面内容。但Java语法在使用一个对象前,需要先实例化这个对象,这其实是一件比较烦琐的事情。JSP为了简化开发,提供了一些内置对象,用来实现很多JSP应用。在使用JSP内置对象时,不需要先定义这些对象,直接使用即可

四个作用域对象:

request对象

request对象封装了由客户端生成的HTTP请求的所有细节,主要包括HTTP头信息、系统信息、请求方式和请求参数等。通过request对象提供的相应方法可以处理客户端浏览器提交的HTTP请求中的各项参数。

// 设置中文编码

request.setCharacterEncoding("utf-8");

// 按照参数名称,获取获取请求中的参数值

request.getParameter("");

// 根据目标地址,获取RequestDispatcher请求转发对象

request.getRequestDispatcher("");

// 在请求转发前,存入KV键值对

request.setAttribute("key","value");

// 在请求转发后,根据key获取value

request.getAttribute("key");

// 获取当前应用在服务器端的真实路径

StringrealPath=request.getRealPath("");

System.out.println("项目运行时的服务器真实路径:"+realPath);

//获取项目运行时的应用的访问名称

StringcontextPath=request.getContextPath();

System.out.println("项目运行时的应用的访问名称:"+contextPath);

//当前请求的方式

Stringmethod=request.getMethod();

System.out.println("当前请求的方式:"+method);

// 获取发起本次请求的客户端IP地址

Stringremote=request.getRemoteAddr();

System.out.println("客户端的IP地址:"+remote);

// 获取服务器本地的IP地址

Stringlocal=request.getLocalAddr();

System.out.println("服务器的IP地址:"+local);

session对象

指的是客户端与服务器的一次会话 , 一次"会话"包含若干次"请求"。从客户连接到服务器的一个 WebApplication 开始 , 直到客户端与服务器断开连接为止 ; 它是 HTTPSession 类的实例 , 作用域为 session ( 会话期 )Session会话的生命周期:会话开始:客户端的第1次"请求"  会话结束:1.客户端浏览器关闭;2.客户端超时(Tomcat默认为30分钟);3.服务器关闭;

// 获取当前Session会话对象

HttpSessionsession=request.getSession();

System.out.println("Session ID: "+session.getId());

//将当前KV键值对,存入Session会话(服务器端)

session.setAttribute("key","value");

//从当前Session会话中,根据key获取value

session.getAttribute("key");

DatecreationDateTime=newDate(session.getCreationTime());

System.out.println("Session 的创建时间:"+creationDateTime);

DatelastAccessedDateTime=newDate(session.getLastAccessedTime());

System.out.println("本次会话最后一次访问时间:"+lastAccessedDateTime);

//使用Session保存访问次数

HttpSessionsession=request.getSession();

intcount=0;

if(session.getAttribute("count")!=null) {

    // 获取之前存储的数值

    count=Integer.parseInt(session.getAttribute("count").toString());

    // 重新保存

    session.setAttribute("count",++count);

}else{

    // 第一次保存

    session.setAttribute("count",++count);

}

//设置中文编码

response.setContentType("text/html;charset=utf-8");

PrintWriterout=response.getWriter();

out.print("您的访问次数为:<strong>"+session.getAttribute("count")+"</strong>");

application对象

实现了用户间数据的共享 , 可存放全局变量 ; 它开始于服务器的启动 , 直到服务器的关闭 , 在此期间 , 此对象将一直存在 ; 这样在用户的前后连接或不同用户之间的连接中 , 可以对此对象的同一属性进行操作 ; 在任何地方对此对象属性的操作 , 都将影响到其他用户对此的访问 ; 服务器的启动和关闭决定了 application 对象的生命 ; 它是 ServletContext 类的实例。

//使用application对象保存访问次数

ServletContextapplication=request.getServletContext();

intcount=0;

if(application.getAttribute("count")!=null) {

    // 获取之前存储的数值

    count=Integer.parseInt(application.getAttribute("count").toString());

    // 重新保存

    application.setAttribute("count",++count);

}else{

    // 第一次保存

    application.setAttribute("count",++count);

}

//获取application应用的真实路径

StringrealPath=application.getRealPath("");

System.out.println("应用真实路径:"+realPath);

//获取应用访问名称

System.out.println("应用访问名称:"+application.getContextPath());

//获取ession超时时间

System.out.println("Session超时时间:"+application.getSessionTimeout());

pageContext 对象

提供了对 JSP 页面内所有的对象及名字空间的访问 , 也就是说他可以访问到本页所在的 session , 也可以取本页面所在的 application 的某一属性值 , pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。

// 将KV键值对,存入"pageContext"页面"范围内

    pageContext.setAttribute("key","value");

五个其它内置对象:

config 对象

config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。

out对象:

out 对象是 JspWriter 类的实例,是向客户端输出内容常用的对象 ;用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。

PrintWriterout=response.getWriter();

    out.print("<script>");

    out.print(" alert('修改成功');");

    out.print(" location='list_product.jsp';");

    out.print("</script>");

response 对象:

response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。

//处理响应过程中的中文乱码

response.setContentType("text/html;charset=utf-8");

//获取响应输出对象

PrintWriterout=response.getWriter();

//重定向客户端的请求

response.sendRedirect("product.html");

page 对象

page 对象代表JSP本身,只有在 JSP 页面内才是合法的。 page 对象本质上是包含当前 Servlet 接口引用的变量,可以看作是 this 关键字的别名。

exception 异常对象

exception 对象用来处理JSP文件执行时发生的所有错误和异常,只有在page指令中设置 isErrorPage属性值为true的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。exception对象几乎定义了所有异常情况,在Java程序中,可以使用try...catch关键字来处理异常情况,如果在JSP页面中出现没有捕获到的异常,就会生成exception对象,并把exception对象传送到在page指令中定义的错误页面中,然后在错误页面中处理相应的exception对象。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,295评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,928评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,682评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,209评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,237评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,965评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,586评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,487评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,016评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,136评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,271评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,948评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,619评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,139评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,252评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,598评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,267评论 2 358