因此,当我尝试运行此代码示例 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>
答案 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控制台进行检查。