【问题标题】:JSP cant find the servlet reference (404)JSP 找不到 servlet 引用 (404)
【发布时间】:2015-05-30 01:17:45
【问题描述】:

所以当我尝试运行此代码示例时,https://www.youtube.com/watch?v=uNRSNDm08wk 我做了我的 servlet 类,并且表单也指向它。但是,当我 clic 提交时,它似乎无法将 regServlet 识别为我的 servlet 的标识符,因为它给了我错误 404。它在 jsp 页面目录中查找文件。有什么地方可以查到这些参考资料吗?

package bean;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class RegServlet
 */
@WebServlet("/RegServlet")
public class RegServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    StringBuilder csvSkills =   new  StringBuilder();

    /**
     * @see HttpServlet#HttpServlet()
     */
    public RegServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String hdnParam =   request.getParameter("pagename");
            if(hdnParam.equals("register")){
....

html表单:

<form action="RegServlet" method="post">
      <input type="hidden" name="pagename" value="login"/>
        <p>Nombre de Usuario</p>
        <input type="text" name="regUserName" required value="usuario" onBlur="if(this.value=='')this.value='usuario'" onFocus="if(this.value=='usuario')this.value='' "><br>
       <p>Contraseña</p>
        <input type="password" name="regUserPass"  required value="Contraseña" onBlur="if(this.value=='')this.value='Contraseña'" onFocus="if(this.value=='Contraseña')this.value='' "> 
        <br><input type="submit" value="Crear Cuenta">

      </form>

【问题讨论】:

  • 把动作改成action="/RegServlet"试试
  • HTTP 状态 404 - /RegServlet 类型状态报告消息 /RegServlet 描述 请求的资源不可用。
  • 您使用的是什么 IDE?
  • 您能否验证您的 WAR 中的 bean/ 目录中是否有文件 RegServlet.class
  • Eclipse Luna IDE(我只是在这里输入更多单词)

标签: java jsp servlets http-status-code-404


【解决方案1】:

我建议您在 JSP 中动态添加动作路径内的上下文:

<form action="${pageContext.request.contextPath}/sampleServlet">

【讨论】:

  • 这确实有效!谢谢!它没有在我的桌子上插入信息,但没有抛出任何错误!所以我应该在某个地方有另一个错误
  • @AleRojas 不客气。如果您遇到任何问题,请告诉我们。
【解决方案2】:

就您的代码当前而言,您的 servlet 应该可以从以下路径访问:

http://localhost:8080/{app-name}/RegServlet

其中{app-name} 是WAR 文件的名称。如果您无法直接从 Web 浏览器访问此文件,则可能 WAR 不存在,或者 WAR 中不存在 RegServlet.class 文件。

当您尝试从表单访问 servlet 时,您需要确定它正在使用上述路径,否则将无法访问。您可以从 JavaScript 控制台进行检查。

【讨论】:

猜你喜欢
  • 2019-07-30
  • 1970-01-01
  • 1970-01-01
  • 2015-11-15
  • 2012-12-25
  • 2013-03-07
  • 1970-01-01
  • 2018-06-06
  • 1970-01-01
相关资源
最近更新 更多