【问题标题】:How to retrieve init parameter in jsp如何在jsp中检索init参数
【发布时间】:2013-02-20 05:48:33
【问题描述】:

我尝试使用jsp获取url数据,为此我使用了jsp代码

  String Url = pageContext.getServletConfig().getInitParameter("url").toString();
 out.println(Url);  

web.xml

<servlet>
<servlet-name>IploginJSP</servlet-name>
<jsp-file>/Iplogin.jsp</jsp-file>
    <init-param>
    <param-name>url</param-name>
    <param-value>http://xxx.xxx.xxx.xxx:9000</param-value>
    </init-param>
</servlet>
<servlet-mapping>
<servlet-name>IploginJSP</servlet-name>
<url-pattern>/Iplogin</url-pattern>
</servlet-mapping>

但我显示 NullPointerException

【问题讨论】:

    标签: jsp servlets


    【解决方案1】:

    我认为这将解决您的问题。

    更改web.xml 文件后请重新启动服务器。

    web.xml

    <servlet>
        <servlet-name>GetInitParam</servlet-name>
        <jsp-file>/GetInitParam.jsp</jsp-file>
        <init-param>
            <param-name>url</param-name>  
            <param-value>hello</param-value>  
        </init-param>
    </servlet>
    <servlet-mapping>  
        <servlet-name>GetInitParam</servlet-name>  
        <url-pattern>/GetInitParam.jsp</url-pattern>  
    </servlet-mapping> 
    

    GetInitParam.jsp

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Example of getting init param</title>
    </head>
    <body>
    <%!
        String url= null;
        public void jspInit() { 
            ServletConfig config = getServletConfig(); 
            url= config.getInitParameter("url");
        }
    %>
    <%
        System.out.println(url);
    %>
    </body>
    </html>
    

    更新 1

    正如您在 cmets to access parameters in all jsp files 中所问的那样。 要访问所有 jsp 文件中的参数,您必须在 web.xml 中设置 &lt;context-param&gt;

    在您的 web.xml 中添加以下行

    <context-param>
    <param-name>param1</param-name>
    <param-value>hello</param-value>
    </context-param>
    

    您可以在jsp 文件中通过以下方式访问此参数:

    <% 
        String param1=application.getInitParameter("param1"); 
        System.out.println(param1);
    %>
    

    更新2

    web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
    
    <context-param>
    <param-name>param1</param-name>
    <param-value>hello</param-value>
    </context-param>
    </web-app>
    

    JSP 文件

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Example of getting init param</title>
    </head>
    <body>
    <%
        String param1=application.getInitParameter("param1"); 
        System.out.println(param1);
    %>
    </body>
    </html>
    

    【讨论】:

    • tnx Mr.Bhushan 我把jsp代码放在web.xml还是单独的jsp文件中?。
    • @Ram 你必须把jsp代码放到jsp文件里,我已经更新了我的代码请看。
    • Ya.. Tnx 很多 Mr.Bhushan。我克服了错误。我需要访问多个 jsp 文件的 IP 地址,这可能吗?...
    • @Ram 你的意思是url variablejspInit() 之外无法访问吗?
    • @Ram 是的,您可以在多个 jsp 中访问 url,您必须为此使用 &lt;context-param&gt;
    【解决方案2】:

    大家普遍认为在JSP 中我们应该使用EL 而不是scriptlet。 所以这个版本在 JSP 文件中有 EL:

    <%@ taglib prefix='c' uri='http://java.sun.com/jsp/jstl/core' %>
    <HTML>
    <HEAD>
       <TITLE>Using of initParam</TITLE>
    </HEAD>
    <BODY >
        <c:set var="LANDING_DEFAULT_URL"  value="${initParam.LANDING_DEFAULT_URL}"/>
        <p>${LANDING_DEFAULT_URL}"</p> 
    </BODY>
    

    和 web.xml:

    <context-param>
      <param-name>LANDING_DEFAULT_URL</param-name>
      <param-value>https://xxx.xxx.xxx.com/</param-value>
    </context-param>
    

    【讨论】:

      猜你喜欢
      • 2021-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-21
      • 2015-05-15
      • 2019-05-05
      • 2016-11-01
      相关资源
      最近更新 更多