从HTML表单调用servlet,但从不调用servlet

时间:2011-12-14 11:38:05

标签: java html

我从html表单调用servlet,servlet接受表单数据,它会将表单数据插入到数据库中。但是当我点击提交按钮时,错误页面即将到来。请帮助我的servlet代码中的错误。

我的servlet代码:

import javax.servlet.http.HttpServlet;

import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;




public class Loginservlet extends HttpServlet {

  public void doPost(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException
  {
    System.out.println("login servlet");
  String connectionURL = "jdbc:mysql://localhost:3306/mysql";
  Connection connection=null;
  res.setContentType("text/html");
  PrintWriter out = res.getWriter();
  String username= req.getParameter("username");
  String password = req.getParameter("password");
   try {
  Class.forName("com.mysql.jdbc.Driver");
  connection = DriverManager.getConnection(connectionURL, "root", "root"); 
   String sql = "insert into signup values (?,?)";
  PreparedStatement pst = connection.prepareStatement(sql);
  pst.setString(1, username);
  pst.setString(2, password);

  int numRowsChanged = pst.executeUpdate();
    out.println(" Data has been submitted ");

  pst.close();
  }
  catch(ClassNotFoundException e){
  out.println("Couldn't load database driver: "+ e.getMessage());
  }
  catch(SQLException e){
  out.println("SQLException caught: " + e.getMessage());
  }
  catch (Exception e){
  out.println(e);
  }
  finally {
  try {
  if (connection != null) 
      connection.close();
  }
  catch (SQLException ignored){
  out.println(ignored);
  }
  }
  }
}

我的HTML代码:

  

注册

       <form action="servlet/Loginservlet"  method="post" >

                 <font size='5'>Create your Account:</font><br/><br>

                    <label for="username" accesskey="u" style="padding-left:3px;">User Name: </label>

                                    <input type="text" style="background-color:#ffffff;margin-left:14px;padding-top:7px;border-width:0px;margin-top:6px;padding-right:85px;" id="username" name="username" tabindex="1"><br/><br>

                    <label for="password" accesskey="p" style="padding-left:4px;">Password: </label>

                                    <input type="password" style="background-color:#ffffff;margin-left:14px;padding-top:7px;border-width:0px;padding-right:85px;" id="password" name="pasword" tabindex="2"><br/><br>


                    <input type="submit" value="Submit" style="margin-left:164px;"/>

                    <input type="reset" value="Reset" style="margin-left:17px;"/>

    </form>

web.xml文件:

                  <?xml version="1.0" encoding="UTF-8"?>
                      <web-app version="2.5" 
                        xmlns="http://java.sun.com/xml/ns/javaee" 
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
                        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

                           <servlet>
    <servlet-name>login</servlet-name>
    <servlet-class>Loginservlet</servlet-class>
                          </servlet>
                         <servlet-mapping>
     <servlet-name>login</servlet-name>
     <url-pattern>/login</url-pattern>
                       </servlet-mapping>   

请帮助

3 个答案:

答案 0 :(得分:1)

检查项目的web.xml文件,您必须在那里注册您的servlet。check this

在html中使用<form action="/login" method="post" >

web.xml中的

<servlet-class>your.class.package.Loginservlet</servlet-class>
                          </servlet>

答案 1 :(得分:1)

在查看servlet类时,没有定义package,这是必需的。并使用<servlet-class/>标记中的包(平均完全限定名称)映射该类。

另一件事是您要将操作设置为网址servlet/LogininServlet,但在<url-pattern/>标记中给出了不同的网址,这是错误的。您只需将表单操作设置为login

即可

答案 2 :(得分:0)

一切都很好....在html页面中使用action =“。/ login”.........它会工作我已经做了同样的

相关问题