注销后用户也在执行操作,我必须写什么代码来防止该注销用户?

所有! 注销后,用户也在我创建的网站中执行操作,该网站是用gwt和java开发的,为了防止该用户,我必须编写哪些代码? 我的意思是如何编写代码以防止用户在“注销”后进行操作。 只要用户在注销后点击页面上的任何链接,他就会看到消息“你还没有登录查看”,这是我的要求。可以有人说吗?….感谢bala …

如果您使用“活动和地点”方法来构建您的网站。 然后在每个活动开始时,您应该检查会话是否仍然有效。 如果没有,则可以使用goTo(新的LoginPlace(“login”)),也可以使用重定向方法重定向到loginURL。

您需要将他重定向到您的注销页面/url,然后使其servlet会话无效。

1)Servletfilter,您可以使用httpServletRequest.getSession().invalidate()使会话httpServletRequest.getSession().invalidate()http://viralpatel.net/blogs/http-session-handling-tutorial-using-servlet-filters-session-error-filter-servlet-filter/

要么

2)通过一个简单的servlet – Servlet会话无效

看看这个链接这解释了如何使用GWT编写登录应用程序

或者像在Code中一样..如果你有MyProfilePlace,MyProfileView则MyProfileActivity看起来像

 private ClientFactory clientFactory; public MyProfileActivity(MyProfilePlace place, ClientFactory clientFactory) { this.clientFactory = clientFactory; } @Override public void start(AcceptsOneWidget containerWidget, EventBus eventBus) { //pseudo code if (session invalidated { Window.alert("Sorry you are not logged in"); goTo(new LoginPlace("login")); } view = clientFactory.getMyProfileView(); view.setPresenter(this); containerWidget.setWidget(view.asWidget()); System.out.println("Going to your profile"); } 

考虑实际上会话是什么……
现在,请记住维护会话的常见(不是唯一)方法。

也许你会记住cookie之类的东西 – 如果你(尝试)删除/删除/清除服务器上的会话并清除客户端的cookie,你将有效地杀死/删除会话。

当用户点击屏幕上的按钮时,考虑这种情况。 您可以使服务器命中并检查会话是否存活。

(你可以使用jquery来做到这一点)

 $('button').click(function(){ 

//进行ajax调用并检查会话是否存活

 }); 

替代这个,

如果会话有效,方法可以是定期检查服务器。 为此需要Servlet方法进行检查,这将导致许多服务器跳闸。

另一种方法是将客户端的计时器与服务器的计时器保持同步。

客户代码:

 import com.google.gwt.user.client.Timer; 

公共课定时器{

 private static final Timer SESSION_MAY_HAVE_EXPIRED = new Timer() { @Override public void run() { // The session may have expired. // Go to Login } }; public static void renewSessionTimer() { // First cancel the previous timer SESSION_MAY_HAVE_EXPIRED.cancel(); // Schedule again for 5 minutes SESSION_MAY_HAVE_EXPIRED.schedule(5 * 60 * 1000); } 

}

客户端执行RPC调用时,将更新服务器会话超时。

在客户端,然后您在任何操作失败时编写代码。

假设点击我的profile.myprofileService被调用。 然后你可以添加

 myProfileService.getUserProfile(...) { @Override public void onSuccess(String result) { ClientTimers.renewSessionTimer(); // Show user profile } @Override public void onFailure(Throwable caught) { if (sessionTimedOut()) { // redirect to login } } 

}

我希望这有帮助。 干杯:)