[JSP]JSP内置对象(4)

本文详细介绍了JSP中的Config、PageContext及exception对象的作用及常用方法。Config对象用于Servlet的配置,PageContext对象用于包装页面上下文并提供访问属性的方法,exception对象用于处理未捕获的异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Config对象

config对象被封装成javax.servlet.ServletConfig接口,表示Servlet的配置。当一个Servlet初始化时,容器把某些信息通过此对象传递给Servlet。

config对象常用方法:

1、getInitParameter(String name):获取名字为name的初始参数值

2、Enumeration getInitParameterNames():获取这个JSP所有初始参数的名字

3、getServletContext():返回执行者Servlet上下文

example.jsp: 例子需要在web.xml中添加参数

<html>
<body>
    <%
        Enumeration a=config.getInitParameterNames();

        while(a.hasMoreElements())
        {
            String name=(String)a.nextElement();
            if(name.equals("pfc")||name.equals("pku"))
            {
                String value=config.getInitParameter(name);
                out.print("参数名:"+name+"&nbsp;&nbsp;"+"参数值:"+value+"<br>");
            }
        }

     %>
  </body>
</html>

2、PageContext对象

pageContext对象被封装成javax.servlet.jsp.PageContext接口,它为JSP页面包装页面上下文,提供存取所有关于JSP程序执行时期所要用到的属性方法。
pageContext对象常用方法:

方法名称说明
forward(String relativeURL)把页面转发到另一个页面或者Servlet组件上
getAttribute(String name[,int scope])获取属性的值
getException()返回当前的exception对象
getRequest()返回当前的request对象
getResponse()返回当前的response对象
getServletConfig()返回当前页面的ServletConfig对象
getServletContext()返回ServletContext对象,这个对象对所有页面都是共享的
getSession()返回当前页面的session对象
setAttribute(String name,String value)设置属性值
removeAttribute(String name)删除指定属性
invalidate()返回ServletContext对象,全部销毁

关于页面共享的例子:

pageContext.jsp

<html>
 <body>
    <form method=post action="PageContext1.jsp">
        <table>
            <tr>
                <td>name</td>
                <td><input type=text name=name></td>
            </tr>
            <tr colspan=2>
                <td><input type=submit value="log in"></td>
            </tr>
        </table>
    </form>
  </body>
</html>

pageContext1.jsp

<html>
  <body>
    <%
        ServletRequest req=pageContext.getRequest();
        String name = req.getParameter("name");
        out.println("name="+name);
        pageContext.setAttribute("userName", name);
        pageContext.getServletContext().setAttribute("sharevalue", "多个页面共享的值");
        pageContext.getSession().setAttribute("sessionValue","只有在session中才是共享的值");
        out.println("<br>pageContext.getAttribute('userName')=");
        out.println(pageContext.getAttribute("userName"));
     %>
     <a href="pageContext2.jsp">下一步---&gt;</a>
  </body>
</html>

pageContext2.jsp

<html>
  <body>
    <%
        out.println("<br>pageContext.getAttribute('userName')=");
        out.println(pageContext.getAttribute("userName"));
        out.println("<br>pageContext.getSession().getAttribute('sessionValue')=");
        out.println(pageContext.getSession().getAttribute("sessionValue"));
        out.println("<br>");
        out.println("<br>pageContext.getServletContext().getAttribute('sessionValue')=");
        out.println(pageContext.getServletContext().getAttribute("sessionValue"));
     %>
  </body>
</html>

这里写图片描述
pageContext.jsp
这里写图片描述
pageContext1.jsp
这里写图片描述
pageContext2.jsp

3、exception对象

如果在JSP页面出现没有捕获的异常,就会生成exception对象,并把它传送到在page指令中设定的错误页面中,然后在错误处理页面中处理相应的exception对象。exception对象只有在错误页面(在页面指令里isErrorPage=true)才可以使用。
exception常用方法:

方法名称说明
getMessage()获取异常消息字符串
toString()以字符串形式返回对异常的描述

exception.jsp:

<%@ page language="java" import="java.util.*" errorPage="error.jsp" pageEncoding="UTF-8"%>
<html>
  <body>
     <%!int a[]={0,1,2};%>
     <%=a[3]%>
  </body>
</html>

error.jsp:

<%@ page language="java" import="java.util.*" isErrorPage="true"  pageEncoding="UTF-8"%>
<html>
  <body>
    <h2>
    <font color="red">
        错误原因:
        <%=exception.getMessage() %>
        <p>
        <%=exception.toString() %>
    </font>
    </h2>
  </body>
</html>

这里写图片描述

内容概要:本文针对火电厂参与直购交易挤占风电上网空间的问题,提出了一种风火打捆参与大用户直购交易的新模式。通过分析可再生能源配额机制下的双边博弈关系,建立了基于动态非合作博弈理论的博弈模型,以直购电价和直购电量为决策变量,实现双方收益均衡最大化。论文论证了纳什均衡的存在性,并提出了基于纳什谈判法的风-火利益分配方法。算例结果表明,该模式能够增加各方收益、促进风电消纳并提高电网灵活性。文中详细介绍了模型构建、成本计算和博弈均衡的实现过程,并通过Python代码复现了模型,包括参数定义、收益函数、纳什均衡求解、利益分配及可视化分析等功能。 适合人群:电力系统研究人员、能源政策制定者、从事电力市场交易的工程师和分析师。 使用场景及目标:①帮助理解风火打捆参与大用户直购交易的博弈机制;②为电力市场设计提供理论依据和技术支持;③评估不同政策(如可再生能源配额)对电力市场的影响;④通过代码实现和可视化工具辅助教学和研究。 其他说明:该研究不仅提供了理论分析,还通过详细的代码实现和算例验证了模型的有效性,为实际应用提供了参考。此外,论文还探讨了不同场景下的敏感性分析,如证书价格、风电比例等对市场结果的影响,进一步丰富了研究内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值