A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Unidade 5 – Integrando JSP e Servlets Prof.: Henrique Santos

Apresentações semelhantes


Apresentação em tema: "Unidade 5 – Integrando JSP e Servlets Prof.: Henrique Santos"— Transcrição da apresentação:

1 Unidade 5 – Integrando JSP e Servlets Prof.: Henrique Santos
Programação para Web Unidade 5 – Integrando JSP e Servlets Prof.: Henrique Santos

2 Introdução Existem casos onde queremos que o Servlet tenha somente a responsabilidade de fazer algum processamento e deixe a geração da interface para o JSP (ou um HTML). Nestes casos, seria melhor o Servlet redirecionar a geração da saída.

3 Redirecionamento de Resposta

4 RequestDispatcher RequestDispatcher é a classe principal usada no redirecionamento de respostas do Servlet. Deve-se passar como parâmetro para qual página será redirecionado Sintaxe Inicial: RequestDispatcher Rd = request.getRequestDispatcher ("pagina.jsp");

5 Redirecionamento Foward
A primeira forma de redirecionar para a página do RequestDispatcher é usando o método foward O foward desconsidera qualquer saída do Servlet via ‘out.print’, ou outras saídas.

6 Exemplo Foward protected void processRequest (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); String Login=request.getParameter("login"); String Senha=request.getParameter("senha"); if(Login.equals("admin") && Senha.equals("prognet")){ //Faça algum código de Login aqui e depois vá para página Inicial RequestDispatcher Rd = request.getRequestDispatcher("inicio.jsp"); Rd.foward(request, response); else{ //Usuário ou Senha incorretos, retornar ao Login RequestDispatcher Rd = request.getRequestDispatcher("login.jsp"); out.println("Login ou Senha incorretos."); //Isso será ignorado //porque a estamos usando o método foward } out.close();

7 Redirecionamento Include
O método include adiciona o conteúdo da página a saída do Servlet. A saída do Servlet NÃO é desconsiderada. Pode-se inclusive adicionar múltiplas páginas juntamente com os métodos ‘out.print’ do Servlet para formar a saída.

8 Exemplo Include protected void processRequest (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); String Login=request.getParameter("login"); String Senha=request.getParameter("senha"); if(Login.equals("admin") && Senha.equals("prognet")){ //Faça algum código de Login aqui e depois vá para página Inicial RequestDispatcher Rd = request.getRequestDispatcher("inicio.jsp"); Rd.foward(request, response); else{ //Usuário ou Senha incorretos, retornar ao Login RequestDispatcher Rd = request.getRequestDispatcher("login.jsp"); Rd.include(request, response); out.println("Login ou Senha incorretos."); //Agora essa mensagem // irá aparecer porque a estamos usando o método include } out.close();

9 response.sendRedirect
Outra forma de fazer redirecionamento é usar o método sendRedirect do objeto response Esse redirecionamento é similar ao foward, e ignora qualquer saída do Servlet

10 Exemplo sendRedirect protected void processRequest (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); String Login=request.getParameter("login"); String Senha=request.getParameter("senha"); if(Login.equals("admin") && Senha.equals("prognet")){ //Faça algum código de Login aqui e depois vá para página Inicial response.sendRedirect("inicio.jsp"); else{ //Usuário ou Senha incorretos, retornar ao Login response.sendRedirect("login.jsp"); out.println("Login ou Senha incorretos."); //Isso será ignorado //porque a estamos usando o response.sendRedirect } out.close();

11 sendRedirect x foward A utilização do response.sendRedirect apresenta várias diferenças práticas se comparada com o método forward do RequestDispatcher: A URL na barra de endereços do navegador reflete o alvo especificado Dados armazenados no objeto de requisição anterior são descartados Pode ser encontrado na classe HttpServletResponse (da qual o objeto response faz parte)

12 Inclusão de Páginas

13 Inclusão em Servlets Basta o usar o método include do objeto RequestDispatcher Permite a montagem dinâmica de páginas usando vários arquivos diferentes Exemplo RequestDispatcher Rd = request.getRequestDispatcher ("pagina.jsp"); Rd.include (request, response);

14 RequestDispatcher em JSP
RequestDispatcher não funciona da mesma forma em JSP Os métodos include são resolvidos antes da página principal que está chamando

15 Inclusão em JSP Sintaxe Objetivo
<jsp:include page= "URL Relativa" /> Objetivo Reutilizar conteúdo JSP, HTML, ou simplesmente texto Permitir atualizações no conteúdo incluído sem afetar as páginas JSP principais

16 Inclusão em JSP O conteúdo JSP não afeta a página principal: somente a saída da página JSP incluída é utilizada Não se esqueça de utilizar / no final da tag JSP URLs relativas que iniciam com barra (/) são interpretadas relativas à aplicação, não relativo ao diretório raiz do servidor Muito mais fácil, prático e funcional do que usar o RequestDispatcher

17 Exemplo 1 – chuckfatos.jsp
<html> <head> <link rel="stylesheet" type= "text/css" href="aula.css"/> </head> <body> <h1> Fatos sobre o Chuck Norris </h1> <p>Aqui estão alguns fatos sobre o Chuck Norris o maior DBA de todos os tempos:</p> <ol> <li><jsp:include page="/fato1.html" /> </li> <li><jsp:include page="/fato2.html" /> </li> <li><jsp:include page="/fato3.html" /> </li> </ol> </body></html>

18 Terceira Página Incluída
DELETE FROM CHUCK_NORRIS. <br/> Not Found. (Ele está atras de você, a ponto de dar um Roundhouse Kick!!!) Note que a página não é um documento HTML completo; ela apenas contém tags apropriadas ao local onde será inserida

19 Exemplo 1

20 Acrescentando Parâmetros
Código <jsp:include page="/fatos.jsp"> <jsp:param name="numero" value="1" /> </jsp:include> Equivalente A página incluída seria a mesma página com o parâmetro passado via GET

21 Exemplo 2 <html><head> <link rel="stylesheet" type= "text/css" href="aula.css"/> </head> <body> <h1> Fatos sobre o Chuck Norris </h1> <p> Aqui estão alguns fatos sobre o Chuck Norris o maior DBA de todos os tempos: </p> <ol> <li><jsp:include page="/fatos.jsp"> <jsp:param name="numero" value="1" /> </jsp:include> </li> <jsp:param name="numero" value="2" /> <jsp:param name="numero" value="3" /> </ol> </body></html>


Carregar ppt "Unidade 5 – Integrando JSP e Servlets Prof.: Henrique Santos"

Apresentações semelhantes


Anúncios Google