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() 是可以获取到许多有项目的基本信息的。
时间: 2024-11-05 21:49:42