请帮助,如果有人可以,我在使用eclipse运行我在Tomcat Apache服务器上的HTML文件时遇到错误我正在与你共享的相关代码
WEB.XML
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.4">
<servlet>
<servlet-name>Hi</servlet-name>
<servlet-class>Hello</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Servlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
Hello.java
import java.io.IOException;
import java.io.PrintWriter;
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 Hello
*/
@WebServlet("/Hello") -----------//Here getting an error
public class Hello extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Hello() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request,HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter pw=response.getWriter();
String email=request.getParameter("email");
String password=request.getParameter("password");
pw.println("<br>your email is "+email);
pw.println("<br>your password is "+password);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
}
<!DOCTYPE html>
<!--<script src="http://jqueryvalidation.org/files/dist/additional-methods.min.js"></script>-->
<html>
<head>
<meta charset="utf-8">
<title>Login Form</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<!--<script src="plugin/validation/dist/additional-methods.min.js"> </script>-->
<script src="jquery.validate.min.js"></script>
<script src="validationutils.js"></script>
<script src="rememberme.js"></script>
<script src="captcha.js"></script>
</head>
<body><div>
<form id="formRegistration" method="post" action="hello">
<div>
<label for="email">Email Id*</label>
<input id="email" type="email" name="email" value="" placeholder="Enter your Email Id" />
</div>
<div>
<label for="Password">Password*</label>
<input id="password" type="password" name="password" value="" placeholder=" Enter Password" />
</div>
<div>
<input type="submit" name="commit" value="Login" id="publiclogin">
</div>
<div>
Forgot your password? <a href="google.com">Click here to reset it</a>.
</div>
<label class="checkbox">
<input type="checkbox" value="remember-me" id="remember_me"> Remember me
</label>
<label class="" for="captcha">*Please enter the verication code shown below.</label>
<div id="captcha-wrap">
<img src="plugin/utilities/img/refresh.jpg" alt="refresh captcha" id="refresh-captcha" /> <img src="plugin/utilities/img/glyphicons-halflings.png" alt="" id="captcha" />
</div>
<input class="narrow text input" id="captcha" name="captcha" type="text" placeholder="Verification Code"/>
</form>
</div>
</body>
</html>
非常感谢任何帮助。
答案 0 :(得分:1)
您的servlet-name在servlet-mapping中是不同的。
参考下面提到的摘录,
<servlet>
<servlet-name>Hi</servlet-name>
<servlet-class>Hello</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hi</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
答案 1 :(得分:0)
在web.xml中定义servlet时,必须创建两件事:
在您的Hi servlet示例中,您没有定义请求映射。对于/ hello路径,没有servlet,名为&#39; Servlet&#39;。
<servlet>
<servlet-name>Hi</servlet-name> // name of your servlet in this context
<servlet-class>com.example.web.servlets.Hello</servlet-class> // your servlet class(should include package)
</servlet>
<servlet-mapping>
<servlet-name>Hi</servlet-name> // reference to your servlet name
<url-pattern>/hello</url-pattern> // mapped path
</servlet-mapping>
我们可以从那开始,告诉我们,这解决了你的问题。