0

これには少し疑問があります...サーブレットで「z」という名前のjspページのjscript文字列から値を設定/取得するにはどうすればよいですか。サーブレットで使用する必要があります...新しいことを模索していますn私はこれらのことに慣れていないので、それは私にとって新しいことです...クイックヘルプに感謝します.... pass1とpass2が同じ場合はパスワードの値が必要です、n次にpass1の場合はサーブレットで取得する必要があります==pass2...方法を教えてください...そのために私はpass1==pass2をチェックするためのjscriptを書きました。

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>New User Registration</title>
    <script>
    function myFunction(){
        var x = document.forms["newForm"]["pass1"].value;
        var y = document.forms["newForm"]["pass2"].value;
    if(x==y){
        document.newForm.submit();var z=x;
        return true;
        }
        else {
        alert("Passwords not matching!!!");}
        }

    </script>
    </head>
    <body>
    <h1>Form</h1>
    <fieldset>
    <form name=newForm action="RegServlet">Username:<input
        type="text" name="username"><br>
    Password:<input type="text" name="pass1" id="pass1"><br>
    Confirm Password:<input type="text" name="pass2" id="pass2"><br>
    <input type="submit" onclick=myFunction() value="Create"></input></form>
    </fieldset>

    </body>
    </html>

サーブレット

package myPack;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class RegServlet
 */
public class RegServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public RegServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        String s1=request.getParameter("username");
        System.out.println(s1);

        String s2=request.getParameter("");//HERE I NEED THE PAssword value if PASS!==PASS2
        System.out.println(s2);

        String c="jdbc:mysql://localhost:3306/test";

        Connection con=null;
        System.out.println("Connection OK");
        try{
        Class.forName("com.mysql.jdbc.Driver").newInstance();
            System.out.println("Done2");

            con = DriverManager.getConnection(c, "root", "MyNewPass");
            System.out.println("Done3");

            PreparedStatement ps=null;
            System.out.println("Done4");

            String qs = "insert into userinfo values(?,?);";
            ps = con.prepareStatement(qs);
            ps.setString(1,s1);
            ps.setString(2,s2);
            System.out.println("Success");
            ps.execute();
            con.close();

        }
        catch (Exception e) {
            System.out.println("Failed: " + e.toString());
        // TODO: handle exception
            System.out.println("Failed");}}


    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

}
4

2 に答える 2

1

フォームに隠しフィールドを作成します。次に、「onsubmit」イベントで、そのフィールドの値を z に設定します。

 <input type="hidden" name="zValue" id="zValue">

onsubmitイベントで

document.getElementById("zValue").value="The value I want to send";

他のパラメーターとしてサーブレットで取得します。

于 2012-11-29T10:36:26.197 に答える
0

以下は、Tomcatで使用する例です。POST または GET リクエストで送信されるすべてのパラメーターを取得します。これは、マルチキャスト要求 (ファイル転送に必要) をカバーしていないことに注意してください。
サーブレットコンテナを指定していないため、うまくいくかどうかはわかりません。

import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.util.*;


@WebServlet(description = "A simple request test.", urlPatterns = { "/requesttest" })

public class RequestTest extends HttpServlet {

public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
      throws ServletException, IOException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    String title = "Reading All Request Parameters";
    out.println("<BODY BGCOLOR=\"#FDF5E6\">\n" +
                "<H1 ALIGN=CENTER>" + title + "</H1>\n" +
                "<TABLE BORDER=1 ALIGN=CENTER>\n" +
                "<TR BGCOLOR=\"#FFAD00\">\n" +
                "<TH>Parameter Name<TH>Parameter Value(s)");
    Enumeration<String> paramNames = request.getParameterNames();
    while(paramNames.hasMoreElements()) {
      String paramName = (String)paramNames.nextElement();
      out.println("<TR><TD>" + paramName + "\n<TD>");
      String[] paramValues = request.getParameterValues(paramName);
      if (paramValues.length == 1) {
        String paramValue = paramValues[0];
        if (paramValue.length() == 0)
          out.print("<I>No Value</I>");
        else
          out.print(paramValue);
      } else {
        out.println("<UL>");
        for(int i=0; i<paramValues.length; i++) {
          out.println("<LI>" + paramValues[i]);
        }
        out.println("</UL>");
      }
    }
    out.println("</TABLE>\n</BODY></HTML>");

  }

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

EDIT
サーブレットコードで質問を編集したので、答えは本当に簡単です。

 String s2=request.getParameter("pass1");

これにより、パスワード フィールド内で送信される値が取得されます。これは、ユーザー名を取得するのと同じですString s1=request.getParameter("username");

于 2012-11-29T10:52:54.757 に答える