Java EE JSP内置对象及表达式语言

一、JSP内置对象

JSP根据Servlet API规范提供了一些内置对象,开发者不用事先声明就可使用标准变量来访问这些对象。

JSP提供了9种内置对象:

(一)、request

简述:

JSP编程中最常用的对象,代表来自客户端的请求,调用request对象相应的方法可以获取关于客户请求的信息。

常见方法的用法示例:

复制代码
 1     <font size=5>
 2     <br>客户端使用的协议是:
 3     <%
 4         String protocol = request.getProtocol();
 5         out.println(protocol);
 6     %>
 7     <br>获取接收客户提交信息的页面:
 8     <%
 9         String path = request.getServletPath();
10         out.println(path);
11     %>
12     <br>获取客户提交信息的长度:
13     <%
14         int length = request.getContentLength();
15         out.println(length);
16     %>
17     <br>获取HTTP头文件中User-Agent的值:
18     <%
19         String headerFirst = request.getHeader("User-Agent");
20         out.println(headerFirst);
21     %>
22     <br>获取HTTP头文件中accept的值:
23     <%
24         String headerSecond = request.getHeader("accept");
25         out.println(headerSecond);
26     %>
27     <br>获取HTTP头文件中Host的值:
28     <%
29         String headerThird = request.getHeader("Host");
30         out.println(headerThird);
31     %>
32     <br>获取HTTP头文件中accept-encoding的值:
33     <%
34         String headerFourth = request.getHeader("accept-encoding");
35         out.println(headerFourth);
36     %>
37     <br>获取客户的IP地址:
38     <%
39         String IP = request.getRemoteAddr();
40         out.println(IP);
41     %>
42     <br>获取客户机的名称:
43     <%
44         String clientName = request.getRemoteHost();
45         out.println(clientName);
46     %>
47     <br>获取服务器的名称:
48     <%
49         String serverName = request.getServerName();
50         out.println(serverName);
51     %>
52     <br>获取服务器的端口号:
53     <%
54         int serverPort = request.getServerPort();
55         out.println(serverPort);
56     %>
57     </font>
复制代码

(二)、response

简述:

该对象用于向客户端发送数据,例如Cookie、HTTP文件头信息等数据。

通过response对象组织发送到客户端的信息,但组织方式比较底层故不建议一般程序开发人员使用,一般需向客户端发送文字信息时直接用out对象。

常见方法的用法说明及示例:

①、addCookie(Cookie cookie):向response对象添加一Cookie对象来保存客户端的用户信息,通过request对象的getCookies()方法获取该Cookie。

1 Cookie cookie = new Cookie("name","dlut");
2 response.addCookie(cookie);

②、addHeader(String name,String value):向response对象添加HTTP文件头,该头文件会传到客户端,若同名文件头存在则覆盖原来的文件头。

③、containsHeader(String name):判断response对象中指定名字的HTTP文件头是否存在。

④、sendError(int sc):向客户端发送错误信息。

⑤、setHeader(String name,String value):设定指定名字的HTTP文件头的值,若该值存在改值将被新值覆盖。

1 eg:让网页每隔5秒刷新一次
2 response.setHeader("Refresh","5");

⑥、setContentType(String value):设定返回response对象的类型。

⑦、sendRedirect(String url):将请求重新定义到一个新的页面。

(三)、out

简述:

out对象表示向客户端发送数据的对象,通过该对象发送的内容将在浏览器上显示,属于文本。

out对象内部包含了一个缓冲区。

常用方法:

print()、println()、clear()、clearBuffer()、flush()、getBufferSize()及getRemaining()

(四)、session

简述:

会话(session)是同一个用户发起的多个请求的集合,当用户第一次向站点发送请求时,服务器会创建一会话(session)对象,并为该对象分配一个唯一的会话ID,该会话ID作为每个请求的一部分传递,以此将用户与会话对象匹配便于让服务器跨多个请求记住客户机的状态。

会话(session)中保存和检索的信息必须是Java Object对象,而不是int等基本数据类型。

用法说明:

1.获取会话(session)对象

通过调用HttpServletRequest的getSession()获取当前请求的session对象。通常通过制定getSession()的参数为true使不存在现成的会话时自动创建一会话对象。

1 HttpSession session = request.getSession(true);

HttpSession对象生存与服务器上,通过Cookie或URL这类后台机制自动关联到请求的发送者。

2.存储与读取属性值

会话对象提供了一个内建的数据结构,该结构可以保存任意数量的键值对。

(1).存储

通过调用session对象的setAttribute(String name,Object object)方法存储属性值。

(2).读取

通过调用session对象的getAttribute(String name)方法读取属性值。

(五)、application

简述:

该对象代表运行在服务器上的Web应用程序,相当于Servlet上下文。

该对象一旦创建后会一直保持下去直至服务器关闭。

常见方法的用法说明:

方法名称 方法说明
getAtteibute(String name) 返回由name指定名字的application对象属性的值,该值为一Object对象。
setAttribute(String name,Object object) 用object初始化某个属性,该属性由name指定。
getAtteibuteNames() 返回所有application对象属性的名字,结果集是一Enumeration(枚举)类的实例。
getInitParameter(String name) 返回application初始化参数属性值,属性由name指定。
getServerInfo() 获得当前版本Servlet编译器的信息。
getMimeType() 获取组件MIME的类型。
getRealPath() 获取组件在服务器上的真实路径。

 

 

 

 

 

 

(六)、config

简述:

config内置对象是ServletConfig类的一个实例,用于JSP引擎在Servlet初始化时,通过config向它(Servlet)传递信息。这种信息可以是属性名/值匹配的参数,也可以是通过ServletContext对象传递的服务器的有关信息。一般在JSP开发中很少用到config内置对象,只有在编写Servlet时若需要重载Servlet的init()方法时才会用到。

常用方法:

方法名称 方法说明
getServletContext() 返回 一个含有服务器相关信息的ServletContext对象。
getInitParameter(String name) 返回初始化参数的值
getInitParameterNames() 返回包含了Servlet初始化所需要的所有参数,返回类型是枚举型

 


  

 

(七)、pagecontext

简述:

pageContext内置对象是一个比较特殊的对象,它相当于页面中所有其他对象功能的最大集成者,即使用它可以访问到本页面中所有其他的对象,例如前面已经描述的request、response、out和page对象等。由于在JSP中request和response等对象本来就可以通过直接调用方法使用,所以pageContext对象在实际JSP开发中很少使用到。

常用方法:

方法名称 方法说明
getRequest() 返回当前页面中的request对象。
getResponse() 返回当前页面中的response对象。
getSession() 返回当前页面中的session对象。
getServletContext() 返回当前页面中的application对象。
getPage() 返回当前页面中的page对象。
getOut() 返回当前页面中的out对象。
getException() 返回当前页面中的exception对象。
getServletConfig() 返回当前页面中的config对象。
setAttribute(String name) 给指定的属性名设置属性值。
getAttribute(String name) 根据属性名找到相应的属性值。
setAttribute(String name, Object obj, int scope) 在给定的范围内设置相应的属性值。
getAttribute(String name, int scope) 在给的范围内获取相应的属性值。
findAttribute(String name) 寻找一个属性并返回,如果查找不到则返回null。
removeAttribute(String name) 通过属性名删除掉某个属性。
removeAttribute(String name, int scope) 在指定的某个范围里删除某个属性。
getAttributeScope(String name,int scope) 返回某属性的作用域。
getAttributeNamesInScope(int scope) 返回指定范围内的所有属性名的枚举。
release() 释放pageContext占据的所有资料。
forward(String relativeURLpath) 使用当前页面重导到另一个页面。
include(String relativeURLpath) 使用当前位置包含的另一个页面。

 

 

 

 

 

 

 


         

 

 

 

 


         
         
         
    

 

(八)、page

简述:

page对象有点类似于Java编程中的this指针,就是指当前JSP页面本身。page是java.lang.Object类的对象。page对象在实际开发过程中并不经常使用。

常用方法:

方法名称 方法说明
getClass() 返回当时Object的类。
hashCode() 返回此时Object的哈希代码。
toString() 将此时的Object类转换成字符串。
equals(Object object) 比较此对象是否与指定的对象相等。
copy(Object object) 将此对象复制到指定的对象中。
clone() 对此对象进行克隆。

 

 

 

 

 

 

(九)、exception

简述:

该对象用来处理JSP文件在执行时所有发生的错误及异常。

常用方法:

方法名称 方法说明
getMessage() 返回错误信息。
printStackTrace() 以标准错误形式输出一个错误及错误的堆栈。
toString() 以字符串形式返回一个对异常的描述。

 

 

 

注意事项:(很重要)

必须在<%@page isErrorPage="true"%>的情况下才可以使用内嵌对象exception。

二、JSP内置对象对应类型及作用范围

JSP内置对象 对应类型 作用范围
request javax.servlet.servletRequest request
response javax.servlet.servletResponse page
session java.servlet.http.HttpSession session
application java.servlet.servletContext application
page java.lang.Object page
out java.servlet.jsp.JspWrite page
pagecontext java.servlet.jsp.PageContext page
config java.servlet.servletConfig page
exception java.lang.throwable page

 

 

 

 

 

 

 

 

三、表达式语言

表达式语言(EL):与JSP脚本相比,EL提供了一种更加简便的生成动态Web页面的方式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章 Java EE的基本知识 1 1.1 Java EE的出现及其特点 1 1.2 Java EE的分层模型和平台组成 4 1.2.1 Java EE的分层模型 4 1.2.2 Java EE的结构变形 5 1.2.3 Java EE平台的组成 7 1.3 Java EE参与人员的角色 9 1.4 开发工具Eclipse 10 1.5 小结 13 第2章 使用Jakarta Commons来简化开发 14 2.1 Jakarta Commons的功能和用法 14 2.2 小结 18 第3章 Java EE容器 19 3.1 什么是容器 19 3.2 Tomcat的安装和使用 20 3.3 小结 25 第4章 在Java EE中使用XML 26 4.1 什么是XML 26 4.1.1 理解XML 26 4.1.2 XML的语法 27 4.1.3 XML命名空间 31 4.2 XML能用来干什么 32 4.3 用DTD验证XML文档 33 4.4 用Schema验证XML文档 35 4.4.1 使用XML Schema 35 4.4.2 Schema的语法 37 4.5 用JAXP读写XML 44 4.6 Java EE中的JAXB 55 4.7 小结 64 第5章 使用Java Servlet开发动态网页 65 5.1 Servlet的概念和生命周期 65 5.2 如何编写Servlet 67 5.3 使用Eclipse和Tomcat开发Servlet实例——输出字符串响应 72 5.4 小结 77 第6章 JSP——前后台更好地分离 79 6.1 JSP的概念 79 6.2 JSP页面的组成 80 6.2.1 JSP的指令元素 82 6.2.2 JSP的脚本元素 83 6.2.3 JSP的标准动作元素 85 6.2.4 JSP中的内对象 87 6.3 实例——利用JSP制作图片缩略图 87 6.4 小结 90 第7章 JSTL——JSP标准标签库 91 7.1 JSTL基础 91 7.1.1 JSTL的核心标签库 92 7.1.2 JSTL中使用表达式语言 93 7.2 实例——利用JSTL标签生成数字序列 95 7.3 小结 97 第8章 JavaBean组件 98 8.1 JavaBean是什么 98 8.2 实例——在JSP中调用JavaBean 99 8.3 小结 106 第9章 开源Web开发框架Struts 107 9.1 Struts框架基础 107 9.1.1 Struts框架的出现及其优点 107 9.1.2 Struts的MVC框架 108 9.2 Struts的配 110 9.2.1 配Web.xml 110 9.2.2 配Struts-config.xml 111 9.2.3 多个配文件的使用 120 9.3 Struts的各种组件 121 9.3.1 Struts的处理流程 122 9.3.2 ActionServlet 123 9.3.3 Action类 123 9.3.4 ActionForm 125 9.3.5 ActionMapping 126 9.4 Struts标签 127 9.4.1 如何使用Struts标签 127 9.4.2 HTML标签 128 9.4.3 Bean标签 134 9.4.4 Logic标签 136 9.4.5 Nested标签 137 9.5 小结 138 第10章 新一代的Struts 2 139 10.1 Struts 2框架的特点 140 10.2 实例——Struts 2的“Hello World” 143 10.3 小结 151 第11章 利用JDBC访问数据库 152 11.1 JDBC基础 152 11.1.1 如何用JDBC访问数据库 152 11.2 实例——利用JDBC访问SQL Server数据库 154 11.3 小结 156 第12章 利用Hibernate访问数据库 157 12.1 ORM——关系-对象映射的概念 157 12.2 Hibernate基础 158 12.2.1 POJO对象 158 12.2.2 Hibernate映射文件 159 12.2.3 Hibernate配文件 159 12.3 使用Hibernate 161 12.4 小结 165 第13章 Struts和Hibernate实例——两个与登录有关的实例 166 13.1 Struts和Hibernate的开发环境配 166 13.1.1 数据库的安装和管理 166 13.1.2 Hibernate的安装 168 13.1.3 Struts的安装 169 13.2 实例一:用户密码验证和登录 170 13.2.1 总体设计 170 13.2.2 具体实现 170 13.2.3 实例小结 185 13.3 实例二:用户密码修改 185 13.3.1 总体设计 186 13.3.2 具体实现 186 13.3.3 运行实例 201 13.4 小结 201 第14章 JSF——类Swing的Web开发框架 202 14.1 JSF基础 202 14.2 实例——JSF处理用户登录 209 14.3 小结 215 第15章 利用JavaMail收发电子邮件 217 15.1 电子邮件协议和JavaMail 217 15.2 JavaMail核心类 218 15.2.1 Session类 218 15.2.2 Message类 218 15.2.3 Address类 219 15.2.4 Authenticator类 220 15.2.5 Transport类 220 15.2.6 Store和Folder类 220 15.3 实例——利用JavaMail收发邮件 221 15.3.1 准备阶段 221 15.3.2 编写发送邮件的实例 223 15.3.3 编写接收邮件的实例 235 15.4 小结 241 第16章 基于良好设计模式的Spring 243 16.1 Spring简介 243 16.2 实例——用Spring来打招呼 246 16.3 小结 248 第17章 JNDI和Java RMI远程调用 249 17.1 用Java RMI实现远程调用 250 17.2 利用JNDI定位资源 256 17.3 实例——分布式的HelloWorld 260 17.4 小结 264 第18章 Java消息服务 265 18.1 消息系统和JMS 265 18.1.1 JMS API 265 18.1.2 点对点消息模式 266 18.1.3 发布者/订阅者模式 267 18.1.4 同步和异步方式 268 18.2 编程模型 268 18.2.1 管理对象 269 18.2.2 连接对象 270 18.2.3 会话 270 18.2.4 消息产生者 270 18.2.5 消息消费者 271 18.2.6 消息 272 18.2.7 异常处理 272 18.3 实例——利用JMS收发消息 273 18.3.1 一个简单的点对点模式消息实例 273 18.3.2 一个简单的发布者/订阅者模式消息实例 279 18.4 小结 285 第19章 利用JXTA编写P2P应用 286 19.1 P2P模型 286 19.2 JXTA框架 288 19.3 实例——JXTA开发P2P实例 292 19.4 小结 296 第20章 实现业务逻辑的EJB 297 20.1 EJB基础知识 297 20.2 实例——利用EJB转换字符串 301 20.3 小结 307 第21章 Web Service 308 21.1 Web Service基础 308 21.2 实例——利用AXIS开发一个简单的Web Service 310 21.3 小结 314 第22章 Java EE的安全 315 22.1 利用JAAS进行验证和授权 315 22.2 利用JSSE进行安全传输 317 22.3 小结 317 第23章 Java EE的测试 319 23.1 开发者为什么需要学习测试 319 23.2 测试的基本概念 320 23.3 利用JUnit进行单元测试 324 23.4 利用StrutsTestCase对Struts进行测试 328 23.5 压力测试和JMeter 334 23.6 其他开源测试工具 339 23.7 小结 343

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值