jsp内置对象 application

本文详细介绍了JSP的九个内置对象,包括application、config、out等,解释了它们在_jspService()方法中的作用及如何在JSP页面中直接使用。特别关注了application对象的使用,展示了如何在web应用范围内共享数据,并通过web.xml配置参数。
摘要由CSDN通过智能技术生成

关于jsp内置对象:

jsp内置对象有9个,是在jsp编译成servlet后的_jspServide()方法中自动定义的,故可以在jsp页面脚本中直接使用。分别为:application、config、out、page、pageContext、session、exception、request、response,其中request和response为_jspService()方法的参数,其余除去exception外都在_jspService()方法中定义,exception对象只有在页面出错时才会初始化。

Tomcat中 work\Catalina\localhost\webName\packagePath\pageName_jsp.java 下_jspService()源码:

public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
      throws java.io.IOException, javax.servlet.ServletException {
    //...
    final javax.servlet.jsp.PageContext pageContext;
    javax.servlet.http.HttpSession session = null;
    final javax.servlet.ServletContext application;
    final javax.servlet.ServletConfig config;
    javax.servlet.jsp.JspWriter out = null;
    final java.lang.Object page = this;
    javax.servlet.jsp.JspWriter _jspx_out = null;
    javax.servlet.jsp.PageContext _jspx_page_context = null;
    //...
}

关于application

application是jsp的一个内置对象,数据存储结构类似于map,作用域为整个web应用(application范围)即application中的数据可以被本web应用的所有jsp或者servlet中访问。

application的作用为:在整个web应用中共享数据;访问web应用的配置参数;

1、jsp访问application:

<% 
    application.setAttribute("key",value);   //value为Object
    application.getAttribute("key");
%>

2、Servlet中访问application:

//Servlet中没有application对象,需要显示获取web应用的ServletContext实例,每个web应用只有一个ServletContext实例
ServletContext sc = getServletConfig().getServletContext();
sc.setAttribute("key", value);
sc.getAttribute("key");

3、用于获取web应用配置参数

可以在web.xml中使用context-param标签设置web配置参数,用application的getInitParameter()方法获取配置参数

web.xml配置web参数:

<context-param>
    <param-name>key</param-name>
    <param-value>value</param-value>
</context-param>

jsp与servlet中获取使用 application.getInitParameter("key") 即可

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值