hallo ich hab ein prob mit meinem Servlet,
also wenn ich das surflat anspreche machts ma ne session und spunkt ein kleines form aus, das füll ich aus und pump es mit der post methode zum servlet zurück, dann wird gescheckt ob die eingabe mit den hardcodierten werten übereinstimmen, wenn jo dann werden die halt als attribute ins session objekt hinzugefügt, wenn ich dann das drecksservlet nochmal anspreche
spuckt er wieder das form aus. sollte aber die werte der attribute ausgeben, ich glaub der code ist einfacher meine beschreibung *g*, danke für eure hilfe
hier der code:
import java.io.*;
import java.lang.Integer;
import javax.servlet.*;
import javax.servlet.http.*;
public class LogOn_Session extends HttpServlet
{
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}
public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException,java.net.MalformedURLException,FileNotFoundException
{
// Weiterreichen der Anfrage.
doPost(request,response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException,java.net.MalformedURLException,FileNotFoundException
{
// Hier Anfrage bearbeiten:
// - Anfrage ist in HttpServletRequest-Objekt gekapselt, zurückzulieferndes Ergebnis ist in HttpServletResponse-Objekt gekapselt.
PrintWriter out;
// Ergebnistyp setzen (als MIME-Type) für MIME-Typen siehen selfhtml oder JavaDoc
response.setContentType("text/html");
// Ausgabekanal holen
out = response.getWriter();
// Session holen
// - Parameter true steht für das kreieren einer session falls keine vorhanden ist.
HttpSession session = request.getSession(true);
// Überprüfen ob Session neu ist
if(session.isNew())
{
// Anmeldeformular ausgeben
getAuthForm(out);
}
else
{
// Überrüfen ob User schon angemeldet
if( session.getAttribute("USER") == null || request.getAttribute("PASS") == null )
{
// User ist noch nicht angemeldet
// -Überprüfen ob Anmelde-Parameter übergeben wurden
if(request.getParameter("frm_user") == null || request.getParameter("frm_pass") == null)
{
// Parameter wurden nicht vollständig oder garnicht übergeben
// -Ausgabe des Anmeldeformulars
getAuthForm(out);
}
else
{
// Parameter wurden vollständig übergeben
// -Überprüfen ob Parameter gültig sind
if( validparam( request.getParameter("frm_user") , request.getParameter("frm_pass") ) )
{
// Parameter OK
// -Parameter in Session Speichern
session.setAttribute("USER",(String)request.getParameter("frm_user"));
out.println("Sie wurden Angemeldet");
out.println("<a href='http://deinf-slnd5:8080/Studie/LogOn/'>'>http://deinf-slnd5:8080/Studie/LogOn/'>http://deinf-slnd5:8080/Studie/LogOn/</a>");
// Debug
out.println(session.getAttribute("USER"));
out.println(session.getAttribute("PASS"));
}
else
{
// Parameter sind falsch
// -Anmeldeformular ausgeben
getAuthForm(out);
}
}
}
else
{
// User schon angemeldet
out.println("Sie sind angemeldet als; " + session.getAttribute("USER"));
}
}
// Ausgabekanal schließen
out.close();
}
private void getAuthForm(PrintWriter out)
{
// Ausgabe des Anmelde Formulars
String ServletPath = "http://deinf-slnd5:8080/Studie/LogOn/";
out.println("<html>");
out.println("<form action='" + ServletPath + "' method='post'>");
out.println("<p>User:<br>");
out.println("<input name='frm_user' type='text' size='30' maxlength='30'>");
out.println("<p>Pass:<br>");
out.println("<input name='frm_pass' type='text' size='30' maxlength='40'>");
out.println("<input type='submit' value='Absenden'>");
out.println("</form>");
out.println("</html>");
}
private boolean validparam(String user, String pass)
{
// Vergleich die 2 Parameter mit den festkodierten Strings
String _user = "test"; String _pass = "1234";
if (user.compareTo(_user) == 0 && pass.compareTo(_pass) == 0)
//if (user == _user && pass == _pass)
{
return(true);
}
else
{
return(false);
}
}
public void destroy()
{
}
}