서블릿을 사용하여 웹을 개발하는 첫 걸음을 내딛고 있습니다. 이제는 서블릿의 init 매개 변수와 컨텍스트 매개 변수를 검색하려고합니다.getInitParameterNames()는 init-parameters를 얻지 못합니다.
<?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" version="3.0">
<display-name>JediWebTutorial</display-name>
**<context-param>
<param-name>contextParam</param-name>
<param-value>contextValue</param-value>
</context-param>**
<servlet>
<servlet-name>GreeterServlet</servlet-name>
<servlet-class>jedi.servlets.GreeterServlet</servlet-class>
**<init-param>
<param-name>servletParam</param-name>
<param-value>servletValue</param-value>
</init-param>**
</servlet>
<servlet>
<servlet-name>GetParameterValuesServlet</servlet-name>
...
나는이처럼의 doGet 방법에서, GreeterServlet 내에서 그것을 얻으려고 :
예상대로protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletConfig config = getServletConfig();
ServletContext context = config.getServletContext();
Enumeration<String> servletParams = config.getInitParameterNames();
Enumeration<String> contextParams = context.getInitParameterNames();
for (String param : Collections.list(servletParams)) {
System.out.println(param);
}
for (String param : Collections.list(contextParams)) {
System.out.println(param);
}
...
은 콘솔이 이름을 보여줍니다 다음과 같이 그들은의 web.xml에 선언 "contextParam". 그러나 "servletParam"이름은 인쇄하지 않습니다.
저는 몇 시간 동안 고민 중이며 노드가 내부에 있으며 어떤 방법 으로든 GreeterServlet의 init() 메서드를 재정의하지 않을 것이라고 확신합니다 (일부 경우에는 문제의 원인으로보고 됨). 많은 토론 목록). 나는 웹에서 유사한 사건을 발견하지 못했다. 아마 내가 너무 초보적인 너무 단순한 문제이기 때문일 것이다. 어쨌든, 고맙게 여기는 누군가를위한 감사합니다!
그런데 도움이된다면 TomCat 7.0.34와 Eclipse Helios를 사용하고 있습니다.
감사합니다. 실제로 GreeterServlet의 doGet 메소드입니다. – TitoFHR
원래 게시물에 올린 코드와 정확히 똑같은 코드를 사용하고 "servletParam"과 "contextParam"이 모두 인쇄되었습니다. 왜 같은 결과물을 얻지 못하고 있는지 확신 할 수 없습니다. –