我是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表达式“完成表达式”的错误为&lt;%str; &安培;&GT;给出了。
谢谢,
答案 0 :(得分: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标记的标准方法。
答案 1 :(得分:0)
你的意思是?
<a href="<%=str%>"> the_link </a>
答案 2 :(得分:0)
您可以使用<a href="<%=str%>"><%=str%></a>
我按照你说的编辑了它。
答案 3 :(得分:0)
在这种情况下,为了输出字符串str,请使用以下表达式&lt;%= str%&gt;。因此<a href="<%=str%>">my link </a>
应该这样做