2009-11-15 138 views
0

我想實現一個簡單的形式:「形」 - if-else語句

有一個globalname和GLOBALPASS,並要求用戶輸入自己的名字和傳遞。

If name == globalname and pass = globalpass -> "Hello name" 
If name == blank or pass == blank -> "O NOEZ, you fergit sumpn!" 
If name != globalname or pass != globalpass -> "WHUT? Who be you, intruder?" 

到目前爲止,我只設法獲得第一,如果加工...

<% 
    String name = request.getParameter("name"); 
    String pass= request.getParameter("pass"); 
    String globalname = "webeng"; 
    String globalpass = "2009"; 
    if (name !=null && pass!=null && name.equals(globalname) && pass.equals(globalpass)) 
    { 
%> 
    <jsp:include page="formular-modul1.jsp" /> 
<% } else 
    { 
%> 
<% } 
%> 

<% 
else if (name =="b" && pass =="c" && name.equals("b") && pass.equals("c")) 
    { 
%> 
    <jsp:include page="formular-modul2.jsp" /> 
<%} else 
    { 
%> 
<% 
}%> 

名稱== 「B」 & &通== 「C」 只是用於測試目的,哪個失敗了!請有人幫助我嗎?

+0

該OP繼續在另一個主題:http://stackoverflow.com/questions/1738294/convert-typed-in-text-to-lowercase – BalusC 2009-11-15 18:45:43

回答

2

字符串是對象而不是原語。當使用==來比較對象時,只有在指向相同的參考時纔會返回true。它不測試對象的值。你已經有Object#equals()了。

除了這個問題,在JSP文件中使用這些老式的scriptlet是一個不好的做法的標誌。在這個特定的情況下,你最好使用一個Servlet類。祝你好運。

+0

我剛從JSP開始。我會在使用Servlets時使用它。現在我必須使用Scriptlets。 即使與if(name.equals(「b」)&& pass.equals(「c」))它不工作! – 2009-11-15 17:15:40

+0

當您使用醜陋的scriptlet時,很難發現錯誤,並且您沒有詳細說明實際問題。 「它不工作」給我們基本上沒有任何工作。我建議創建一個Java類來執行任務並使用main()進行測試。或者您可以花更多精力來闡述問題並說明代碼級別實際發生的情況(包括異常/錯誤)。 – BalusC 2009-11-15 17:20:06

+0

哦,別忘了閱讀appserver日誌。在使用scriptlet時,您不會在頁面上看到有幫助的調試信息的任何異常,但只是一個空白的東西 - 如果失敗則說明頁面。我在一個'NullPointerException'上分錢。 – BalusC 2009-11-15 17:22:29

0

立即工作。

<% 
    String name = request.getParameter("name"); 
    String pass = request.getParameter("pass"); 
    String globalname = "webeng"; 
    String globalpass = "2009"; 
    if (name !=null && pass!=null && name.equals(globalname) && pass.equals(globalpass)) 
    { 
    %> 
    <hr /> 
    <p><b>Howdy, <%= request.getParameter("name") %></b></p> 
    <hr /> 
<% } 
    else if (name !=null | pass!=null && name.equals("") | pass.equals("")) 
    { 
    %> 
    <hr /> 
    <p><b>Ooops, one or more fields are empty. Please fill everything out!!</b></p> 
    <hr /> 
<% } 
    else if (name !=null | pass!=null && !name.equals(globalname) | !pass.equals(globalpass)) 
    { 
    %> 
    <hr /> 
    <p><b>Incorrect Userdata!</b></p> 
    <hr /> 
<% } 
    else{ 
    } 
%> 

現在我需要使用.toLowercase。

手段名稱和通過必須轉換爲.toLowercases然後使用。任何人有任何想法?只需使用newname = name.toLowercase();或newpass = pass.toLowercase();不起作用!

+0

String類有一個equalsIgnoreCase()方法。猜猜它是什麼:) – BalusC 2009-11-15 17:46:54

+0

順便說一句,我真的不會認爲「PaSsWoRd」和「密碼」是平等的。 – BalusC 2009-11-15 17:47:56

+0

我也不會。這個.jsp不認爲「密碼」和「PaSsWoRd」相等。如果globalpassword是密碼,則PaSsWoRd返回「不正確的用戶數據!」 – 2009-11-15 17:50:16