0

そうです、これが私の状況です。ページ(index.jsp)に、データをJSPページ(output.jsp)に送信するフォームがあります。このフォームは、データを処理して結果を出力します。この結果をMySQLデータベースに挿入したいと思います。

私はJSPで直接MySQLを使っていくつかのことを試みましたが、セキュリティホールを開くので、これに反対するようにアドバイスされたと思います。

そこで、SubmitServlet.javaを作成しました(デフォルトでは、NetbeansはWebページのJSPファイルの場所ではなく、ソースパッケージ/デフォルトパッケージに配置しています)。ここで多くの接続を行う必要があることは理解していますが、JSPからサーブレットにデータベースに送信されたデータを取得する方法は完全にはわかりません。私は何をする必要がありますか?

私はRoseIndiaでいくつかのチュートリアルを読んだことがありますが、実際に何が必要かについて混乱しているだけなので、どんな助けも大いに活用されるでしょう!

PS:また、私はJava Webアプリケーションにまったく慣れていないので、私を完全な馬鹿のように扱うほど良いことを指摘する価値があります。

4

2 に答える 2

2

ローズインディアは学ぶのに良い場所ではありません。

いいえ、中間サーブレットが1つか2つ必要です。

問題をチャンクに分割します:スキーマ、CRUD操作、中間層モデル、サービス、HTTPリクエストのオブジェクトへのマーシャリングとその逆、HTMLとCSSおよびJavaScript。すべてを一度にやろうとしないでください。単一の垂直線から始めて、それを機能させてから、次の垂直線に移動します。

分解は、コンピュータサイエンスと問題解決の特徴です。

于 2012-08-19T16:00:50.367 に答える
-1

output.jspから必要なメソッドを呼び出します。これにより、データがデータベースに挿入されます。

<%
<jsp:useBean id="obj" class="yourPackage.className" />
String Success="";
Success=sobj.myRequiredMethod("this is my result");
%>

yourPackage.classNameクラスでは、uにmyRequiredMethod()が必要です。

package yourPackage;
import java.sql.*;
import java.util.*;

public class className
    {
    String mySqlPassword="root";
    String mySqlUsername="root";
    String mySqlDatabase="jdbc:mysql://localhost:3306/yourDatabse";


ResultSet res;



    public String myRequiredMethod(String result)
        {

        String success="";
        try
            {


            Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection(mySqlDatabase,mySqlUsername,mySqlPassword);

                String q="insert into myTable (resultColumn) values('" + result + "')";
            System.out.println(q);
            PreparedStatement stmt = con.prepareStatement(q);
            int pos = stmt.executeUpdate();
            System.out.println(pos);
        if(pos==1)
                {
                    success="Successfull";
                }
            } 

        catch(Exception e)
            {
        }

        return success;

        }
}
于 2012-09-07T13:06:17.450 に答える