2011-12-14 25 views
2

サーブレットはHTMLフォームからサーブレットを呼び出し、フォームデータをデータベースに挿入します。ただし、送信ボタンのエラーページが表示される私のサーブレットコードで何が間違っています。HTMLフォームからサーブレットを呼び出すがサーブレットは呼び出されない

私のサーブレットコード:

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

また、使用した 'web.xml'ファイルの抜粋を投稿してください。 – fyr

+1

エラーが発生していますか?コンソールにも例外はありますか? – Piscean

+0

fyrポイントとして、サーバーが使用するようにサーブレットをURLに登録する必要があります。実行した場合は、コンソール/ログをチェックして、サーブレットクラスの読み込み/インスタンス化中に例外があるかどうかを確認します。 – SJuan76

答えて

1

チェックweb.xmlファイルを助けてください、あなたはそこにサーブレットをregistrateする必要があります。 check this

web.xml内のhtml と

で使用<form action="/login" method="post" >

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

yeah i registeres –

+0

web.xmlファイルにサーブレットを登録しました –

+0

ここにxmlをコピーできますか?今 –

1

あなたはサーブレットクラスに見ると、必要とされる定義されたpackageは、ありません。 <servlet-class/>タグにそのクラスをパッケージ(平均完全修飾名)でマッピングします。

もう1つのことは、URLをservlet/LogininServletに設定していますが、<url-pattern/>タグに異なるURLが指定されていますが、これは間違っています。あなたは単にフォームアクションをloginに設定することができます

+0

でプログラミングをしています –

+0

はあなたが404または任意の他のを取得している何の使用はありません: – Pokuri

+0

not 404エラーページ.... "このプログラムはウェブページを表示できません。" –

0

すべてがうまくいきます。htmlページでアクション= "./ログイン"を使用してください.........それは私が同じことをしました

+0

スラッシュの前のドットはトリックを行うべきです –

関連する問題