Arquivo da categoria ‘Java’

Convertendo e validando String em UTF-8

Informacoes rapidas.

Passei por alguns problemas relacionados a codificacao de texto, String para os intimos, entao resolvi comentar sobre o assunto.

Deixarei a teoria para quem realmente entende, por exemplo: http://pt.wikipedia.org/wiki/UTF-8

Criando String UTF-8

Uma simples String codificada em formato UTF-8 é facilmente criada desta forma:

String txt = “Texto não verificado a codificacao”;

String txtUTF8 = new String(txt.getBytes(“UTF-8″));

Validando  String UTF-8

Um forma muito simples de verificar se um texto esta realmente com todos os seus caracteres em formato UTF-8 é converter o texto para UTF-8 e compara o texto resultante ao texto original.

String txt = “Texto não verificado a codificação”;

String txtUTF8 = new String(txt.getBytes(“UTF-8″));

if (!txt.equals(txtUTF8)) {

System.out.println(“Texto original nao esta em UTF-8″);

}

Validando XML UTF-8

No exemplo abaixo mostrarei de forma simples como validar uma String que contem um XML.
try {
String XML = “<?xml version=’1.0′ encoding=’UTF-8′?><root><filho atributo=’valorAtributo’>Ythalo Rossy</filho></root>”;
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = builderFactory.newDocumentBuilder();
Document document = builder.parse(new ByteArrayInputStream(XML.getBytes()));
if (document != null) {
String encoding = document.getXmlEncoding();
if (encoding == null || encoding.equalsIgnoreCase(“”) || (!encoding.equalsIgnoreCase(“UTF-8″))) {
System.out.println(“XML nao codificado em UTF-8″);
} else {
System.out.println(“XML codificado em UTF-8″);
}
}
} catch (ParserConfigurationException e) {
} catch (SAXException e) {
} catch (IOException e) {
}
Como viram foi apenas um resumo, dicas, sobre o assunto, assim que formular mais alguma dica volto a complementar.

Certificações Java – Treinamentos gratuitos

Ciclo de vida de um JSP

Como qualquer outra linguagem, o “scripting” JSP tem uma gramática bem definida que inclui elementos de sintaxe para desenvolver diversos processos. Uma linguagem de alto nível, que também é chamada de “TAGS JSP”, classificadas em seis categorias.
Comentarei um pouco sobre cada uma dessas categorias.

Forma resumida das categorias

  • Directive: Especifica o momento de tradução do JSP
  • Declaration: Declara e define métodos e variáveis
  • Scriplet: Permite ao desenvolvedor escrever de forma livre dentro de página JSP
  • Expression: Usado para imprimir (escrever) valores no HTML de saída em uma página JSP
  • Action: Prové instruções em tempo de execução para o motor JSP
  • Comment: Usado para documentação e comentário do código JSP

Clique aqui e leia mais…

Aniversário CEJUG

7º Aniversário do CEJUG

7º Aniversário do CEJUG

O Cejug chega aos seus sete anos de existência e entre seus diversos programas o Café com Tapioca já é um dos mais tradicionais eventos de Java e TI no Nordeste. Trazendo palestrantes nacionais e internacionais, o evento reúne e agrega a comunidade Cerense dos aficionados por Java mostrando as novidades, tendências e trabalhos de desenvolvimento do estado e do mundo.

Venha prestigiar o evento, participar, conhecer pessoas incríveis, ganhar brindes e fazer parte dessa história.

Programação

- 8h10: Credenciamento

- 8h40: Abertura

- 9h10: O caminho da produtividade para desenvolvedores web com Bruno Pereira

- 10h:   Como fazer uma aplicação JEE/JME para rodar nos 4 cantos do mundo com Régis Melo

- 11h:   O mito dos times ágeis com Victor Oliveira

- 12h – Intervalo para Almoço. Opções próximas: Pão de Açúcar, McDonald’s ou Subway ou um pouco mais longe: Spettus (Shopping Salinas – mapa); Ferreiro Café (Shopping Iguatemi – mapa).

- 13h30: Os 10 maus hábitos dos desenvolvedores JSF com Tarso Bessa e Rafael Ponte

- 14h20: Turbinando sua aplicação com Lucene: conheça Solr e Hibernate Search com Jeveaux

- 15h10: Lanche

- 15h20: O que matou o RUP também pode matar o Agile com Rodrigo Yoshima

- 16h30: Desmistificando o TDD na prática com  Paulo Silveira

- 17h40 – Sorteios

Autenticação Servlet – Parte 02

Dentro da especificação Servlet existe uma parcela que compreende a segurança dos recursos acessados por cliente. Dentre estes recursos esta autenticação através de formulário, certificados digitais e ate mesmo por tela autenticação gerada pelo próprio browser.

Dividirei o conteúdo em algumas partes e logo que for terminando de compor estarei disponibilizando. Segue abaixo em negrito o conteúdo que terminei:

Parte 01: Os quatro mecanismo de autenticação

Parte 02: Implantando

Clique aqui e leia mais…

Autenticação Servlet – Parte 01

Dentro da especificação Servlet existe uma parcela que compreende a segurança dos recursos acessados por cliente. Dentre estes recursos esta autenticação através de formulário, certificados digitais e ate mesmo por tela autenticação gerada pelo próprio browser.

Dividirei o conteúdo em algumas partes e logo que for terminando de compor estarei disponibilizando. Segue abaixo em negrito o conteúdo que terminei:

Parte 01: Os quatro mecanismo de autenticação

Parte 02: Implantando

Clique aqui e leia mais…

Filtro de Servlets (Servlets Filters)

Tecnicamente falando, filtro é um objeto que intercepta uma mensagem de requisição entre a origem/cliente e destino/recurso.

Como funciona?

Associando a origem ao browser/navegador, o destino a um servlet e uma implementação de HttpServletRequest a mensagem de requisiçao é possível interceptar estas requisições através de um filtro.

A mensagem antes de chegar ao servlet é recepcionada/interceptada por um filtro que aplica alguma regra de negocio da aplicação e permite ou não o acesso ao servlet. Caso o acesso seja concebido a mensagem chegará ate o servlet e será processada, ao terminar o processo o servlet responde (HttpServletResponse), a resposta passará novamente pelo filtro antes de chegar ao cliente/origem.

Clique aqui e leia mais…

Eventos e seus ouvintes (Listeners) em Servlets

Eventos e seus ouvintes (Listeners) em Servlets
Conhecemos formas de adicionar atributos em uma javax.servlet.http.HttpSession, em um
javax.servlet.ServletContext e ate mesmo em javax.servlet.HttpServletRequest, também sabemos que
javax.servlet.ServletContext e javax.servlet.http.HttpSession são inicializados e destruidos para dar
suporte ao compatilhamento de dados. Mas como interagir com esses eventos?
Bem, a resposta é simples, dentro da propria API Servlet é possível encontrar algumas interfaces que
quando implementadas são capazes de responderem a esta pergunta.
<n> Eventos relacionados manipulaçao de atributos
A manipulação de eventos relacionados a atributos são ouvidos pelas seguintes interfaces:
- HttpSessionAttributeListener: Eventos relacionados a HttpSession
- ServletContextAttributeListener: Eventos relacionados ao ServletContext
- ServletRequestAttributeListener: Eventos relacionados ao ServletRequest
Para cada interface é necessário implementar três métodos, com uma assinatura padrão, mudando apenas o
parametro recebido no método, que deve ser filho de javax.servlet.http.HttpSessionEvent.
HttpSessionAttributeListener:
public void attributeRemoved(HttpSessionBindingEvent bindingEvent);
public void attributeReplaced(HttpSessionBindingEvent bindingEvent);
public void attributeAdded(HttpSessionBindingEvent bindingEvent);
ServletRequestAttributeListener:
public void attributeAdded(ServletRequestAttributeEvent attributeEvent);
public void attributeRemoved(ServletRequestAttributeEvent attributeEvent);
public void attributeReplaced(ServletRequestAttributeEvent attributeEvent);
ServletContextAttributeListener:
public void attributeAdded(ServletContextAttributeEvent attributeEvent);
public void attributeReplaced(ServletContextAttributeEvent attributeEvent);
public void attributeRemoved(ServletContextAttributeEvent attributeEvent);
<n> Eventos relacionados a criação e destruição
<n> ServletContext
Permite ao desenvolvedor saber quando o contexto foi inicializado ou destruido. A interface
javax.servlet.ServletContextListener deve ser implementada. Esta interface define dois métodos:
public void contextInitialized(ServletContextEvent contextEvent): Sempre que o contexto foi inicializado.
public void contextDestroyed(ServletContextEvent contextEvent): Sempre que o contexto for destruido.
Um utilização comum para o uso desta interface é a criação ou instanciação de recursos, como conexões a
banco de dados, que devem ser destruida, desalocadas quando o contexto for destruido, descarregado.
<n> HttpSession
Permite ao desenvolver saber quando uma sessão foi inicializada ou destruida. A interface
javax.servlet.Http.HttpSessionListener deve ser implementada. Esta interface define dois método:
public void sessionCreated(HttpSessionEvent sessionEvent): Sempre que uma sessão é criada.
public viod sessionDestroyed(HttpSessionEvent sessionEvent): Sempre que uma sessão é destruida.
<n> HttpServletRequest
Permite ao desenvolvedor saber quando uma requisição é efetuada do cliente ao escopo do servlet. A
interface javax.servlet.Http.HttpServletRequestListener deve ser implementada. Esta interface define dois
métodos:
public void requestInitialized(ServletRequestEvent requestEvent): Sempre que uma requisição é feita.
public void requestDestroyed(ServletRequestEvent requestEvent): Sempre que uma requisição é atendida.
Definindo o uso de listener(Ouvintes)
Em alguns passos definirei o que é necessário para criar um listerner(ouvinte) dos eventos.
Passo 1: Criar uma classe que implemente um ou mais interfaces
public class YRossAttibuteListener
implements HttpSessionAttributeListener {
}
Passo 2: Implementar os métodos das interfaces.
public class YRossAttibuteListener
implements HttpSessionAttributeListener {
public void attributeAdded(HttpSessionBindingEvent bindingEvent) {
println(“Adicionado Atributo Session”);
}
public void attributeRemoved(HttpSessionBindingEvent bindingEvent) {
println(“Removido Atributo Session”);
}
public void attributeReplaced(HttpSessionBindingEvent bindingEvent) {
println(“Modificado Atributo Session”);
}
}
Passo 3: Definir que esta classe é um listener no descritor de implantação (web.xml), como segue abaixo:
<listener>
<listener-class>br.com.yross.listeners.YRossAttibuteListener</listener-class>
</listener>
<listener>
<listener-class>br.com.yross.listeners.YRossServletContextListener</listener-class>
</listener>
Ufa, terminou, mas existem diversas interfaces que podem ser utilizadas para ouvir os eventos. Vale a pena pesquisa um pouco mais.

Conhecemos formas de adicionar atributos em uma javax.servlet.http.HttpSession, em um javax.servlet.ServletContext e ate mesmo em javax.servlet.HttpServletRequest, também sabemos que javax.servlet.ServletContext e javax.servlet.http.HttpSession são inicializados e destruidos para dar suporte ao compartilhamento de dados. Mas como interagir com esses eventos?

Bem, a resposta é simples, dentro da própria API Servlet é possível encontrar algumas interfaces que quando implementadas são capazes de responderem a esta pergunta.

Clique aqui e leia mais…

ServletConfig X ServletContext

Pretendo discutir um pouco sobre o uso de ServletConfig e ServletCOntext, existem pequenas diferenças entre os dois, mas especificamente no contexto de acesso as informaçoes contidas nos dois.

Clique aqui e leia mais…

RequestDispatcher

A API Servlet inclui a interface javax.servlet.RequestDispatcher com a finalidade de encaminhar a requisição atual para outro recurso, como um outro servlet.

Clique aqui e leia mais…

Próxima Página »