首页 > 代码库 > init-param和context-param 中获取数据的一个问题

init-param和context-param 中获取数据的一个问题

init-param  中的数据是要在制定的 servlet 下才能取的到数据的

其中获取 init-param  的可以用 这样的一个方式去获取

ServletConfig config = getServletConfig();
String name = config.getServletName("name")

 

或者在init方法中获取

public void init(ServletConfig config) throws ServletException {
     config.getInitParameter("name");
     super.init(config);
}

这两种获取额方式都要在web.xml  中配置对应的一个访问路径

贴上web.xml中的配置

<servlet>
     <servlet-name>test</servlet-name>
     <servlet-class>com.chen.servlet.MainServlet</servlet-class>
     <init-param>
         <param-name>username</param-name>
         <param-value>admin</param-value>
     </init-param>
</servlet>

 <servlet-mapping>
        <servlet-name>test</servlet-name>
        <url-pattern>/test</url-pattern>
 </servlet-mapping>

若要获取到 <init-param> 标签中的   init-param  值在访问的时候就必须要同/test 这样的对应路径去访问

程序员最不喜欢做的事情应该就是写同样的东西,还要写上好多份了吧,于是就有人用注解的方式去写发现取不到 <init-param标签内的值

<context-param> 中的数据

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

贴上servlet 的代码

@WebServlet("/te")
public class MainServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 
        ServletConfig config = getServletConfig();
        config.getInitParameterNames();  //获取 init-param 中的所有数据  
        String user = getInitParameter("user");  //获取指定的一个数据
getServletContext().getInitParameter("user") //获取 <context-param> 中的数据
} }

 

这边会犯的一个错误就是用注解的方式访问的时候回去获取 <init-param> 标签中的数据 ,其中的 getServletConfig() 是可以获取到许多有项目的基本信息的。

 

init-param和context-param 中获取数据的一个问题