2014-10-03 63 views
2
<form method="post" action="RegisterServletPath"> 

    Name:<input type="text" name="userName"><br> 
    Password:<input type="password" name="password"><br> 
    Email Id:<input type="text" name="email"><br> 
    Language: <select name="language"> 
     <option>Hindi</option> 
     <option>English</option> 
     <option>French</option> 
    </select> <br> 
    <input type="submit" value="Submit"> 

    </form> 

提交以下错误发生 HTTP状态405后的形式支持。我只定义了POST方法,并呼吁POST方法在HTML表单HTTP GET方法不受此URL

public class RegisterServlet extends HttpServlet { 

     private static final long serialVersionUID = 1L; 

     public void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 

      response.setContentType("text/html"); 
      PrintWriter out = response.getWriter(); 

      String n = request.getParameter("userName"); 
      String p = request.getParameter("password"); 
      String e = request.getParameter("email"); 
      String c = request.getParameter("language"); 

      try { 

       Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); 

       Connection con =  DriverManager.getConnection("jdbc:ucanaccess://D:/eclipse/register.accdb","",""); 

       PreparedStatement ps = con.prepareStatement("insert into USERDETAILS values(?,?,?,?)"); 

       ps.setString(1, n); 
       ps.setString(2, p); 
       ps.setString(3, e); 
       ps.setString(4, c); 

       int i= ps.executeUpdate(); 
       if (i > 0) { 
        out.print("You are successfully registered..."); 
       } 
      } 
      //... not relevant here 
     } 
    } 

web.xml 


<display-name>SimpleServletProject</display-name> 
<servlet> 
<servlet-name>RegisterServlet</servlet-name> 
<servlet-class>org.venkatesh.Servlet.RegisterServlet</servlet-class> 
</servlet> 

<servlet-mapping> 
<servlet-name>RegisterServlet</servlet-name> 
<url-pattern>/RegisterServletPath</url-pattern> 
</servlet-mapping> 
+0

控件是否已经到达RegisterServlet?尝试添加一些打印语句来确认。 – RandomQuestion 2014-10-03 06:07:36

+0

是控制器无法达到RegisterServlet @Jitendra – john 2014-10-03 06:14:29

+0

那么请向我们展示您的web.xml配置,您将URL映射到控制器。 – Daniel 2014-10-03 06:33:45

回答

-1

添加servlet代码的其余部分,我想你需要使用doGet方法,并从中调用super.doGet,或者不使用doGet,但不幸的doGet正在调用HttpServlet中的方法。

这是另一个问题!从哪里调用doGet方法?

如果你找不到在哪里,然后尝试添加

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    // TODO Auto-generated method stub 
    doPost(request, response); 
} 

这应该解决的问题,如果它不那么让我知道如果我所有的假设是错误的。

+0

所以如果这解决了您的问题,那么将其标记为解决方案, – 2014-10-03 09:08:01

相关问题