über Sitzung in jsp fragen index.jspIch möchte
<form action="a.jsp" method="post">
<input type="text" name="a">
<input type="radio" name="b" value="admin">admin <input type="radio" name="b" value="member">member
<input type="submit" value="c">
</form>
a.jsp
<% String a=request.getParameter("a"); String b=request.getParameter("b");
session.setAttribute("a",a); session.setAttribute("b",b);
response.sendRedirect("b.jsp"); %>
b.jsp
<%
String b = (String)session.getAttribute("b");
if(b!="")
{
if(b.equals("admin"))
{
out.print(session.getAttribute("a"));
out.print("this is admin");
}
else if(b.equals("member"))
{
out.print(session.getAttribute("a"));
out.print("this is member");
}
}
else
{
out.print(session.getAttribute("a"));
out.print("this is guest");
}
%>
<form action="d.jsp" method="post">
<input type="submit" value="d" />
</form>
d. jsp
<%
session.invalidate();
response.sendRedirect("index.jsp");
%>
Der Code funktioniert gut, aber wenn ich den admin
oder member
Wert nicht wählen, sie sollte idealerweise in b.jsp
Seite zu Gast Zustand gehen, aber was ich bin immer ein Fehler in Zeile 5
Fehler eine Ausnahme aufgetreten Verarbeitung JSP-Seite /c/b.jsp in Zeile 5
2: String b = (String)session.getAttribute("b");
3: if(b!="")
4: {
5: if(b.equals("admin"))
6: {
7: out.print(session.getAttribute("a"));
8: out.print("this is admin");
1) Welchen Fehler bekommen Sie genau? Könnte es eine NullPointerException sein? 2) Verwenden Sie '! =' Nicht, um Strings zu vergleichen, verwenden Sie '! (" ". Equals (b))' – Thilo
Sie sind neu in JSP? Dann hör auf, Java-Code in deine JSP zu schreiben, benutze Servlets und sende einige Daten an die JSP. Dann benutze die EL-Sprache, um dir dynamischen Inhalt zu erstellen. Ihr Code-Stil ist die alte Version von Codierung, das ist überhaupt nicht lesbar;) Ein Sie können Filter Something-Klasse verwenden, um für jede Anfrage zu überprüfen, wenn eine Sitzung existiert, wenn nicht auf eine Seite umleiten. Dieser Filter wird vor den Servlets ausgeführt. Ich werde später eine Antwort dafür schreiben, wenn ein Foud einige Male;) – AxelH