Hello Friends,

I was making a simple code of Session for my students.
Well, I decided post that code here,
because maybe it can serve as a basis for someone.

//Main Class

package com.javaneses.spring.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Cookies;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.PasswordTextBox;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;
import com.javaneses.spring.client.rpc.service.LoginService;
import com.javaneses.spring.client.rpc.service.LoginServiceAsync;
import com.javaneses.spring.client.rpc.service.SessionService;
import com.javaneses.spring.client.rpc.service.SessionServiceAsync;

/**
 * Entry point classes define <code>onModuleLoad()</code>.
 */
public class Main implements EntryPoint, ClickListener{

        /**
         * This is the entry point method.
         */

        private final SessionId sessionId = new SessionId();

        private final DialogBox dialogBox = new DialogBox();
        private final Label userLabel = new Label("User");
        private final Label passwdLabel = new Label("Password");
        private final TextBox userField = new TextBox();
        private final PasswordTextBox passwdField = new PasswordTextBox();
        private final Button login = new Button("Login");

        private final Label welcome = new Label("Welcome");

        private final User user = new User();

        {
                FlexTable flexTable = new FlexTable();

                flexTable.setWidget(0, 0, userLabel);
                flexTable.setWidget(0, 1, userField);
                flexTable.setWidget(1, 0, passwdLabel);
                flexTable.setWidget(1, 1, passwdField);

                FlowPanel panel = new FlowPanel();
                panel.setWidth("100");
                panel.add(login);

                flexTable.setWidget(2, 1, panel);

                dialogBox.setSize("350", "150");
                dialogBox.add(flexTable);

                login.addClickListener(this);

                sessionId.setSessionId(Cookies.getCookie("session"));
        }//end init block

        public void onModuleLoad() {

                validateSession();

        }//end onModuleLoad

        private void validateSession(){

                SessionServiceAsync myServiceAsync = 
(SessionServiceAsync)GWT.create
(SessionService.class);
                ServiceDefTarget serviceDefTarget = (ServiceDefTarget)
myServiceAsync;
                serviceDefTarget.setServiceEntryPoint("session");

                AsyncCallback<SessionId> asyncCallback = new 
AsyncCallback<SessionId>
(){
                        public void onFailure(Throwable caught) {
                                System.out.println(caught);
                        }//end onFailure
                        public void onSuccess(SessionId result) {
                                if(result == null){
                                        RootPanel.get().clear();
                                        RootPanel.get().add(dialogBox);
                                        System.out.println("Teste1");
                                }else 
if(!sessionId.getSessionId().equals(result.getSessionId())){
                                        RootPanel.get().clear();
                                        RootPanel.get().add(dialogBox);
                                        System.out.println("Teste2");
                                }else 
if(sessionId.getSessionId().equals(result.getSessionId())){
                                        RootPanel.get().add(welcome);
                                }
                        }//end onSucess
                };//end AsyncCallback<String> asyncCallback = new
AsyncCallback<String>()
                myServiceAsync.session(sessionId, asyncCallback);
        }//end validateSession

        public void onClick(Widget sender) {
                if(sender == login){
                        user.setUser(userField.getText());
                        user.setPasswd(passwdField.getText());
                        LoginServiceAsync loginServiceAsync = 
(LoginServiceAsync)GWT.create
(LoginService.class);
                        ServiceDefTarget serviceDefTarget = (ServiceDefTarget)
loginServiceAsync;
                        serviceDefTarget.setServiceEntryPoint("login");

                        AsyncCallback<String> asyncCallback = new 
AsyncCallback<String>() {
                                public void onSuccess(String result) {
                                        if(result != null){
                                                RootPanel.get().clear();
                                                RootPanel.get().add(welcome);
                                                Cookies.setCookie("session", 
result);
                                                sessionId.setSessionId(result);

                                                System.out.println("login 
session => "+result);

                                        }else{
                                                Window.alert("Login Invalid !");
                                        }
                                }
                                public void onFailure(Throwable caught) {
                                        System.out.println(caught);
                                }
                        };//end asyncCallback

                        loginServiceAsync.login(user, asyncCallback);
                }//end if(sender == login)
        }//end onClick
}//end class

//end Main Class


//Interfaces of Services

package com.javaneses.spring.client.rpc.service;

import com.google.gwt.user.client.rpc.RemoteService;
import com.javaneses.spring.client.SessionId;

public interface SessionService extends RemoteService{
        SessionId session(SessionId sessionId);
}//end class


package com.javaneses.spring.client.rpc.service;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.javaneses.spring.client.SessionId;

public interface SessionServiceAsync {
        void session(SessionId sessionId, AsyncCallback<SessionId>
asyncCallback);
}//end MyServiceAsync

//end interfaces SessionServices


package com.javaneses.spring.server.rpc.service;

import javax.servlet.http.HttpSession;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.javaneses.spring.client.SessionId;
import com.javaneses.spring.client.rpc.service.SessionService;

public class SessionServiceImpl extends RemoteServiceServlet
implements SessionService{

        private static final long serialVersionUID = -6274876845484737659L;

        public SessionId session(SessionId sessionId) {
                HttpSession httpSession = 
getThreadLocalRequest().getSession(false);
                if(httpSession != null){
                        sessionId.setSessionId(httpSession.getId());
                        return sessionId;
                }//end if(result == null)
                return null;
        }//end session
}//end class

//interfaces login service

package com.javaneses.spring.client.rpc.service;

import com.google.gwt.user.client.rpc.RemoteService;
import com.javaneses.spring.client.User;

public interface LoginService extends RemoteService{

        String login(User user);
}//end interface

//end

package com.javaneses.spring.client.rpc.service;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.javaneses.spring.client.User;

public interface LoginServiceAsync {

        void login(User user, AsyncCallback<String> asyncCallback);

}//end interface

//end interfaces login service


//class server login


package com.javaneses.spring.server.rpc.service;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.javaneses.spring.client.User;
import com.javaneses.spring.client.rpc.service.LoginService;

public class LoginServiceImpl extends RemoteServiceServlet implements
LoginService{

        private static final long serialVersionUID = 270628040929463623L;

        public String login(User user) {
                if(user != null && user.getUser().equalsIgnoreCase("vagner") &&
                                user.getPasswd().equals("Javagner"))
                        return getThreadLocalRequest().getSession().getId();
                return null;
        }//end login
}//end class

//end class server login


//User Class

package com.javaneses.spring.client;

import java.io.Serializable;

public class User implements Serializable{
        private static final long serialVersionUID = -1744327211076049203L;

        private String user;
        private String passwd;

        public void setUser(String user) {
                this.user = user;
        }//end setUser

        public String getUser() {
                return user;
        }//end getUser

        public void setPasswd(String passwd) {
                this.passwd = passwd;
        }//end setPasswd

        public String getPasswd() {
                return passwd;
        }//end getPasswd

}//end class

//end User class

//My Module.gwt.xml


<module>

      <!-- Inherit the core Web Toolkit stuff.
-->
      <inherits name='com.google.gwt.user.User'/>

      <!-- Inherit the default GWT style sheet.  You can change
-->
      <!-- the theme of your GWT application by uncommenting
-->
      <!-- any one of the following lines.
-->
      <inherits name='com.google.gwt.user.theme.standard.Standard'/>
      <!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/>
-->
      <!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/>
-->

      <!-- Other module inherits
-->


      <!-- Specify the app entry point class.
-->
      <entry-point class='com.javaneses.spring.client.Main'/>

      <!-- Specify the application specific style sheet.
-->
      <stylesheet src='Main.css' />

      <servlet path="/session"
class="com.javaneses.spring.server.rpc.service.SessionServiceImpl"/>
      <servlet path="/login"
class="com.javaneses.spring.server.rpc.service.LoginServiceImpl"/>
</module>




Vagner Araujo
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to