Anzeige Benutzername nach dem login jsp
ich habe eine login-Seite, die eine Verbindung zu einer Datenbank für die Validierung durch ein servlet.
in der servlet nach dem erfolgreichen login bin ich mit request-dispatcher login-success.html
hier ist der servlet-code:
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
/**
* Servlet implementation class DoLogin
*/
@WebServlet("/DoLogin")
public class DoLogin extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public DoLogin() {
super();
//TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//TODO Auto-generated method stub
PrintWriter out = response.getWriter();
response.setContentType("text/html");
out.println("<html>");
//Browser Back Button Disable Script After Logout
out.println("<script>");
out.println("javascript:window.history.forward(1)");
out.println("</script>");
out.println("<body style=\"background-color : rgb(41,85,153);\">");
//Invalidate The Session.
HttpSession session = request.getSession(false);
try
{
session.invalidate();
out.println("<h3><font family=\"Times New Roman\" color=\"white\">Successfully Logout</font></h3>");
out.println("<form action=\"/CloudMoV/login.html\" method=\"post\">");
out.println("<br />");
out.println("<input type=\"submit\" alt=\"submit\" value=\"Login Again!\"/>");
out.println("</form>");
out.println("</body>");
out.println("</html>");
}
catch (Exception ee)
{
out.println(ee);
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//TODO Auto-generated method stub
response.setHeader("Cache-Control", "private, no-store, no-cache, must-revalidate");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
// out.println("<html>");
// out.println("<head>");
// out.println("<title>");
// out.println("<html>");
// out.println("</title>");
// out.println("</head>");
// out.println("<body style=\"background-color : black;\">");
//connecting to database
Connection con = null;
Statement stmt = null;
ResultSet res = null;
//variable for checking the values true and false.
boolean success=false;
//creating session
HttpSession session = request.getSession(true);
try{
DbConnection db = new DbConnection();
con = db.connDb();
//Receiving Values From HTML FORM
String thisname=request.getParameter("username");
String thispwd=request.getParameter("password");
stmt = (Statement) con.createStatement();
//Query for selecting user name and password from database.
String q = "select username, password from register where username='"+thisname+"'";
res = stmt.executeQuery(q);
while(res.next())
{
if ((thisname.equals(res.getString("username"))) && (thispwd.equals(res.getString("password"))))
{
// out.println("<br /><br /><h3><font family=\"Times New Roman\" color=\"white\">You're successfully logged in. <br />Welcome "+res.getString("username")+"</font></h3>");
success = true;
}
}
}
catch (SQLException e)
{
throw new ServletException("Servlet Could not display records.", e);
}
catch (Exception e)
{
throw new ServletException("Exception.", e);
}
// if(success==true)
// {
// out.println("<font color=\"white\">session Id: " + session.getId() + "</font><br><br>");
// session.setAttribute("username", request.getParameter("username"));
//
// //Logout Button
// out.println("<form onclick=\"doGet("+request+","+ response+")\" >");
// out.println("<input type=\"submit\" value=\"logout\">");
// out.println("</form>");
// }
if(success==true)
{
session.setAttribute("username", request.getParameter("username"));
RequestDispatcher rd = request.getRequestDispatcher("/login-success.html");
rd.forward(request, response);
}
if(success==false)
{
// out.println("<br /><h3 style=\"text-align:center;color:#FFFFFF;margin-top:150px\">Invalid User Name or Password</h3>");
// out.println("<br /><a href=\"login.html\"><h3 style=\"text-align:center;color:#FFFFFF;text-decoration:underline\">Go Back</h3></a>");
session.invalidate();
RequestDispatcher rd = request.getRequestDispatcher("/login.html");
rd.forward(request, response);
}
//
// out.println("</body>");
// out.println("</html>");
}
}
in der login-Erfolg ich möchte die Anzeige des Benutzernamen. wie mache ich es?
ich glaube, ich sollte ändern Sie zuerst die login-success.html login-Erfolg.jsp
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie user name value session-Attribut "Benutzername", so können Sie diese EL-Ausdruck ${sessionScope.username}
in Ihrer jsp. Sie sollten es in der jstl-tag
Erstellen http sesson und push-login dto mit Informationen für den Benutzer und den Zugriff auf die session-variable aus jeder jsp-Seite und das abrufen von Benutzer - /login-Informationen.das ist es
Nachdem die Authentifizierung Erfolg, set username-Attribut in der session
Seit HTML ist eine statische Seite, die es braucht, ajax call to update Seite, Lieber JSP über HTML.
Verwenden El-Ausdruck
${}
drucken Benutzername. Keine Notwendigkeit der JSTL-tag-Bibliothek für El-Ausdruck.Und Ihren Benutzernamen span
${}