假设一个人在应用程序中使用用户 ID 和密码登录。现在,他使用相同的用户 ID 和密码尝试登录而不从第一个会话中退出。我想让它从第一个会话中注销并自动继续新的会话。
Struts2、JSP、Java 是技术,我用于我的应用程序。
面临的问题
- 如果我们在新选项卡或窗口中打开,IE 8 会在同一台机器上提供相同的会话 ID。无法区分来自同一台机器的不同登录。如何设置自己的会话ID?
- 像 SBI 网站这样的银行应用程序都只能这样工作,它是如何实时工作的?
- 我想复制与 SBI 银行网站在在线交易上工作相同的东西。如果您在新窗口中再次打开,则在第一个窗口中发送消息会话
请让我知道此日志记录的详细信息。谢谢。
这是我的过滤器
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("FirstFilter : In filter doFilter before doFilter...");
HttpServletRequest req = (HttpServletRequest) request ;
HttpServletResponse res = (HttpServletResponse) response ;
HttpSession session = req.getSession(false);
String userId=req.getParameter("username");
String password=req.getParameter("password");
System.out.println(" : : " + req.getParameter("username")) ;
System.out.println(" : " + req.getServletPath());
LoggedInUserVO userProfVOSession = null ;
if(session != null) {
String sessionId=session.getId();
userProfVOSession = (LoggedInUserVO)session.getAttribute("LoggedInUser") ;
//check for login id password and session for single user sign in
if(null!=userProfVOSession){
if(userProfVOSession.getUserName().equalsIgnoreCase(userId) && userProfVOSession.getUserPassword().equals(password) && userProfVOSession.getSessionId().equals(sessionId)){
//do nothing
}
else{
System.out.println("in duplicate");
}
}
}
if(userProfVOSession == null) {
if("/populatelogin.action".equals(req.getServletPath()) || "/login.action".equals(req.getServletPath())||"/images/Twalk-Logo-4-green.png".equals (req.getServletPath())||"css/twalk.css".equals( req.getServletPath() )) {
chain.doFilter(req, res) ;
} else {
req.getRequestDispatcher("Entryindex.jsp").forward(req, res) ;
}
} else {
chain.doFilter(req, res) ;
}