How to call Repexpert from oracle forms from Web?

Repexpert is able to monitor the navigation portion of IE (Internet Explorer).That means Repexpert 'knows' each URL IE want to navigate to. Repexpert analyze the URL and determine whether the URL is link to a file of report output.

If repexpert 'think' the URL is link to a file generated by oracle reports, It will activate an instance, the instance will download the file and open it instead of IE.

Call repexpert from oracle form step by step:

1) Use web.show_document(url, target) built-in to activate an instance of IE, The instance of IE will download a file generated by oracle report. 
I prefer to use RUN_REPORT_OBJECT(v_report_id,Pl_id) built-in to output oracle report to cache directory, then use a JSP program (example) to download the file.
2) Repexpert receive the URL before IE navigate to the URL.
3)  Repexpert load all keywords which the user have specified. 
  [How to setup keywords of URL ? Please view this demo.]
 if all keywords is included by the URL, repexpert will kill the IE instance if necessary, then activate an instance of repexpert with the URL. The new instance of Repexpert will download and open the file which the URL is link to.
4) Repexpert will output the file to printer without display if necessary.[help]
A simple JSP program for download files from web-server:

<%@ page import="java.io.*"%><%
// This is simple code for downloading a file from HTTP server 
// Usage: http://server-name:port/getreport.jsp?filename=[file_name]
// Author: Lion Van
// Email: support@lv2000.com
String cachedir="c:\\reports\\";//TODO: Replace c:\reports\ with the exact directory 
// where your report output is stored.
// e.g. /usr/oracle/9ias/6iserver/reports60/server/cache/

String sFileName=request.getParameter("filename");
response.setHeader("Content-disposition","inline;filename="+sFileName);

BufferedOutputStream bos = null;
BufferedInputStream bis = null;
try{
bos = new BufferedOutputStream(response.getOutputStream());
bis = new BufferedInputStream(new FileInputStream(cachedir+sFileName) );
byte buff[]=new byte[2042];
int bytesread;
while ((bytesread=bis.read(buff,0,buff.length))!=-1)
bos.write(buff,0,bytesread);
} catch(final IOException e) { 
System.out.println ( "IOException." );
throw e;
}catch(Exception e){System.out.println(e);}
finally{
if (bis!=null)
bis.close();
}
%>