2013-05-13 165 views
4

我是JSP新手。我知道這是一個基本問題。但我做不到。我想要的是在這個jsp頁面中創建一個鏈接。但是其他頁面將根據登錄而有所不同。如果正確,則必須顯示correct.jsp的鏈接,如果登錄不正確,則必須顯示login.jsp的鏈接。JSP - 如何創建從jsp頁面到另一個jsp頁面的鏈接

<% 
    String str = ""; 
    String userid = request.getParameter("usr"); 
    session.putValue("userid", userid); 
    String pwd = request.getParameter("pwd"); 
    Class.forName("com.mysql.jdbc.Driver"); 
    java.sql.Connection con = DriverManager.getConnection(
      "jdbc:mysql://localhost:3306/pr", "root", "xxx"); 
    Statement st = con.createStatement(); 
    ResultSet rs = st 
      .executeQuery("select * from a where name='"+ userid + "'"); 
    if (rs.next()) { 
     if (rs.getString(2).equals(pwd)) { 
      out.println("welcome " + userid); 
      str = "correct.jsp"; 
     } else { 
      out.println("Invalid password try again"); 
      str = "login.jsp"; 
     } 
    } 
%> 

<a href=str> <% str; &> </a> 

但是當我這樣做,誤差「插入‘AssignmentOperator表達’來完成表達」爲<%STR; &>給出。

謝謝,

回答

2
<% 
String str = ""; 
String userid = request.getParameter("usr"); 
session.putValue("userid", userid); 
String pwd = request.getParameter("pwd"); 
Class.forName("com.mysql.jdbc.Driver"); 
java.sql.Connection con = DriverManager.getConnection(
     "jdbc:mysql://localhost:3306/pr", "root", "xxx"); 
Statement st = con.createStatement(); 
ResultSet rs = st 
     .executeQuery("select * from a where name='"+ userid + "'"); 
if (rs.next()) { 
    if (rs.getString(2).equals(pwd)) { 
     out.println("welcome " + userid); 
     // str = "correct.jsp"; 
    %> 
     <jsp:forward page="correct.jsp"></jsp:forward> 
    <% 
    } else { 
     out.println("Invalid password try again"); 
     // str = "login.jsp"; 
    %> 

     <jsp:forward page="login.jsp"></jsp:forward> 
    <% 
    } 
} 
%> 

這似乎是使用jsp:forward標記的標準方法。

+0

「語法錯誤,插入」;「完成語句」和「語法錯誤,插入」AssignmentOperator表達式「完成賦值」錯誤在第一個「前進」中給出。還有一些其他的 – 2013-05-13 14:07:49

+0

以上代碼是在.jsp文件中? – 2013-05-13 14:09:30

+0

現在檢查我已編輯的代碼,我是錯誤的 - jsp標籤<>不是作爲java代碼寫在jsp中,因爲它們是html標籤! – 2013-05-13 14:14:24

0

您的意思是?

<a href="<%=str%>"> the_link </a> 
+0

偉大thx :)其實我想要正確的是<%=str%> 2013-05-13 13:29:09

0

您可以使用<a href="<%=str%>"><%=str%></a> 像你說的我已編輯它。

+0

是的,但頁面的名稱取決於str,所以它改變。我不能讓它變成靜態的。 – 2013-05-13 13:34:08

0

在這種情況下,爲了輸出字符串str,請使用以下表達式<%= str%>。因此<a href="<%=str%>">my link </a>應該這樣做