Pavan
Pavan

Reputation: 83

using java automatic logout when the system is idle for some time

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

request.getSession().invalidate();
response.sendRedirect(request.getContextPath() + "/login.jsp");
}

I tried this code for logout option but, i need automatic logout when the system idle for 1 or 2 minutes can any one help me to solve this problem....

Upvotes: 1

Views: 3551

Answers (3)

smali
smali

Reputation: 4805

The best way of configuring session time out is by configuring in the web.xml file of your web application.

<web-app ...>
  <session-config>
    <session-timeout>20</session-timeout>
  </session-config>
</web-app>

give time in minutes.

the above settings will be applied for entire web application.

Or you can put this setting in the web.xml file of your web server (Ex apache tomcat) in the config folder so that it will be applied to all the deployed web application of the server.

Or you can manually apply the settings to a particular session by adding this code.

HttpSession session = request.getSession();
session.setMaxInactiveInterval(20*60);

Upvotes: 0

Himanshu
Himanshu

Reputation: 517

For web applications, if you want session timeout, then you can have a look here Session Timeout. This can easily be done using a simple configuration in your deployment descriptor i.e. your web.xml. Hope this helps.

Upvotes: 0

deathray
deathray

Reputation: 30

    import java.awt.*;
    import java.awt.event.*;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.swing.*;
 class InactivityListener implements ActionListener, AWTEventListener {
int cnt = 0;
public final static long KEY_EVENTS = AWTEvent.KEY_EVENT_MASK;
public final static long MOUSE_EVENTS
        = AWTEvent.MOUSE_MOTION_EVENT_MASK + AWTEvent.MOUSE_EVENT_MASK;
public final static long USER_EVENTS = KEY_EVENTS + MOUSE_EVENTS;
private Window window;
private Action action;
private int interval;
private long eventMask;
private Timer timer = new Timer(0, this);
public InactivityListener() throws ClassNotFoundException{
    Admin frame = new Admin();
    frame.setVisible(true);
    Action logout = new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            JFrame frame = (JFrame) e.getSource();
            LoginForm lf = null;
            try {
                lf = new LoginForm();
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(InactivityListener.class.getName()).log(Level.SEVERE, null, ex);
            }
            lf.setVisible(true);
            frame.dispose();
        }
    };
    InactivityListener listener = new InactivityListener(frame, logout, 1);
    listener.start();
}
public InactivityListener(Window window, Action action) {
    this(window, action, 1);
}
public InactivityListener(Window window, Action action, int interval) {
    this(window, action, interval, USER_EVENTS);
}
public InactivityListener(Window window, Action action, int minutes, long eventMask) {
    this.window = window;
    setAction(action);
    setInterval(minutes);
    setEventMask(eventMask);
}
public void setAction(Action action) {
    this.action = action;
}
public void setInterval(int minutes) {
    setIntervalInMillis(minutes * 60000);
}
public void setIntervalInMillis(int interval) {
    this.interval = interval;
    timer.setInitialDelay(interval);
}
public void setEventMask(long eventMask) {
    this.eventMask = eventMask;
}
public void start() {
    timer.setInitialDelay(interval);
    timer.setRepeats(false);
    timer.start();
    Toolkit.getDefaultToolkit().addAWTEventListener(this, eventMask);
}
public void stop() {
    Toolkit.getDefaultToolkit().removeAWTEventListener(this);
    timer.stop();
}
public void actionPerformed(ActionEvent e) {
    ActionEvent ae = new ActionEvent(window, ActionEvent.ACTION_PERFORMED, "");
    action.actionPerformed(ae);
}
public void eventDispatched(AWTEvent e) {
    if (timer.isRunning()) {
        timer.restart();
    }
}
 }

Upvotes: 1

Related Questions