我有一个疑问,在我的代码中我需要使用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);
}
}
答案 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?