Chamar nova página GWT

Bom dia pessoal blzA!?
Bom sendo eu iniciante no GWT estou com uma dúvida.
Temos inicialmente a tela de loguin com o botão ENTER.
Gostaria que quando o usuário clicar neste botão que a página fosse direcionada para uma nova página, ou seja a próxima página depois da tela de loguin.
Como eu devo fazer isso? Crio a “próxima tela” na Classe principal(EntryPoint), Ou devo criar uma nova classe e depois chamá-la no evento do botão!?!?!?!?

Muito obrigada pela atenção.

Att.

Olá,

você disse que você é iniciante em GWT, então primeiro você deve esquecer a forma como você desenvolve para web, esqueca o modelo orientado a páginas, no GWT nós temos apenas uma única página, e é nessa página onde o sua aplicação irá viver, então o que você pode fazer é o seguinte:

1°) você criar a página de login no padrão servlet
2°) quando o usuário tentar acessar a sua aplicação, o container irá redirecionar o usuário automaticamente para a página de login
3°) uma vez que o usuário tenha feito o login, o container irá liberar o acesso para o usuário acessar a sua aplicação

Esse é o método preferido, porque dessa forma você evita que o usuário tenha acesso ao seu script sem está logado.

Abraço.

Ei Araujo, você me deu uma direção. OBrigada.
Para a galera vou deixar um link relacionado que é interessante ler.

http://code.google.com/intl/pt-BR/appengine/docs/java/gettingstarted/creating.html

Att.

Falou. Qualquer coisa estamos aí. :wink:

Abraço.

Araujo, pessoal, boa tarde.
Eu de novo.
Bem o conceito de padrão servlet já estou familiarizando mas ainda não consegui sair do lugar… :oops:
Gostaria de uma dica de código para “chamar outra página”, cito novamente o exemplo, qd o usuário clicar no botão enter que este faça o direcionamento para a próxima página.
Como deveria ser mais ou menos o código!?

Tank’s

Abraço

Olá Gabi,

vamos por partes, primeiro vamos assumir que a sua aplicação GWT é iniciada quando o usuário tenta acessar index.html do seu site, nesse momento, com as configurações de autenticação do padrão servlet, o web continer irá perceber que o usuário não está logado, então o próprio web container irá se encarregará de exibir a página de login, se o usuário se autenticar de forma errônea, então o próprio container também se encarregará de exibir o form de erro. Abaixo segue mais ou menos o que você tem que fazer. Nesse caso vou demonstrar a configuração no tomcat.

No seu web.xml

<security-constraint>
<web-resource-collection>
<web-resource-name>adm roles for application</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>adm</role-name>
</auth-constraint>
<!-- <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint> -->
</security-constraint>

&lt;login-config&gt;
    &lt;auth-method&gt;FORM&lt;/auth-method&gt;
    &lt;form-login-config&gt;
        &lt;form-login-page&gt;/login&lt;/form-login-page&gt;
        &lt;form-error-page&gt;/erro&lt;/form-error-page&gt;
    &lt;/form-login-config&gt;
&lt;/login-config&gt;

&lt;security-role&gt;
    &lt;role-name&gt;adm&lt;/role-name&gt;
&lt;/security-role&gt;

No seu context. xml

<Realm className=“org.apache.catalina.realm.JDBCRealm” debug=“99”
driverName="" connectionURL=""
userTable="" userNameCol="" userCredCol=""
userRoleTable="" roleNameCol="" />

Agora vou tentar explicar o que está acontecendo.

No elemento <security-constraint> defini-se as restrições de segurança para aplicação. Nele defini-se coisas como url, método http que será filtrado, nome da regra, etc. Tudo isso você pode acompanha na especificação Servlet. Nesse caso nós não definimos quais os métodos HTTP serão filtrados, se eu não me engano, quando não se defini os métodos, o web container irá filtrar todos os métodos do protocolo HTTP, é só olhar na especificação para ver se é isso mesmo. O elemento <user-data-constraint> que nós deixamos comentando, define se o protocolo https será ativado, então para ativar o protocolo https, você pode remover os comentários desse elemento, mas note que caso você o faça, não esqueça que você deve instalar um certificado que será utilizado pelo container com esse protocolo.

No elemento <login-config>, você define o método de autenticação, nesse caso escolhemos o método form, e nesse caso especificamos as páginas de login e de erro. No meu caso, quando eu faço isso, eu prefiro utilizar os JSPs de login e de erro dentro do WEB-INF e mapear-lo como um servlet.

Na página de login, você vai ter mais ou menos isso aqui:

<form id=“form” action=“j_security_check” method=“post”>
User: <input id=“user” type=“text” name=“j_username”>

Password: <input id=“senha” type=“password” name=“j_password”>

<input id=“entra” name=“entrar” type=“submit” value=“Entrar”>
</form>

Na página de erro, normalmente se coloca uma mensagem de erro e um link para o usuário voltar para a página de login ou para o contexto o qual o usuário tentou acessar.

No elemento <security-role> defini-se qual o nome da regra que será usada em <auth-constraint>, nesse caso especificamos adm, o que significa que além do usuário ser válido no banco de dados, ele também terá que pertencer a regra adm. Isso é configurado no elemento <Realm> do arquivo context que fica no diretório META-INF, nesse elemento você vai definir os atributos como; qual o drive jdbc que você vai utilizar, url de conexão, o nome da tabela de usuários, o nome da coluna que contém os nomes de usuários da tabela de usuários, o nome da coluna que contém as senhas de usuários da tabela usuários, o nome da tabela de regras e o nome da coluna que contém os nomes das regras. Lembre-se, no nosso caso, o usuário deve pertencer a regra adm. Note que a tabela de regras se relaciona com a tabela de usuários, nesse link aqui da documentação do tomcat, é mostrado os passos necessários para se criar um JDBCRealm.

Se eu não esqueci nada, é mais ou menos isso daí que você tem fazer.

Uma outra alternativa seria você criar filtros, e fazer tudo na mão grande, mas vai dar mais trabalho, ultimamente eu tenho feito assim, com filtros e tudo na mão grande. :wink:

Qualquer coisa estamos aí. :wink:

Abraço.

Caro Araujo, muito bom dia.
Sim estou entendendo cada vez melhor.
Essa dica valeu muito. Mais uma vez muito obrigada.

Outra coisa que eu gostaria de inserir aqui na qual me ajudou muito e poderá ajudar ao pessoal é como fazer a chamada da “próxima página” depois do login. Dentro do clickListener se insere o seguinte código:

Window.Location.assign(“outraPagina.html”);

Grande abraço pessoal.

bj bj

Valeu!!!

falou, qualquer coisa estamos aí. :wink:

Mais uma coisa, não sei se você conhece, mas você pode se cadastrar no grupo GWT-Brasil, lá você também poderá ter as suas dúvidas sobre GWT respondidas muito mais rapidamente. :wink:

Abraço.