Servlet映射不适用于生产,但适用于localhost

时间:2012-11-18 18:54:38

标签: java jsp servlets

我有一个像下面这样的servlet映射。

 <servlet>
     <servlet-name>SubmitComment</servlet-name>
     <servlet-class>org.rohitsharma.db.servlet.SubmitComment</servlet-class>
 </servlet>

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

当我点击带有动作SubmitComment的表单时。它在我的localhost上工作。 但是当我将它上传到真正的主机上时,它会给我一个错误。

  

未找到

     

在此服务器上找不到请求的URL / SubmitComment。

我应该如何更改这些映射以使其正常工作?

以下是表格:

 <form action="SubmitComment" method="post" id="leavereply">
      <ol><li>
        <label for="name">Name</label>
        <input id="name" name="name" class="text" />
      </li><li>
        <label for="email">Email Address</label>
        <input id="email" name="email" class="text" />
      </li><li>
        <label for="message">Your Message</label>
        <textarea id="message" name="message" rows="8" cols="50"></textarea>
      </li>
        <input type="hidden" id="blog_id" name="blog_id" value="<%out.print(blog.blog_id);%>">
      <li>
        <input type="image" name="imageField" id="imageField" src="images/submit.gif" class="send" />
        <div class="clr"></div>
      </li></ol>
      </form>

3 个答案:

答案 0 :(得分:1)

在构建HTML时,您是否在表单的action前加上上下文根? 呈现给客户端浏览器的内容应为/<context-root>/SubmitComment。在本地服务器上,应用程序可能部署在默认上下文根上,而它部署在生产中的不同上下文根上。

向我们展示用于在HTML表单上呈现URL的代码。你可能在那里遗漏了<c:url>

答案 1 :(得分:0)

这是服务器设置问题。与代码或任何映射无关。 谢谢你的时间。这是我现场主持人的一些设置问题。我改变了我的主人,事情有效:)

答案 2 :(得分:0)

我有一个类似的问题,它在本地工作,在我的开发环境中不起作用。错误会说找不到页面。事实证明,这是一个Apache httpd配置,我必须在virtual_hosts.conf中创建一个JKMount条目。重新启动httpd服务后,我能够点击它。

这是一个问题不是代码或设置相关的情况,但如果他们的servlet容器前面有Apache httpd服务层,这可能对其他人有帮助。