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
-~----------~----~----~----~------~----~------~--~---