Seguinte, estava lendo um projeto final desenvolvido em java que utilizou um recurso que achei bem interessante, mas nao estou conseguindo fazer…
pelo que entendi da ideia no projeto a configuração abaixo feita no sun-web.xml serve para que todos os action com extensao .do sejam redirecionados para o FrontController… Achei interessante e tentei fazer o mesmo na configuracao abaixo, porem nao funcionou…
alem de configurar o XML é preciso fazer mais alguma coisa ?
packagebr.com.guj.controle;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;/** * Servlet implementation class ControleGeraç */publicclassControleGeralextendsHttpServlet{privatestaticfinallongserialVersionUID=1L;publicControleGeral(){super();}protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{}protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{}}
Espero que ajude…
Abs,
S
serraventura
caputo, por onde acesso esse web.xml ?
eu só consigo enxergar em meu projeto o sun-web.xml …
tem alguma diferença os dois ?
abcs
caputojf1
Para o seu caso pode mapear a Servlet no sun-web.xml mesmo…
Depois posta aí o resultado…
Qual IDE você está usando?
S
serraventura
Deu erro 404...
meu sun-web.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD GlassFish Application Server 3.0 Servlet 3.0//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_3_0-0.dtd"><sun-web-apperror-url=""><context-root>/3DImoveis</context-root><class-loaderdelegate="true"/><jsp-config><propertyname="keepgenerated"value="true"><description>Keepacopyofthegeneratedservletclass'javacode.</description></property></jsp-config><servlet><servlet-name>FrontController</servlet-name><principal-name>br.com.threedi.Controller.FrontController</principal-name></servlet><servlet-mapping><servlet-name>FrontController</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><session-config><session-timeout>10</session-timeout></session-config></sun-web-app>
meu FrontController
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packagebr.com.threedi.Controller;importbr.com.threedi.Utility.ExcessaoNegocio;importbr.com.threedi.Utility.RequestHelper;importjava.io.IOException;importjava.io.PrintWriter;importjava.sql.SQLException;importjavax.servlet.RequestDispatcher;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;/** * * @author Thiaho Ventura NB */@WebServlet(name="FrontController",urlPatterns={"/FrontController"})publicclassFrontControllerextendsHttpServlet{privatestaticfinallongserialVersionUID=1L;publicFrontController(){super();}/** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods. * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */protectedvoidprocessRequest(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=UTF-8");PrintWriterout=response.getWriter();RequestDispatcherrd;Stringpagina="erro.jsp";try{RequestHelperhelper=newRequestHelper(request);Commandcmd=helper.getCommand();pagina=cmd.execute(request,response);rd=request.getRequestDispatcher(pagina);rd.forward(request,response);}catch(SQLExceptione){request.setAttribute("msgErro",e);pagina="erro.jsp";rd=request.getRequestDispatcher(pagina);rd.forward(request,response);}catch(ExcessaoNegocioe){request.setAttribute("msgErro",e);if(!e.getPath().equals("")){pagina=e.getPath();}else{pagina="erroNegocio.jsp";}rd=request.getRequestDispatcher(pagina);rd.forward(request,response);}catch(Exceptione){request.setAttribute("msgErro",e);pagina="erro.jsp";rd=request.getRequestDispatcher(pagina);rd.forward(request,response);}finally{out.close();}}// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">/** * Handles the HTTP <code>GET</code> method. * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */@OverrideprotectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{processRequest(request,response);}/** * Handles the HTTP <code>POST</code> method. * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */@OverrideprotectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{processRequest(request,response);}/** * Returns a short description of the servlet. * @return a String containing servlet description */@OverridepublicStringgetServletInfo(){return"Short description";}// </editor-fold>}
no método processRequest coloca um sysout assim e veja se ele imprime no console…
protectedvoidprocessRequest(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{System.out.println("Chamou o Cadastro.do");
S
serraventura
tentei, mas cai direto no erro 404…
HTTP Status 404 -
type Status report
message
descriptionThe requested resource () is not available.
GlassFish Server Open Source Edition 3.1
eu posso colocar qualquer coisa com final .do no action? tipo xxxxxxx.do ?
outra coisa sera q eu tenho q especificar o local do controller no action, tipo action="…/xxxxxxx.do" ?
S
serraventura
será q pode ser alguma configuração no glassfish ?