2016-07-07 67 views
-1
import java.io.IOException; 
import java.io.PrintWriter; 

import javax.servlet.ServletContext; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.servlet.http.HttpSession; 

public class XmlServlet extends HttpServlet { 
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    response.setContentType("text/html"); 
    PrintWriter write = response.getWriter(); 
    HttpSession session = request.getSession(); 
    ServletContext context=request.getServletContext(); 

    String userName = request.getParameter("userName"); 
    if(userName!=""&&userName!=null){ 
    session.setAttribute("savedUserName",userName); 
    context.setAttribute("savedUserName",userName); 
    } 
    write.println("Request parameter has username as "+userName); 
    write.println("Session parameter has username as "+session.getAttribute("savedUserName")); 
    write.println("Context parameter has username as "+context.getAttribute("savedUserName")); 
    write.println("Init parameter has default username as "+ getServletConfig().getInitParameter("defaultName")); 

这是我的java servlet代码,我试图通过下面的web.xml文件打印servlet config参数值。Servlet配置返回空值的参数

<display-name>SimpleServletProject</display-name> 
<servlet><servlet-name>xmlServlet</servlet-name> 
<servlet-class>myservletpackage.XmlServlet</servlet-class> 
<init-param> 
<param-name>defaultName</param-name> 
<param-value>Chris Jordan</param-value> 
</init-param> 
</servlet> 
<servlet-mapping> 
<servlet-name>xmlServlet</servlet-name> 
<url-pattern>/xmlServletPath</url-pattern> 
</servlet-mapping> 
</web-app> 

但运行配置参数值来null.Can任何人都可以告诉我做错了什么?

+0

您在XML中拼写了默认错误。 – Zircon

+0

我错误地粘贴了旧的代码。我已经更正了拼写,但它仍然不显示输出中的值。 – user6479280

回答

0

您在Web容器/服务器运行时是否添加了初始参数?重新启动服务器,如果它已经在运行。

引自“Head First Servlets & JSP”一书。

该servlet的init参数仅ONCE阅读 - 当容器 初始化servlet的。 ...当Container创建一个servlet时,它会读取DD并为ServletConfig创建名称/值对。 容器从不再次读取初始化参数!一旦 参数在ServletConfig中,它们将不会再次被读取 直到/除非您重新部署了该servlet。