Servet:WebContent中不存在接收JSP文件

时间:2012-04-22 19:20:41

标签: eclipse jsp servlets web.xml

我正在使用Eclipse来编写servlet。现在,我想让example.jsp做类似servlet(访问属性或ServletConfig的参数,ServletContext,......)

我将example.jsp放在WebContent的顶部,项目名称是ProjectExample。

在web.xml中,这是我如何声明这个servlet:

<servlet>
    <servlet-name>JSP Example</servlet-name>
    <jsp-file>example.jsp</jsp-file>  
    <init-param>
      <param-name>name</param-name>
      <param-value>hqt</param-value>
    </init-param>
// I meet warning at <jsp-file>: that doesn't found this file 
//although I have change to: `/example.jsp`, `ProjectExample/example.jsp` or `/ProjectExample/example.jsp`
</servlet>

因为Container无法识别此文件,所以当我使用:getServletConfig().getInitParameter("name")时,我会收到空​​的!!!

请告诉我如何解决这个问题。

谢谢:)

@:如果代码输入错误,那不是问题,因为它只是错字。我不知道为什么StackOverFlow不再允许复制/粘贴功能。

2 个答案:

答案 0 :(得分:1)

我认为主要问题不在于您的配置,而在于jsp页面的配置方式。

更改您的<jsp-file>/example.jsp</jsp-file>并将其添加到JSP:

Who am I? -> <%= getServletName() %>

我的信箱输出是:

Who am I? -> jsp

这是因为所有JSP共享相同的servlet配置,称为“jsp”。它配置在$ CATALINE_HOME / conf / web.xml(如果您使用的是Tomcat)。对于我的Tomcat 7,配置如下所示:

<servlet>
    <servlet-name>jsp</servlet-name>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
    <init-param>
        <param-name>fork</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>xpoweredBy</param-name>
        <param-value>false</param-value>
    </init-param>
    <load-on-startup>3</load-on-startup>
</servlet>

答案 1 :(得分:0)

你的servlet应该有init方法,你可以在那里读取你需要的参数:

public class SimpleServlet extends GenericServlet {
    protected String myParam = null;

    public void init(ServletConfig servletConfig) throws ServletException{
        this.myParam = servletConfig.getInitParameter("name");
      }

    //your servlet code...
}

此示例取自here