JSP无法找到servlet引用(404)

时间:2015-03-26 05:03:18

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

因此,当我尝试运行此代码示例 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>

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

正如您的代码当前所示,您的servlet应该可以从以下路径访问:

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

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

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