获取并发布在同一个Servlet中

时间:2013-06-21 12:04:10

标签: java servlets post get

我有一个疑问,在我的代码中我需要使用get和post方法,因为在get中我使用Window.open传递一个页面的一些信息,并在帖子中返回一些字段的值我用我的ETXjs代码获得。

首先,我收到了使用get方法获得的字段,以及后来我在EXTjs中工作的字段,然后当我使用该字段进行咨询时,我需要使用get获得的param。

有可能做点什么吗?这是我的代码:

@WebServlet("/ServletTipoPapel")
public class ServletTipoPapel extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public ServletTipoPapel() {
        super();
        // TODO Auto-generated constructor stub
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //Here i work with my get param Usuario.
        String usuario = request.getParameter("usuario");
        JOptionPane.showMessageDialog( null, "El usuario que usa esto es " + usuario );
        tratarPeticionesEntrantes(request,response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        tratarPeticionesEntrantes(request,response);
    }

    private void tratarPeticionesEntrantes(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        if(request.getParameter("Funcionalidad")==null || request.getParameter("Funcionaldiad")==""){
            RequestDispatcher rd=request.getRequestDispatcher("/jsp/PantallasGestion/tipoPapel.jsp");
            rd.forward(request,response);
        }else{
            JSONObject json=tratarPeticion(request);
            System.out.println(json.toJSONString());
            PrintWriter escritorRespuesta=response.getWriter();
            escritorRespuesta.println(json.toJSONString());
            //escritorRespuesta.println();
            escritorRespuesta.flush();
            escritorRespuesta.close();
        }
    }

    //JSON

    private JSONObject tratarPeticion(HttpServletRequest request){
        JSONObject respuesta=null;
        String parametroFuncionalidad=request.getParameter("Funcionalidad");
        System.out.println(request.getParameter("Funcionalidad"));

        if(parametroFuncionalidad!=null && parametroFuncionalidad!=""){
            if(parametroFuncionalidad.equalsIgnoreCase("CONSULTA")){
                respuesta=tratarPeticionConsulta(request);
            }else if(parametroFuncionalidad.equalsIgnoreCase("MODIFICAR")){
                respuesta=tratarPeticionModificacion(request);
            }else if(parametroFuncionalidad.equalsIgnoreCase("INSERTAR")){
                respuesta=tratarPeticionAlta(request);
                System.out.println("aqui entra");
            }else if(parametroFuncionalidad.equalsIgnoreCase("ELIMINAR")){
                respuesta=tratarPeticionBaja(request);  
            }else{
            }
        }
        return respuesta;
    }

    private JSONArray tipoPapelesToArray(ArrayList<TipoPapel> papeles){
        JSONArray list = new JSONArray();
        for(int i=0;i<papeles.size();i++){
            JSONObject elemento1=new JSONObject();
            elemento1.put("TIPPAP",papeles.get(i).getTipoPapel());
            elemento1.put("TAMPAP",papeles.get(i).getTamanioPapel());
            elemento1.put("INDPAR",papeles.get(i).getIndicadorCanal());
            elemento1.put("NUMOPTDO",papeles.get(i).getNumOptimoPaginas());
            elemento1.put("INDCAR",papeles.get(i).getIndicadorCaratula());
            elemento1.put("FORCAR",papeles.get(i).getFormularioCaratula());
            elemento1.put("VERCAR",papeles.get(i).getVersionCaratula());
            elemento1.put("FORSEPIN",papeles.get(i).getFormularioSeparadorInicial());
            elemento1.put("VERSEPIN",papeles.get(i).getVersionSeparadorInicial());
            elemento1.put("FORSEPFI",papeles.get(i).getFormularioSeparadorFinal());
            elemento1.put("VERSEPFI",papeles.get(i).getVersionSeparadorFinal());
            elemento1.put("NUMFICSP",papeles.get(i).getFicheroSpool());
            elemento1.put("DESTIPPA",papeles.get(i).getDescripcionTipoPapel());
            elemento1.put("TIP_TRABAJO",papeles.get(i).getTipoTrabajo());
            elemento1.put("FECALT",papeles.get(i).getFechaAlta());
            elemento1.put("FECMOD",papeles.get(i).getFechaModificacion());
            elemento1.put("TERMOD",papeles.get(i).getUsuarioModificacion());
            elemento1.put("HORMOD",papeles.get(i).getHoraModificacion());
            list.add(elemento1);
        }
        return list;
    }

    //PARTE DE ALTA

    private JSONObject tratarPeticionAlta(HttpServletRequest request){
        System.out.println("aqui tambien");
        TipoPapelDAO papelDAO=new TipoPapelDAO();
        String [] camposAObtener={"TODOS"};
        String entorno="DESARROLLO";
        ArrayList<TipoPapel> papeles=papelDAO.obtenerParaAlta(obtenerCamposParaAlta(request),entorno);
        //System.out.println("aqui tambien despues 2");
        JSONObject respuesta = new JSONObject();
        JSONArray list = tipoPapelesToArray(papeles);
        respuesta.put("TiposPapel",list);
        //System.out.println("aqui tambien despues 3" + respuesta);
        return respuesta;
    }

    private String[] obtenerCamposParaAlta(HttpServletRequest request){
        ArrayList<String> elementosAux=new ArrayList<String>();
        int contador1 = 0;
        int contador2 = 0;
        int contador3 = 0;
        int contador4 = 0;
        int contador5 = 0;
        int contador6 = 0;
        int contador7 = 0;
        int contador8 = 0;
        int contador9 = 0;
        int contador10 = 0;
        int contador11 = 0;
        int contador12 = 0;
        int contador13 = 0;
        int contador14 = 0;

        if(request.getParameter("DPTipoPapel")!=null && request.getParameter("DPTipoPapel").trim()!="")
        {
            elementosAux.add("TIPPAP~"+request.getParameter("DPTipoPapel"));
            contador1 = 1;
        }
        if (contador1==0)
        {
            elementosAux.add("TIPPAP~NULL");
        }

        if(request.getParameter("DPTamPapel")!=null && request.getParameter("DPTamPapel").trim()!="")
        {
            elementosAux.add("TAMPAP~"+request.getParameter("DPTamPapel"));
            contador6 = 1;
        }
        if (contador6==0)
        {
            elementosAux.add("TAMPAP~NULL");
        }

        if(request.getParameter("DPIndicadorSoD")!=null && request.getParameter("DPIndicadorSoD").trim()!="")
        {
            elementosAux.add("INDPAR~"+request.getParameter("DPIndicadorSoD"));
            contador2 = 1;
        }
        if (contador2==0)
        {
            elementosAux.add("INDPAR~NULL");
        }

        if(request.getParameter("DPNumOptimo")!=null && request.getParameter("DPNumOptimo").trim()!="")
        {
            elementosAux.add("NUMOPTDO~"+request.getParameter("DPNumOptimo"));
            contador7 = 1;
        }
        if (contador7==0)
        {
            elementosAux.add("NUMOPTDO~NULL");
        }

        if(request.getParameter("DPCaratula")!=null && request.getParameter("DPCaratula").trim()!="")
        {
            elementosAux.add("INDCAR~"+request.getParameter("DPCaratula"));
            contador3 = 1;
        }
        if (contador3==0)
        {
            elementosAux.add("INDCAR~NULL");
        }

        if(request.getParameter("DPFormularioCaratula")!=null && request.getParameter("DPFormularioCaratula").trim()!="")
        {
            elementosAux.add("FORCAR~"+request.getParameter("DPFormularioCaratula"));
            contador8 = 1;
        }
        if (contador8==0)
        {
            elementosAux.add("FORCAR~NULL");
        }

        if(request.getParameter("DPVersCaratula")!=null && request.getParameter("DPVersCaratula").trim()!="")
        {
            elementosAux.add("VERCAR~"+request.getParameter("DPVersCaratula"));
            contador4 = 1;
        }
        if (contador4==0)
        {
            elementosAux.add("VERCAR~NULL");
        }

        if(request.getParameter("DPFinicial")!=null && request.getParameter("DPFinicial").trim()!="")
        {
                elementosAux.add("FORSEPIN~"+request.getParameter("DPFinicial"));
                contador10=1;
        }
        if (contador10==0)
        {
            elementosAux.add("FORSEPIN~NULL");
        }

        if(request.getParameter("DPVinicial")!=null && request.getParameter("DPVinicial").trim()!="")
        {
            elementosAux.add("VERSEPIN~"+request.getParameter("DPVinicial"));
            contador11=1;
        }
        if (contador11==0)
        {
            elementosAux.add("VERSEPIN~NULL");
        }

        if(request.getParameter("DPFfinal")!=null && request.getParameter("DPFfinal").trim()!="")
        {
            elementosAux.add("FORSEPFI~"+request.getParameter("DPFfinal"));
            contador12=1;
        }
        if (contador12==0)
        {
            elementosAux.add("FORSEPFI~NULL");
        }

        if(request.getParameter("DPVfinal")!=null && request.getParameter("DPVfinal").trim()!="")
        {
            elementosAux.add("VERSEPFI~"+request.getParameter("DPVfinal"));
            contador13=1;
        }
        if (contador13==0)
        {
            elementosAux.add("VERSEPFI~NULL");
        }

        if(request.getParameter("DPSpool")!=null && request.getParameter("DPSpool").trim()!="")
        {
            elementosAux.add("NUMFICSP~"+request.getParameter("DPSpool"));
            contador5 = 1;
        }
        if (contador5==0)
        {
            elementosAux.add("NUMFICSP~NULL");
        }

        if(request.getParameter("DPDescripcion")!=null && request.getParameter("DPDescripcion").trim()!="")
        {
            elementosAux.add("DESTIPPA~"+request.getParameter("DPDescripcion"));
            contador9 = 1;
        }
        if (contador9==0)
        {
            elementosAux.add("DESTIPPA~NULL");
        }

        if(request.getParameter("DPTipoTrabajo")!=null && request.getParameter("DPTipoTrabajo").trim()!="")
        {
            elementosAux.add("TIP_TRABAJO~"+request.getParameter("DPTipoTrabajo"));
            contador14 = 1;
        }
        if (contador14==0)
        {
            elementosAux.add("TIP_TRABAJO~NULL");
        }

        //Here i must work with USUARIO because when i update a register i need to put the value of the user that do that action
        String [] elementos=new String[elementosAux.size()];
        return elementosAux.toArray(elementos);
    }
}

3 个答案:

答案 0 :(得分:2)

当然,你可以让一个servlet做不同的事情,这取决于用来调用它的http方法(get,post等),但它很快会导致混乱,你通常最好每个使用单独的servlet,也许如果需要的话,让他们都对这两种方法作出实物回应
你不能做的是从服务器返回到客户端,然后在单个请求的上下文中再返回到servlet。

如果这不能澄清你的困惑,你将不得不阅读更多有关servlet和http通信的内容。

答案 1 :(得分:0)

我可以定义doGet和doPost吗?

我可以从浏览器的一个单一请求中同时调用两个

没有

如果我的问题得到解决,有一件事就是:从你的页面进行ajax调用,这将调用你的sevlet

但在我们提出非常准确的建议之前,请明确您的问题,您希望在何时以及何时使用您的请求

答案 2 :(得分:0)

我决定将var传递给我的jsp:

              protected void doGet(HttpServletRequest request, HttpServletResponse response)         throws ServletException, IOException 
{
    String usuario = request.getParameter("usuario");
    JOptionPane.showMessageDialog( null, "El usuario que usa esto es " + usuario );

    request.setAttribute("usuario",usuario);
    RequestDispatcher rd=request.getRequestDispatcher("/jsp/PantallasGestion/tipoPapel.jsp");
    rd.forward(request,response);
}

然后在我的jsp中我调用我的EXTjs,返回值将在我的servlet中调用我的POST方法,我现在只有一个问题,我不知道如何将一个值从jsp传递给js(EXTJS)。 ..有可能我直接调用我的EXTjs并且不使用jsp?