0

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

首先,我收到我通过 get 方法获得的字段,然后是我在 EXTjs 中工作的字段,然后当我使用该字段进行咨询时,我需要使用 get 获得的参数。

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

@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);
    }
}
4

3 回答 3

3

当然,根据调用它的 http 方法(get、post 等),你可以让一个 servlet 做不同的事情,但这很快就会导致混乱,你通常最好为每个 servlet 使用单独的 servlet,也许让它们全部如果需要,请对这两种方法做出实物回应。

您不能做的是从服务器返回到客户端,然后在单个请求的上下文中再次返回到 servlet。

如果这不能澄清您的困惑,您将不得不阅读更多关于 servlet 和 http 通信的一般信息。

于 2013-06-21T12:15:18.023 回答
0

我可以同时定义 doGet 和 doPost 吗?

是的

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

如果我的问题正确,一件事是:从您的页面进行 ajax 调用,这将对您的 sevlet 进行后期调用

但在我们提出非常精确的建议之前,请先明确您的问题,您想在什么时候处理您的请求。

于 2013-06-21T13:12:19.657 回答
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?

于 2013-06-24T10:53:23.440 回答