JSP - 如何从一个 JSP 页面创建到另一个 JSP 页面的链接。

4

我是 JSP 的新手,我知道这是一个基本问题,但我做不到。我的需求是在这个 JSP 页面中创建链接。但是根据登录情况,另一个页面将会有所不同。如果登录正确,则应显示到 correct.jsp 的链接,如果登录不正确,则应显示到 login.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 Expression “以完成Expression”的错误,针对 <% str; &>。

谢谢。

4个回答

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标签的标准方法。

“Syntax error, insert ";" to complete Statement”和“Syntax error, insert 'AssignmentOperator Expression' to complete Assignment”错误出现在第一个“forward”。还有其他一些错误。 - Burak Keceli
现在检查一下,我已经编辑了代码,我犯了一个错误——JSP标签<>不应该被写成JSP中的Java代码,因为它们是HTML标签!! - Akash Shinde
太棒了!!你应该使用这样的API来创建简单而有效的代码 :) - Akash Shinde

0

你是指这个吗?

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

非常感谢 :) 实际上我想要的是 <a href="<%=str%>"> <%=str%> </a>。 - Burak Keceli

0

你可以使用 <a href="<%=str%>"><%=str%></a>。我已按照你的要求进行了编辑。


是的,但页面的名称取决于 str,因此它会改变。我无法使其静态化。 - Burak Keceli

0
在这种情况下,为了输出字符串str,您可以使用以下表达式<%=str%>。因此,<a href="<%=str%>">my link </a>就可以了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接