Avatar billede dannv Nybegynder
24. juni 2003 - 14:43 Der er 1 kommentar og
1 løsning

RequestDispatching fejlmeddelelse

Jeg vil gerne benytte RequestDispatcher istedet for sendRedirect, men har et problem...

Jeg har et link som kører en jsp side som logger en bruger ud.(Logout.jsp) Efter det skal vedkommende sendes til min start side = Welcome.html.

Når jeg benytter sendRedirect er der ingen problemer, men med RD får jeg konstant fejlmeddelelser.

.jsp siden ser således ud:
*-------------------------------------*****

<%@ page language="java" import="java.util.*" import="javax.servlet.ServletRequest" %>
<jsp:useBean id="login" class="ProjectPack.LoginBean" scope="session"/>

<%
if(session.getAttribute("loggedIn").equals("true"))
{
  login.setUserName("");
  session.removeAttribute("loggedIn");
  session.removeAttribute("user_name");
  session.removeAttribute("requestURI");
  System.out.println("alt ok");
  RequestDispatcher rd = request.getRequestDispatcher("/chemicalInventory/Welcome.html");
  rd.forward(request, response);
}
else
{
  response.sendRedirect("Welcome.html");
//  RequestDispatcher rd = request.getRequestDispatcher("/Welcome.html");
//  rd.forward(request, response);
}
%>
*-----------------------------------------------**

Fejlmeddelsen:
*-----------------------------------------------*
org.apache.jasper.JasperException: getOutputStream() has already been called for this response
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

etc........ (den er MEGET lang)
*-------------------------------------------***

Jeg kører Tomcat 4.1.24.

Min applikation ligger under
webabbs;
MyJSP;
chemicalInventory (Idenne mappe ligger bla. Welcome.html);
inventory(I denne mappe ligger min jsp sider, også logout.jsp);

Er der nogle der kan fortæller hvor der skal ændres..?
Avatar billede arne_v Ekspert
24. juni 2003 - 18:25 #1
Du kan ikke kalde request dispatcher forward hvis der er outputtet
noget som helst inden.

Det inkluderer tomme linier !

Så ryk din <% %> op.

Jeg legede lidt.

<%@page language="java"%><%
request.getRequestDispatcher("page.html").forward(request, response);
%>

virker.

<%@page language="java"%>
<%
request.getRequestDispatcher("page.html").forward(request, response);
%>

fejler.

<%@page language="java"%>

<%
request.getRequestDispatcher("page.html").forward(request, response);
%>

fejler.

:-(
Avatar billede dannv Nybegynder
25. juni 2003 - 13:47 #2
Kanon, små fejl store konsekvenser...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester