2016-04-18 6 views
0
public class LogoutController1 extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 


     HttpSession session = request.getSession(false); 

     if(session!=null){ 

      session.invalidate(); 
      session=null; 
     } 
     request.getRequestDispatcher("Login.jsp").forward(request,response); 
    } 
} 
  1. Meine Website mehr Anmeldungen gleichzeitig mit ähnlichen und unterschiedlichen Konten ermöglicht als well.I für jeden Login-Session Validierung versucht, aber es ist mir nicht working.Please helfen um dieses Problem bezüglich meiner Website zu lösen.
  2. Dies ist Code ist bereits in dieser Website gegeben.Ich versuchte mit dem gleichen Code, aber es funktioniert nicht.Was ist das Problem, bitte geben Sie mir die Lösung.
+0

Welches Attribut setzen Sie ein? Ich sehe keine Attribute, für die Sie eine Authentifizierung durchführen. –

Antwort

0

Sie müssen ein Attribut für die Authentifizierung festlegen.

Login.java

public class Login extends HttpServlet { 
    private static final long serialVersionUID = 1L; 
    public Login() { 
     super(); 
    } 
    Connection conn = null; 
    String next="login.jsp"; 
    String uname,pwd; 

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     uname=request.getParameter("username"); 
     pwd=request.getParameter("password"); 
     HttpSession session = request.getSession(true); 
     try 
     { 
      Class.forName("com.mysql.jdbc.Driver"); 
      conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/intranet","root","root"); 
      Statement stmt=conn.createStatement(); 
      ResultSet rs=stmt.executeQuery("select * from login where username='"+uname+"' and password='"+pwd+"' "); 
      if(rs != null){ 
       Member mem = new Member(); 
       if(rs.next()) 
       { 
        mem.setId(rs.getLong("id")); 
        mem.setFirstName(rs.getString("username")); 
        mem.setEmail(rs.getString("email")); 
        session.setAttribute("user", mem); 
        next = "index.jsp"; 
       } 
       else 
       { 
        next = "login.jsp"; 
       } 
      } 
     } 
     catch(Exception ex) 
     { 
       System.out.println(ex); 
     } 
     finally 
     { 
      try { 
       conn.close(); 
      } catch (SQLException e) { 
       e.printStackTrace(); 
      } 
      response.sendRedirect(next); 
     } 
    } 
} 

Logout.java

public class Logout extends HttpServlet { 
    public Logout() { 
     super(); 
    } 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     HttpSession session = request.getSession(); 
     if(session.getAttribute("user") != null){ 
      session.removeAttribute("user"); 
      response.sendRedirect("login.jsp"); 
     } 
    } 
+0

wie muss ich als nächstes verwenden. Ob ich lokale Variable erstellen muss oder nicht? – Manjunath

+0

@Manjunath Ja, Sie müssen eine lokale Variable für die nächste erstellen. Ich habe die Antwort bearbeitet. – Prathna

0

Ihr Code zeigt nur Logik der Logout-Controller. Stellen Sie sicher, dass es für den Logincontroller eine Logik gibt, die überprüft, ob eine Sitzung ausgeführt wird, und falls ja, die aktuelle Sitzung ungültig macht. Dies kann durch Speichern einiger Attribute/Flags in der Abmelde-Steuerung und durch Abrufen in der Login-Steuerung (Validieren des Flags/Attributs) erfolgen und entsprechend fortfahren.

Verwandte Themen