How to retrieve init parameter in jsp

前端 未结 2 934
傲寒
傲寒 2021-01-02 09:00

I try to get url data using jsp, for that i used jsp code as

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


        
相关标签:
2条回答
  • 2021-01-02 09:20

    It's generally accepted that in JSP we should to use EL rather than scriptlet. So this version with EL in JSP file:

    <%@ 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>
    

    and web.xml:

    <context-param>
      <param-name>LANDING_DEFAULT_URL</param-name>
      <param-value>https://xxx.xxx.xxx.com/</param-value>
    </context-param>
    
    0 讨论(0)
  • 2021-01-02 09:28

    I think this will solve your issue.

    Please restart your server after making changes to the web.xml file.

    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>
    

    Update 1

    As you asked in your comments to access parameters in all jsp files. to access parameters in your all jsp files you have to set <context-param> in your web.xml

    Put following lines in your web.xml

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

    you can access this parameters in following way in your jsp file:

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

    Update2

    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 FILE

    <%@ 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>
    
    0 讨论(0)
提交回复
热议问题