在@WebServlet上获得错误(" Hello")任何人都可以对此有所了解吗?

时间:2015-02-10 07:04:44

标签: tomcat servlets annotations

请帮助,如果有人可以,我在使用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>

非常感谢任何帮助。

2 个答案:

答案 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>

更多详情:http://javapapers.com/servlet/what-is-servlet-mapping/

答案 1 :(得分:0)

在web.xml中定义servlet时,必须创建两件事:

  1. 注册servlets
  2. 为这些servlet注册mppings
  3. 在您的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>
    

    我们可以从那开始,告诉我们,这解决了你的问题。