2013-04-14 53 views
0

在一個Web項目中,我創建了一個學生註冊程序。我想確保輸入是Javascript中的字符串

我有一個.jsp文件,讓學生以增加註冊/下降等

我應該如何修改我的javascript代碼進行檢查,以確保只有字符串允許用戶名輸入?

這裏是我的一塊.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>"); 

還有一兩件事:「完成」

我不斷收到一條HTTP狀態404錯誤,當我點擊。它應該引導我到我的RegServlet.java文件中指出的login.jsp文件,因爲form method =「get」action =「RegServlet」應該爲我執行此操作。但它似乎告訴我它無法找到「/ 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); 
    } 

謝謝!

+3

你可以作爲輸入的值的唯一事情是一個字符串。沒什麼可檢查的。 –

+0

太好了!謝謝。在性領域呢?用戶可以輸入數字值而不是字符'M'或'F'嗎? – dinky

+0

用戶可以在文本類型的輸入字段中輸入任何他想要的內容。它總是一個字符串。該字符串可能包含數字字符,但它始終是一個字符串。 –

回答

0

<form method="get" action="RegServlet">中給出正確的action路徑以避免404錯誤。 嘗試<form method="get" action="/RegServlet">

+0

謝謝javapirate,我只是試過了,它給了我一個「哎呀!這個鏈接似乎被打破了。」錯誤頁面。 – dinky

+0

您是否嘗試過'action =「/ Registrar/RegServlet」'或'action =「Registrar/RegServlet」' –

+0

剛做過但沒有運氣。雖然謝謝! – dinky

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/給出了所有技術的很好的概述。

+0

哦,我明白了。非常感謝,bjelli。我會研究這一點。 – dinky

相關問題