Also für mich haben sich Frames als ganz günstig herausgestellt um sowas zu umgehen.
Meine index.jsp:
Code:
<%@ page
language="java"
contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"
isThreadSafe="true"
session="true"
%>
<%
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control","no-store, no-cache");
response.setDateHeader("Expires", 0);
String ctxPath = request.getContextPath();
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta http-equiv="expires" content="0" />
<meta name="robots" content="noindex, nofollow" />
<title>MyTitle</title>
</head>
<frameset cols="0,100%" frameborder="NO" border="0" framespacing="0">
<frame src="<%=ctxPath %>/blank" scrolling="NO" noresize />
<frame src="<%=ctxPath %>/default_content" scrolling="yes" noresize />
</frameset>
</html>
<%
if(session != null){
session.invalidate();
}//if
%>
im blank.jsp steht nicht mehr als:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ page
language="java"
contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"
session="false"
%>
<%
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control","no-store, no-cache");
response.setDateHeader("Expires", 0);
%>
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<TITLE></TITLE>
</HEAD>
<BODY>
</BODY>
</HTML>
im default_content habe ich dann nur noch eine Weiterleitung auf die eigentlich login-seite:
Code:
<%@ page
language="java"
contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"
isThreadSafe="true"
session="true"
%>
<%
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control","no-store, no-cache");
response.setDateHeader("Expires", 0);
%>
<jsp:forward page="/login">
<jsp:param name="operation" value="login" />
</jsp:forward>
<%
if(session != null){
session.invalidate();
}//if
%>
Mag jetzt etwas kompliziert klingen, hat sich für mich aber als Einstieg in eigentlich jedes Projekt, dass ich bisher mit jsp abgewickelt habe, bewährt.
Die blank-seite habe ich nur, um den scrollbalken zu verhindern. Danach werden die Parameter loginname und passwort ganz normal im Controller abgefragt über request.getParameter und wenn erfolgreich wird auf die willkommen-seite weitergeleitet mittels
ServletContext.getRequestDispatcher(String pagename).include(request, response);
War der Login nicht erfolgreich, so wird er auf eine error-page weitergeleitet.
Nie solltest du solche Logik in die JSP geben. Immer über Controller arbeiten, also Klassen, die von HttpServlet abgeleitet sind.
mfg, christian
Lesezeichen