Java 请求。getRequestDispatcher()失败
我有一个功能不是为了达到他的目的。我想在catch子句内部重定向,但他没有这样做。我不得不说我的类不能扩展到HttpServlet,因为它扩展到了另一个类。他没有重定向到jsp,为什么??他只是忽视了这一点。谢谢你读我的书 代码如下:Java 请求。getRequestDispatcher()失败,java,servlets,Java,Servlets,我有一个功能不是为了达到他的目的。我想在catch子句内部重定向,但他没有这样做。我不得不说我的类不能扩展到HttpServlet,因为它扩展到了另一个类。他没有重定向到jsp,为什么??他只是忽视了这一点。谢谢你读我的书 代码如下: private Integer gestionEnvios(HttpServletRequest request,MantenimientoEnvio buscador) throws ProcedureException { int tipoD =
private Integer gestionEnvios(HttpServletRequest request,MantenimientoEnvio buscador) throws ProcedureException {
int tipoD = 0;
Integer resul = null;
String formulario=buscador.getBuscadorFormularios();
if(formulario.equals("ACTUALIZAR ESTADO"))
{
String referenciaE=buscador.getBuscadorReferenciaE();
String comprobacionTextarea=contarCaracteres(referenciaE);
String estado=buscador.getBuscadorEstado();
int codigo=devolvercodigo(estado);
String fechaDesde=buscador.getBuscadorFechaDesde();
String fechacorrecion=new String();
try {
fechacorrecion=comprobaciónFecha(fechaDesde);
} catch (ParseException e) {
// TODO Auto-generated catch block
System.out.println("Has introducido mal la fecha");
e.printStackTrace();
// request.getRequestDispatcher("/clock.jsp");
}
/***************************/ This is the full code of the function, he doesnt end when reaches request.getRequestDispatcher("/clock.jsp").forward(request, response); hes continues...
/*****/ private Integer gestionEnvios(HttpServletRequest request,MantenimientoEnvio buscador, HttpServletResponse response) throws ProcedureException, ServletException, IOException {
int tipoD = 0;
Integer resul = null;
String formulario=buscador.getBuscadorFormularios();
if(formulario.equals("ACTUALIZAR ESTADO"))
{
String referenciaE=buscador.getBuscadorReferenciaE();
String comprobacionTextarea=contarCaracteres(referenciaE);
String estado=buscador.getBuscadorEstado();
int codigo=devolvercodigo(estado);
String fechaDesde=buscador.getBuscadorFechaDesde();
String fechacorrecion=new String();
try {
fechacorrecion=comprobaciónFecha(fechaDesde);
} catch (ParseException e) {
// TODO Auto-generated catch block
System.out.println("Has introducido mal la fecha");
// e.printStackTrace();
request.getRequestDispatcher("/clock.jsp").forward(request, response);
}
if(referenciaE.contains(",")){
String prepara=referenciaE.trim();
String prepara0=prepara.replaceAll("\\s+", " ");
String prepara1=prepara0.replaceAll(",( )*"," ");
String prepara2=prepara1.replaceAll(" ", ",");
if(fechaDesde.equals("")){
resul=mantEnvioService.gestionEnvio(2, codigo,null, prepara2);
}else{
resul=mantEnvioService.gestionEnvio(2, codigo, fechaDesde, prepara2);
}
}else
{
if(fechaDesde.equals("")){
resul=mantEnvioService.gestionEnvio(2, codigo,null, referenciaE);
}else{
resul=mantEnvioService.gestionEnvio(2, codigo, fechaDesde, referenciaE);
}
}
}
else if(formulario.equals("DEVOLUCIÓN")){
String referenciaD=buscador.getBuscadorReferenciaD();
String cadena=new String();
/**
* Carlos Gil
* Eliminamos el retorno de carro por un punto
*
*/
cadena=eliminarRetornoCarro(referenciaD);
String semanl=buscador.getBuscadorEjecucionSemanal();
String tipo=buscador.getBuscadorButtons();
if(tipo.equals("O2O")&&semanl==null){
tipoD=1;
}else if(tipo.equals("ICP")){
tipoD=2;
}else if(tipo.equals("Otros")){
tipoD=3;
}else if(tipo.equals("O2O Ejecucion Semanal")){
tipoD=4;
}
if(referenciaD.contains(",")){
String prepara=referenciaD.trim();
String prepara0=prepara.replaceAll("\\s+", " ");
String prepara1=prepara0.replaceAll(",( )*"," ");
String prepara2=prepara1.replaceAll(" ", ",");
resul=mantEnvioService.gestionEnvio(1, tipoD, null, prepara2);
}else
resul=mantEnvioService.gestionEnvio(1, tipoD, null, referenciaD);
}
return resul;
}
假设将
HTTPServletResponse
response参数添加到方法中,则调用:
request.getRequestDispatcher("/clock.jsp").forward(request, response);
您可以选择转发和重定向到其他页面
-request.getRequestDispatcher(“/clock.jsp”).forward(请求,响应)代码>
-response.sendRedirect(“clock.jsp”)代码>
话虽如此,如果您确实希望将页面保存在WEB-INF下,请参见以下问题:,该主题已被多个用户触及。被接受的答案是来自
更明确的推理:显然请求被注释,但如果我取消注释它仍然失败,您需要在RequestDispatcher上调用forward(ServletRequest请求,ServletResponse响应)。唯一需要的是,如果到达request.getRequestDispatcher,他将转到jsp并停止servlet。也许您的评论可能是这样的结果,thxYes,forward将传输请求,而servlet不会做更多的事情。您遇到了什么问题?有错误吗?它不能解决我的问题。但谢谢你的建议。:)
basic-maven-project/
|-- pom.xml
|-- src
| |-- main
| | |-- java
| | |-- resources
| | `-- webapp
| | `-- WEB-INF
| `-- test
| |-- java
| `-- resources
`-- target
|-- classes
`-- test-classes