0

Web プロジェクトで、学生登録プログラムを作成しています。

追加/ドロップなどのために学生が登録する.jspファイルがあります。

javascript コードを変更して、userName の入力に文字列のみが許可されていることを確認するにはどうすればよいですか?

これが私の .jsp ファイルの一部です。

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>New User Registration</title>
    </head>
    <body>
    <form method="get" action="RegServlet">
        <h1>Register!</h1>
            Fill out information below:<p>                

            Username:
            <input type="text" name="userName" value =""><p>
<input type="submit" value="Finish!"><p>

    <script type="text/javascript">
        var var1 = "userName";
            if(var1 == (""))
                document.write("<bSystem doesn't like an empty string.....Try Again!!!</b>");
            else if(var1 == ("notmatch"))
                document.write("<b>Inappropriate input!!!.....Try Again!!!</b>");

後もう一つ:

[Finish!] をクリックすると、HTTP ステータス 404 エラーが発生し続けます。form method="get" action="RegServlet" がそれを行う必要があるため、RegServlet.java ファイルに示されている login.jsp ファイルに移動する必要があります。しかし、「/Registrar/RegServlet」パスが見つからないと言っているようです。私は何を間違っていますか?

これが私のRegServletコードの一部です:

 public void doStuff(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, InstantiationException, IllegalAccessException, SQLException {
    //see if search parameter is present        
    String userName = request.getParameter("userName");
    String passWord = request.getParameter("passWord");
    String lastName = request.getParameter("lastName");
    String firstName = request.getParameter("firstName");
    String age = request.getParameter("age");
    char sex = request.getParameter("sex").charAt(0);
    String email = request.getParameter("email");

    if(!userName.isEmpty()&&!passWord.isEmpty()&&!lastName.isEmpty()&&!firstName.isEmpty()&&!age.isEmpty()&& sex!='F' || sex!='M' &&!email.isEmpty()) {
        try {
            SaveToDB.createConnection();
            toDB.insertNewUser(userName, passWord, lastName, firstName, age, sex, email);
            RequestDispatcher view = request.getRequestDispatcher("login.jsp");
            view.forward(request, response);
        } catch(SQLException sqlEx) {
            System.out.println("Error!");
        }
    } else {
        RequestDispatcher view = request.getRequestDispatcher("index.jsp");
        view.forward(request, response);
    }

前もって感謝します!

4

3 に答える 3

5

警告の言葉: あなたのプログラムでは、すべてのクライアント側の検証は無駄です: あなたは決してそれを信頼することはできません. サーバー側の検証も常に行う必要があります. しかし、プログラムのユーザーにとって、クライアント側の検証は便利です: より速いフィードバックです。

HTML5 フォームを調べてください: html でのみ検証を行うことができます:

  <input type="text" name="userName"  pattern="^[A-Za-z ]+$" >

見る

http://www.html5rocks.com/en/tutorials/forms/html5forms/#toc-validation

JavaScript でクライアント側の検証を行いたい場合は、最初に「onsubmit」イベントについて学ぶ必要があります。

http://www.smashingmagazine.com/2009/07/07/web-form-validation-best-practices-and-tutorials/は、すべての手法の概要を示しています。

于 2013-04-14T08:45:24.430 に答える
1

入力文字列に正規表現を適用し、特殊文字をチェックします。

特殊文字の例を次に示します。正規表現: 記号に一致する正規表現: !$%^&*()_+|~-=`{}[]:";'<>?,./

于 2013-04-14T08:49:10.920 に答える
0

404 エラーを回避するために、正しいactionパスを入力してください。<form method="get" action="RegServlet">試す<form method="get" action="/RegServlet">

于 2013-04-14T08:38:35.160 に答える