config.getInitParameter()在JSP中返回null值?

时间:2017-04-10 09:44:27

标签: jsp

我尝试过使用JSP的示例,因为我试图在JSP中获取初始参数,该参数在web.xml中声明。但它返回空值。

见下面我的代码: Response_Config.html

<html>
<head>
<meta charset="ISO-8859-1">
<title>Response and Config Object Example</title>
</head>
<body>
    <form action="Imp_response.jsp">
        User Name : <input type="text" name="username" /><br />
        <input type="submit" value="Go"/>
    </form>
</body>
</html>

Imp_response.jsp

<body>
    <%
    System.out.println("Before Redirecting");
    String uname = request.getParameter("username");
    session.setAttribute("username", uname);
    response.sendRedirect("Imp_config.jsp"); %>
</body>

Imp_config.jsp

<body>
    <%
        out.println("Welcome !... "+session.getAttribute("username"));
        String uname=config.getInitParameter("company");    
        String degree = config.getInitParameter("degree");
        System.out.println("uname = "+uname);
        System.out.println("degree = "+degree);
    %>
    <h4>Company : <%= uname %></h4><br />
    <h4>Degree : <%= degree %></h4>
</body>

的web.xml

 <servlet>
  <servlet-name>ImplicitConfig</servlet-name>
  <jsp-file>/Imp_config.jsp</jsp-file>

  <init-param>
  <param-name>company</param-name>
  <param-value>ABC pvt ltd</param-value>  
  </init-param>

  <init-param>  
  <param-name>degree</param-name>
  <param-value>MCA</param-value>
  </init-param>
 </servlet>
 <servlet-mapping>
  <servlet-name>ImplicitConfig</servlet-name>
  <url-pattern>/Imp_config</url-pattern>
 </servlet-mapping>

申请流程为:Response_Config.html - &gt; Imp_response.jsp - &gt; Imp_config.jsp

当我将其作为整个应用程序运行时,它提供以下输出: 在我的网页

Welcome !... kavi   //I have entered User Name : kavi 
Company : null
Degree : null

但是,当我单独运行 Imp_config.jsp 时,它会提供以下输出:

Welcome !... null  //I know the session is null, when I run separately
Company : ABC pvt ltd
Degree : MCA

当我将其作为整个应用程序运行时,我不知道为什么它会产生Null值。请分享您的想法,我们将不胜感激。感谢

2 个答案:

答案 0 :(得分:0)

你应该这样使用:response.sendRedirect(“Imp_config”);

  

在JSP中,config是ServletConfig类型的隐式对象。

/Imp_config,你的servlet映射url允许jsp文件声明为servlet。

答案 1 :(得分:0)

代替action="Imp_response.jsp" 尝试action="Imp_response" 您需要精确一点,因为Java不会将两者视为相同。