hi all,

i'm developing a little framework for some web applications i am going to
do. I wanted to build my own JspBase Model by creating a abstract class
(similar to HttpJspBase that comes with Jasper) implementing the
javax.servlet.jsp.JspPage interface.

all i wanted to do is to change the class from calling
"_jspService(HttpServletRequest, HttpServletResponse)..." from the
"service(ServletRequest, ServletResponse)" method to
"_jspService(MyServletRequest, MyServletResponse)...".

During the processing of the request i'll wrap a custom
HttpServletRequestWrapper, ResponseWrapper over the current request/response
objects.

currently i have a request, response object which are (if i do instanceof)
instances of my wrapper objects in my jsp. Howoever i have to do

MyServletRequest myrequest = (MyServletRequest)request;
MyServletResponse myresponse = (MyServletResponse)response;

in every Jsp to use any methods/object from my wrapped objects. im trying to
do that cause i don't want to use the "common" way [eg. put every object
into request.setAttribute, instead i wanted to have
request.getSomeInfoMyFrameworkHasForMe()]. All this works if i just cast it
in the jsp _but_ i wonder if there is a way to do it without casting and
just through my JspBase class.

if i try all this now i get

HTTP Status 503 - [javax.servlet.ServletException:
MyJspBase._jspService(LMyRequest;LMyResponse;)V]

from tomcat because he translates the jsp to the "wrong"
"_jspService(Http..., Http...)" and not "_jspService(My..., My...)"

Am I violating any jsp/servlet specs with what im trying to do or am i just
on the wrong way or is it a limitation from tomcat/jasper im running into?
Can i tell him somewhere that the variable request inside _jspService is an
instance of MyRequest not HttpServletRequest?

I hope this was understandable (trying to explain an idea i have in mind is
pretty hard sometimes :) and someone read this far. I really would
appreciate any comments/help on this. Maybe there is another way to do it
and i'm just overlooking it.

thanks in advance,
thomas

PS:
my JspBase class

[--- START: MyJspBase.java ---]

import java.io.IOException;
import javax.servlet.jsp.JspPage;
import javax.servlet.ServletConfig;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.ServletException;

public abstract class MyJspBase implements JspPage
{
 private ServletConfig config;

 public void init(ServletConfig config)
 {
  this.config = config;
 }

 public void destroy()
 {
 }

 public ServletConfig getServletConfig()
 {
  return config;
 }

 public String getServletInfo()
 {
  return "info";
 }

 public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException
 {
    // this shouldnt happen .. just for curiosity reasons .. remove soon
    if (response instanceof MyServletResponse)
        throw new ServletException("eeks, no framework response");
   _jspService((MyServletRequest)request, (MyServletResponse)response);
 }


 public void jspInit()
 {
 }

 public void jspDestroy()
 {
 }

 public abstract void _jspService(MyServletRequest request,
MyServletResponse response) throws java.io.IOException,
javax.servlet.ServletException;
}

[--- END: MyJspBase.java ---]

[--- START: test.jsp ---]

<%@ page extends="MyJspBase" %>
<%
  out.print("hmpf this isnt reached");
%>

[--- END: test.jsp ---]


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to