? include servlet in .jsp

Status
Niet open voor verdere reacties.

hstijnen

Gebruiker
Lid geworden
26 apr 2007
Berichten
82
Hoi,
ik heb een java servlet gemaakt die ik in een .jsp aanroep. Eerst client side:
<iframe src="myServlet" width="100%" height="100000" frameborder="0" scrolling="no"></iframe>
Dat gaat goed, dus servlet is OK.

Nu wil ik van dat frame af, en dat kan door server side te includen:
<jsp:include page="/myServlet" />
Dat gaat echter fout. Met de debugger kan ik nagaan dat de servlet netjes wordt aangeroepen, maar op het moment dat de servlet ouput genereert:
response.getOutputStream().println("hallo");
...komt er een IllegalStateException.

Weet iemand wat er aan de hand is?

bvd Henk
 
probeer eens <jsp:include page="myServlet"/> zonder die backslash ervoor dus! Wat wil je eigelijk doen met die servlet? Je kan ook waardes vanuit je servlet naar je JSP pagina sturen met setAttribute en getAttribute.

Mvg Dieterken
 
hier een beetje de opbouw
Code:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h2>test</h2>
         <form action="/test/Verwerktest" method="GET" >
        <jsp:useBean id="xxx" class="Mijn.Data" />
        <jsp:getProperty name="xxx" property="optionlist" />
        <%--<%@ page import="Mijn.Data"  %>
        
       
            <c:forTokens var="test" items="${maand}">
                test
                ${test.naam}
            </c:forTokens >    
             --%>      
            <input type="submit" value="volgend" />
        </form>
    </body>
</html>
 
ik wil een dynamisch rapport genereren. Ik heb report_select.jsp gemaakt waarin je een rapport kan selecteren:

Code:
<form name="doc" action="report_select.jsp" method="get">
     .... selecteer rapport
</form>

<div id="wrapper">
<!--
	[COLOR="yellowgreen"]<iframe src="CreateHTMLReport?reportid=<%=selectedReport%>" width="100%" height="1000" frameborder="0" scrolling="yes"></iframe>[/COLOR]
-->
[COLOR="darkorange"]<jsp:include page="/CreateHTMLReport" >
   <jsp:param name="reportid" value="<%=selectedReport%>"/>
</jsp:include>[/COLOR]

Ik roep dus geen .jsp aan maar een stuk java. Met een <iframe> (dwz client side) gaat het goed, maar krijg je vast gebied (en scrollbar) (zie groene code). Ik wil van dat vaste gebied af en dat kan door server side te includen (oranje code). En dan loopt het fout.

De java code ziet er ongeveer zo uit:

Code:
public class CreateHTMLReport extends HttpServlet {
    protected void processRequest(HttpServletRequest req, HttpServletResponse response)
    throws ServletException, IOException {
       // PrintWriter out = response.getWriter();
        int reportId = 0;
        String srep = req.getParameter("reportid");
        if (req.getParameter("reportid")!=null)
            reportId = Integer.parseInt(req.getParameter("reportid"));

        try {
           // response.setContentType("text/html;charset=UTF-8");
           // if(reportId > 0)
           //     out.println(html_report.createReport(reportId));
           // else
           //     out.println("no params");
            response.setContentType("text/html");
[COLOR="darkorange"]            response.getOutputStream().println("hallo");[/COLOR]        }
        catch(Exception e){
            e.printStackTrace();
            System.out.println("An error occurred while creating table.\n");
        }
        finally { 
         //   out.close();
        }
        
    }
Met de debugger kan ik nagaan dat de servlet netjes aangeroepen wordt (dus de slash is goed!), het report_id komt binnen, maar zodra er iets naar de output gaat (oranje code), komt er een Exception.

Hoe nu verder?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan