简体   繁体   English

在jsp中登录后显示用户名

[英]display username after login in jsp

i have a login page which connects to a database for validation through a servlet. 我有一个登录页面,该页面连接到数据库以通过Servlet进行验证。 in the servlet after successful login i'm using request dispatcher to login-success.html 在成功登录后的servlet中,我正在使用请求分派器登录到login-success.html

here is the servlet code: 这是servlet代码:

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 the login-success i want to display the username. 在登录成功中,我想显示用户名。 how do i do it? 我该怎么做? i believe i should first change the login-success.html to login-success.jsp 我相信我应该先将login-success.html更改为login-success.jsp

You are setting user name value to session attribute "username" so you can use this EL expression ${sessionScope.username} in your jsp. 您正在将用户名值设置为会话属性“用户名”,以便可以在jsp中使用此EL表达式$ {sessionScope.username}。 You should use it in jstl tag 您应该在jstl标记中使用它

创建http sesson并使用用户信息推送登录dto并从任何jsp页面访问会话变量并检索用户/登录信息。

After authentication success, set username attribute in session 身份验证成功后,在会话中设置用户名属性

session.setAttribute("loggedInUser_userName", userName);

Since HTML is static page, it needs ajax call to update page, Prefer JSP over HTML. 由于HTML是静态页面,因此需要ajax调用来更新页面,而不是HTML首选JSP。
Use El Expression ${} to print username. 使用El Expression ${}打印用户名。 No need of JSTL tag library for El Expression. El Expression不需要JSTL标签库。

And in your username span 并在您的用户名范围内

<span>${loggedInUser_userName}</span>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM