jsp中的pageContext 隐式对象的源代码在哪里可以找到 也就是.java文件

如题所述

jsp中的pageContext的源码需要去apache的官网查看,一般是封装在jspapi中。
pageContext对象
这个对象代表页面上下文,该对象主要用于访问JSP之间的共享数据。
pageContext是PageContext类的实例,使用pageContext可以访问page、request、session、application范围的变量。

getAttribute(String name):取得page范围内的name属性。
getAttribute(String name,int scope):取得指定范围内的name属性,其中scope可以是如下4个值:
PageContext.PAGE_SCOPE:对应于page范围。
PageContext.REQUEST_SCOPE:对应于request范围。
PageContext.SESSION_SCOPE:对应于session范围。
PageContext.APPLICATION_SCOPE:对应于application范围。
详细内容请参考:

https://tomcat.apache.org/tomcat-7.0-doc/jspapi/javax/servlet/jsp/PageContext.html
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-31
jsp中的pageContext 隐式对象在TOMCAT lib 文件夹 中 的jsp-api.jar中。
具体类为:javax.servlet.jsp.PageContext;

JSP中用的pageContext 隐式对象,应用场景是在EL标签里面用吧。
标签定义同样在jsp-api.jar里面:
javax.servlet.jsp.el.ImplicitObjectELResolver;
javax.servlet.jsp.el.ScopedAttributeELResolver;追问

只有jsf-api.jar 解压后也没有servlet

追答

你的Tomcat版本是多少?
tomcat-5 :在\common\lib\jsp-api.jar 下
tomcat-6\7 :在\lib\jsp-api.jar 下

jsf-api.jar一般是包含在在J2EE中的。

jsp-api.jar 是Tomcat安装目录下的。两者不一样。

追问

已经解决了 去Tomcat官网下的 一个叫 apache-tomcat-6.0.35-src里面就有,你说的哪里我没有看到

本回答被网友采纳
第2个回答  2012-07-31
pageContex是JSP九种内置对象的一种,当我们第一次访问某个JSP时,应用服务器会将这个JSP转换为Servlet,还会在这个Servlet的_jspService方法中定义并且初始化九种内置对象,如果你使用的应用服务器是Tomcat,你可以在work目录下找到你项目的路径然后就能找到将JSP转换的Servlet,比如:login.jsp 你会对应找到login_jsp.java
下面是截取_jspService方法的一部分
public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException {
PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
JspWriter out = null;
Object page = this;
JspWriter _jspx_out = null;
PageContext _jspx_page_context = null;

try {
response.setContentType("text/html;charset=UTF-8");
pageContext = _jspxFactory.getPageContext(this, request, response,
null, true, 8192, true);
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
out = pageContext.getOut();
_jspx_out = out;

......
}
第3个回答  2012-07-31
tomcat里面有,啊,去找吧。。追问

里面只有你访问的JSP页面的.class .java文件啊 难道是在那个.java文件中

追答

我就不给你全部贴出来了,自己去tomcat网站下载你对应的src,然后加到项目里面,就可以查看源码了。不懂的继续问我。
public abstract class PageContext
extends JspContext
{

/**
* Sole constructor. (For invocation by subclass constructors,
* typically implicit.)
*/
public PageContext() {
// NOOP by default
}

/**
* Page scope: (this is the default) the named reference remains available
* in this PageContext until the return from the current Servlet.service()
* invocation.
*/
public static final int PAGE_SCOPE = 1;
/**
* Request scope: the named reference remains available from the
* ServletRequest associated with the Servlet until the current request
* is completed.
*/
public static final int REQUEST_SCOPE = 2;
/**
* Session scope (only valid if this page participates in a session):
* the named reference remains available from the HttpSession (if any)
* associated with the Servlet until the HttpSession is invalidated.
*/
public static final int SESSION_SCOPE = 3;
/**
* Application scope: named reference remains available in the
* ServletContext until it is reclaimed.
*/
public static final int APPLICATION_SCOPE = 4;
/**
* Name used to store the Servlet in this PageContext's nametables.
*/
public static final String PAGE = "javax.servlet.jsp.jspPage";
/**
* Name used to store this PageContext in it's own name table.
*/

追问

就是这个喔 用的是MYEclipse 自带的Tomcat 不过还是没明白你说的,可以详细点吗?

追答

先去下载你对应的tomcat源码,然后在MyEclipse里面,按住Ctrl 双击PageContext,MyEclipse会弹出一个对话框,然后把刚才下载的src进行添加,就可以看到 源码了。。还是不明白的话,只能帮你远程了。

本回答被提问者采纳
第4个回答  2012-07-31
tomcat的源代码里应该有吧,因为tomcat实现啦Servlet标准嘛,应该是这样儿追问

里面只有你访问的JSP页面的.class .java文件啊 难道是在那个.java文件中

追答

我说的是tomcat的源码,也就是你用的web 容器的源码,比如tomcat, jboss这些的源码,你下载这些的时候应该还可以下载到他们的源码,可以在那里找一找

隐式对象什么意思?
就是潜在的恋爱对象。也可以指暗恋对象,或是互相暧昧的对象。

EL表达式语言定义
EL提供了一种简洁的语法,允许开发者访问PageContext属性、嵌套属性,以及集合、操作符(包括算术、关系和逻辑操作)的访问符。EL的另一大特色是能够映射到Java类中的静态方法,形成可扩展的函数,同时提供一组隐式对象,方便开发者进行复杂的逻辑操作和数据处理。这使得JSP脚本的编写更加灵活和高效,简化了...

Java的内置对象有哪些?
在JSP中,如果要将封装好的Cookie对象传送到客户端,可使用Response对象的addCookie()方法。 例如:response.addCookie(c)。 (4)读取保存到客户端的Cookie 使用Request对象的getCookie()方法,执行时将所有客户端传来的Cookie对象以数组的形式排列,如果要取出符合需要的Cookie对象,就需要循环比较数组内每个对象的关键字。

EL表达式有效表达式
3、隐式对象:JSP表达式语言定义了一组隐式对象,它们允许访问页面上下文、请求参数、请求头、cookie、初始化参数以及各种范围的变量,如Web上下文、会话、请求、页面等。这些隐式对象简化了访问和操作这些对象的过程。例如,${pageContext.response}访问页面响应对象,${param.name}访问请求参数,${header.na...

Java怎么向JSP传递多个参数?
可以把参数存到 会话中,看情况存到那里,比如request.setAttribute("msg",“你好”) ;只要存到九大隐式对象里都可以。JSP 通过 九大隐式对象取数据就是了 如: ${requestScope.msg} 取出就是: 你好 九大隐式对象(page,request,response,out,session,application,config,pageContext,exception)...

Java中的El表达式是什么,怎么用呢?可以举例吗?
pageContext JSP 页的上下文。它可以用于访问 JSP 隐式对象,如请求、响应、会话、输出、servletContext 等。例如,${pageContext.response} 为页面的响应对象赋值。此外,还提供几个隐式对象,允许对以下对象进行简易访问:术语 定义 param 将请求参数名称映射到单个字符串参数值(通过调用 ServletRequest....

jsp标签中的 "${表达式}"表示什么?
在比如${sessionScope.username},那么便会获取Session里面的username的值,它不能在代码块也就是<% %>里使用。作用:EL(Expression Language)是为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化。

jsp如何使用out.print()
在_jspService方法中查看out对象的定义,可以看到out对象的类型为JspWriter.在JSP的API的帮助文档的javax.servlet.jsp包中,可以找到JspWriter的帮助信息,JspWriter继承了java.io.Writer。print方法是在子类JspWriter中定义的,writer方法是在父类Writer中定义的,重载的print方法可以将各种类型的数据转换成字符...

java中EL表达式怎么用
EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法。使用EL表达式获取数据语法:“${标识符}”EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、requestsession、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回””...

相似回答