Exemplo completo Utilização Servlet

Propaganda
J2EE
Exemplo completo Utilização
Servlet
Instrutor HEngholmJr
Page 1 of 9
Documento: Exemplo completo utilização Servlet
SytCom Training 2014. All rights reserved
AT09 – Exemplo complete Utilização Servlet
Version 1.1 ● December 5, 2014
Indice
1.
BASEADO NOS EXEMPLOS DE CÓDIGO DESTA APOSTILA, EXECUTE OS SEGUINTES PASSOS: ...... 3
2.
LOGINUI.JSP
3.
LOGINSERVLET.JAVA .......................................................................................................... 4
4.
CLASSE USUARIO........................................................................................................... 5
5.
WEB.XML ............................................................................................................................. 5
6.
BEMVINDO.JSP .................................................................................................................... 6
7.
ERROLOGINUI.JSP ............................................................................................................... 6
....................................................................................................................... 3
IMPLEMENTE UMA JSP DE ERRO DE LOGIN. .................................................................................... 6
EXEMPLO DE CHAMADA DE JSP POR LINKS PASSANDO PARÂMETROS ..................................... 7
8.
JSP CHAMADA RECUPERA OS DADOS ENVIADOS POR ............................................................. 8
DIRECIONANDO DE UMA JSP PARA OUTRA ...................................................................................... 8
9.
EXEMPLO DE CHAMADA DE SERVLET POR LINKS .................................................................... 8
SERVLET CHAMADO ...................................................................................................................... 8
10.
REDIRECIONANDO PÁGINAS ................................................................................................. 9
<jsp:forward page="/teste/jsp/login.jsp" / >...................................... 9
11.
IMPORTS ............................................................................................................................. 9
DECLARAÇÃO DE VARIÁVEIS NA PG ................................................................................................. 9
Page 2 of 9
Documento: Exemplo completo utilização Servlet
SytCom Training 2014. All rights reserved
1. Baseado nos exemplos de código desta apostila, execute os seguintes passos:
 No IDE Java de sua preferência, crie um projeto web.
 Crie uma JSP de nome loginUI.jsp e copie o código do item ‘2’
 Crie o pacote controllers e dentro dele crie um servlet de nome ‘LoginServlet’
inserindo nele o código do item ‘3’.
 Crie o pacote ‘models.administrativo’ e dentro dele, a classe Usuario do item 4.
 Edite o arquivo web.xml de sua aplicação web e copie nele, o conteúdo do item
5.
 Crie a JSp de bem vindo copiando o conteúdo do item 6 e crie a JSP de erro do
item 7.
2. loginUI.jsp
Nesta JSP o usuário realiza tentativa de login.
Ela chama o servlet loginServlet, que recupera o login e a senha digitadas e verifica se
existe algum usuário cadastrado com eles.
<%@page contentType="text/html"%>
<html>
<head><title>Login UI</title></head>
<body>
<p> </p>
<p> </p>
<form name="form1" method="post" action="LoginServlet">
<p>Login
<input type="text" name="login">
</p>
<p>Senha
<input type="text" name="senha">
</p>
<p> </p>
<p>
<input type="submit" name="Submit" value="ok">
</p>
</form>
<p>  </p>
</body>
</html>
Page 3 of 9
Documento: Exemplo completo utilização Servlet
SytCom Training 2014. All rights reserved
3. LoginServlet.Java
package controllers;
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
import models.administrativo.Usuario;
import java.util.*;
/**
* Servlet chamado da JSP de login do sistema
* Recupera o login e senha digitados na JSP de login e instancia
objeto
* Usuario que verifica se existe alguem cadastrado com o login/senha
informados
* De acordo com o resultado, direiona para a UI de usuario o de erro
de login
*
* @author hengholmjr
* @version
*/
public class LoginServlet extends HttpServlet {
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
public void destroy() {
}
protected void processRequest(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
String login = request.getParameter("login");
String senha = request.getParameter("senha");
Usuario usuarioSistema = new Usuario(login, senha);
//Definindo para qual pg será redirecionado o sistema
String destinoUI = "erroLoginUI.jsp";
if(usuarioSistema.verificaLoginUsuario()){
HttpSession session = request.getSession(true);
//Colocando o objeto na sessão do usuario
session.setAttribute("usuarioSistema", usuarioSistema);
destinoUI = "bemVindoUI.jsp";
}
//Redirecionando o sistema
RequestDispatcher rd =
request.getRequestDispatcher(destinoUI);
rd.forward(request, response);
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
Page 4 of 9
Documento: Exemplo completo utilização Servlet
SytCom Training 2014. All rights reserved
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
public String getServletInfo() {
return "Servlet de login ao sistema";
}
}
4. CLASSE USUARIO
package models.administrativo;
public class Usuario {
private String nome = "Usuário com login incorreto", login = "",
senha = "";
int coUsuario = 0;
public Usuario(String login, String senha) {
this.login = login;
this.senha = senha;
verificaLoginUsuario();
}
public Boolean verificaLoginUsuario() {
if(login.equals("l123") && senha.equals("s123")){
coUsuario = 1;
nome = "FULANO DE TAL";
return true;
}
return false;
}
public String getNome() {
public void setNome(String nome) {
public String getLogin() {
public void setLogin(String login)
login;
}
public String getSenha() {
public void setSenha(String senha)
senha;
}
}
return nome;
}
this.nome = nome; }
return login;
}
{
this.login =
return senha;
}
{
this.senha =
5. web.xml
Necessário cadastrar as classes dos servlets neste arquivo, para que sejam encontrados
em tempo de execução.
Veja no exemplo abaixo, como dar nomes ao servlets e indicar para a plataforma Java,
onde os mesmos se encontram.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
Page 5 of 9
Documento: Exemplo completo utilização Servlet
SytCom Training 2014. All rights reserved
<display-name>Teste de aplicação web usando Servlets</display-name>
<description>Aplicação web</description>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>controllers.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
</web-app>
6. bemVindo.jsp
<%@page import="models.administrativo.Usuario"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-88591">
<title>Insert title here</title>
</head>
<body>
<%
Usuario usuarioSistema =
(Usuario)session.getValue("usuarioSistema");
out.println("BEM VINDO Sr(a) " + usuarioSistema.getNome());
%>
</body>
</html>
7. erroLoginUI.jsp
Implemente uma JSP de erro de login.
Page 6 of 9
Documento: Exemplo completo utilização Servlet
SytCom Training 2014. All rights reserved
Exemplo de chamada de Jsp por links passando parâmetros
<%@page contentType="text/html"%>
<html>
<head><title>JSP Page</title></head>
<body>
<p><a href=”pagina.jsp?codigo=10&acao=”adicionar”> Adicionar item A</a></p>
<p> </p>
<p>  </p>
</body>
</html>
Page 7 of 9
Documento: Exemplo completo utilização Servlet
SytCom Training 2014. All rights reserved
8. Jsp chamada recupera os dados enviados por
int codigoMercadoria = integer.parseInt(request.getParameter("codigo"));
String acao = request.getParameter("acao ");
Direcionando de uma JSP para outra
Basta inserir, no local apropriado, as instruções abaixo com a localização da página
destino, neste exemplo /jsp/teste.jsp
Os objetos request e response existem implicitamente em todas as páginas JSP.
Deste modo, não é necessário declará-los
//Definindo para qual pg será redirecionado o sistema
RequestDispatcher rd = request.getRequestDispatcher("/jsp/teste.jsp");
//redirecionando o sistema
rd.forward(request, response);
9. Exemplo de chamada de servlet por links
<a href=”servlets/servletTeste?codigo=1&acao=alterarCadastro”> Mercadoria A</a>
<a href=”servlets/servletTeste?codigo=1&acao=excluir”> Mercadoria A</a>
Servlet chamado
public class servletTeste extends HttpServlet {
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
public void destroy() {
}
protected void processRequest(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
String codigo = request.getParameter("codigo");
String acao = request.getParameter("acao");
//FAÇA AS AÇÕES NECESSÁRIAS
//Definindo para qual pg será redirecionado o sistema
RequestDispatcher rd =
request.getRequestDispatcher("/jsp/mntCadastro.jsp");
//redirecionando o sistema
rd.forward(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
processRequest(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
processRequest(request, response);
}
public String getServletInfo() {
return "Short description";
}
}
Page 8 of 9
Documento: Exemplo completo utilização Servlet
SytCom Training 2014. All rights reserved
10.Redirecionando páginas
<%
if( ..........) {
%>
<jsp:forward page="/teste/jsp/login.jsp">
<jsp:param name=”userid” value=”<%=userId%>”/>
<jsp:param name=”userLogin” value=”<%=userLogin%>”/>
</jsp:forward>
<% else {
%>
<jsp:forward page=”error.jsp”/>
<% }
%>
<jsp:forward page="/teste/jsp/login.jsp" / >
11.Imports
Importando classes na pg
<%@ page import=”com.wrox.Book” %>
Declaração de variáveis na pg
<%! String mensagem = “”; %>
servlet
 componente web ou programa que gera conteúdo web dinamicamente;
 escritos utilizando-se servlets API do Java;
 permite escrever código que recebe e responde dinamicamente solicitações
cliente
Page 9 of 9
Documento: Exemplo completo utilização Servlet
SytCom Training 2014. All rights reserved
Download