Run servlet from form action tag

This is my first post to this forum, thanks in advance for any and all help!
I'm utilizing Tomcat 4.0.1. I've got the following form tag within my JSP:
<form name="orderForm" method="GET" action="/myAppName/myServletName">
I've made the context entry for myAppName within ..tomcat/conf/server.xml.
I've got a properly formatted ..tomcat/webapps/myAppName/web-inf/web.xml
When submitting the form, Tomcat immediately reports that the resource (myServletName) is unavailable.
I've download the bookstore sample app from Sun; it is working properly.
Any idea what I'm missing here?
The bookstore app calls the servlet from a hyperlink rather that a form action. Do JSP's treat forms differently when calling servlets?
Thanks again for any assistance.
Bruce

Yes, my .class files in in Tomcathome/webapps/appname/web-inf/classes
If I try and call the servlet from the Address box of the browser, I get the same error listed above.
Here is the contents of my Tomcathome/webapps/appname/web-inf/web.xml:
<-- entry begins here
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
     <servlet>
          <servlet-name>myServletName</servlet-name>
          <servlet-class>myServletName</servlet-class>
     </servlet>
     <servlet-mapping>
          <servlet-name>myServletName</servlet-name>
          <url-pattern>/myServletName</url-pattern>
     </servlet-mapping>
</web-app>
< -- entry ends here
Here is the entry I've made in Tomcathome/conf/server.xml:
<--entry begins here
<Context path="/appName" docBase="appName" debug="0" reloadable="true" />
<--entry ends here
The only Tomcat related entry in my classpath is:
d:\jakarta-tomcat-4.0.1\common\lib\servlet.jar;
Again, thanks for all your assistance...this is driving me nuts (granted, it wasn't a long trip!)
Bruce

Similar Messages

  • Maintain session when calling servlet from form in a JSP

    I have the following set up:
    index.jsp calls login servlet from the action tag in a form.
    Login servlet handles the login, stores the user info and db connection in the session and uses forward(req,res) to call another jsp.
    That jsp has a form where user enters search info and in that form's action tag there is a search servlet. In the search servlet I am unable to access the session.
    Is there any way to pass the session to the servlet from that jsp using a form/action?

    I've read elsewhere that if you go from a jsp to a servlet that the >request object is cleared of any attributes from the previous request.which is correct. But arent we speaking about session object here? A request object is valid for a request - ie the phase from where the server receieves a hit for a resource upto the point it sends the output for that request.
    A session spans multiple requests.
    it doesn't retrieve the session info and gives me a null pointer >exception when I try to use the connection object stored in the session.Bad bad bad . Why do you store Connection objects in session? Create them when necessary or use a connection pool. Do you for example clean up the connections when the session expires. What if its a 30 minute session and the user hits every say 15 minutes with a request. Why do you need to hold on to the Connection in the intervening interval when the user's session is inactive?
    gives me a null pointer exception when I try to use the connection object stored in the session.which means that the Connection object is null - not the session object.
    That last line is where I get the null pointer exception. And that is
    Statement stmt = con.createStatement();?
    Same answer as above.
    If the session object was null,
    userSession.getAttribute("connection");would have thrown a NPE.
    ram.

  • Running reports from forms on the web

    On forms and reports 6i we used the following code to run reports from forms.
    We need to do the same on 9i forms and reports, we are running into problems.
    Any help will be appreciated.
    PROCEDURE web (inFileName VARCHAR2,
    inRecordGroup RECORDGROUP) IS
    outVirtualPath VARCHAR2(200) := '/forms90/f90servlet?p_url=/reports/rwservlet?'; outServer VARCHAR2(200) := 'server=rep_ora-app-4';
    outReport VARCHAR2(200) := 'report='||inFileName;
    outUserid VARCHAR2(200) :=
    'userid='||GET_APPLICATION_PROPERTY(USERNAME)||'/'||GET_APPLICATION_PROPERTY(PAS
    SWORD)||'@'||GET_APPLICATION_PROPERTY(CONNECT_STRING);
    outDesType VARCHAR2(200) := 'DESTYPE=CACHE';
    outDesFormat VARCHAR2(200) := 'DESFORMAT=PDF'; outUser VARCHAR2(2000);
    outCount INTEGER;
    error we are getting.
    FRM-42017:Module name must be specified.

    S Hatch (guest) wrote:
    : I'm thinking that you're going to have to install the Reports
    : cartridge, create an entry in the keymap with any parameters
    and
    : call your report via the url.
    : Dessislava Gantcheva (guest) wrote:
    : : How do I call a report from a form on the web?
    : : I have installed Windows NT Server 4.0 with SP 5, OAS4.0.7
    EE
    : : with patch 1, Developer 6.0 with patch 1. Developer server
    and
    : : forms server work fine in a non-cartridge implementation,
    but
    : I
    : : cannot run a report within a form. I just have no any info
    how
    : : to do this.
    I have entries in my keymap file and I can call my reports via
    the url, but I cannot run a report WITHIN a form. I mean to call
    a report by clicking on a button of a form on the web. The
    RUN_PRODUCT built-in does not work (at leas it seems like this)
    If any one has expiriense with it, please, give me a hint.
    Thanks
    null

  • Running report from forms

    hi,
    I am having problems in running report from form.
    I am using oracle 9i on windows 2000 server and no 9iAS at the moment. On client side, i have windows xp and 9iDS installed. I want to run report from forms in 9iDS testing environment.
    my forms are running ok but now i need to run report. so what i have done is that i have created a report object in form and following are enteries present in it at the moment.
    Name REPORT7
    FileName D:\Projects\IBMR\forms\soil_water_quality_data.rdf
    Execution Mode Batch
    Communication Mode Synchronous
    Destination Type Cache
    Report Server 9irep
    and in when_button_pressed trigger
    DECLARE
    Report_Id REPORT_OBJECT;
    Report_Job_Id VARCHAR2(20);
    Report_Status VARCHAR2(80);
    Report_Svr VARCHAR2(20);
    BEGIN
    Report_Id := FIND_REPORT_OBJECT('REPORT7');
    Report_Svr := '9irep';
    SET_REPORT_OBJECT_PROPERTY(Report_Id,REPORT_EXECUTION_MODE, BATCH);
    SET_REPORT_OBJECT_PROPERTY(Report_Id,REPORT_FILENAME, '\projects\ibmr\forms\soil_water_quality_data.rdf');
    SET_REPORT_OBJECT_PROPERTY(Report_Id,REPORT_COMM_MODE, SYNCHRONOUS);
    SET_REPORT_OBJECT_PROPERTY(Report_Id,REPORT_DESFORMAT,'PDF');
    SET_REPORT_OBJECT_PROPERTY(Report_Id,REPORT_OTHER, 'paramform=no');
    Report_Job_Id := RUN_REPORT_OBJECT(Report_Id);
    Report_Status := REPORT_OBJECT_STATUS(Report_Job_Id);
    WHILE Report_Status IN ('RUNNING','OPENING_REPORT','ENQUEUED') LOOP
    Report_Status := REPORT_OBJECT_STATUS(Report_Job_Id);
    END LOOP;
    IF Report_Status = 'FINISHED' then
    WEB.SHOW_DOCUMENT('/reports/rwservlet/getjobid'||substr(Report_job_id,instr(Report_Job_Id,'_',-1)+1)||'?'||'server=9irep','_blank');
    else
         message ('report server failed with error message '||report_status);
    END IF;
    END;
    i have installed report server with following command
    rwserver -install 9irep
    i have changed entry in rwservlet.properties like
    SINGLESIGNON=NO and i have removed the following entire block of 9irep.conf, which i have read from some documentation
    <!--security id="rwSec" class="oracle.reports.server.RWSecurity">
    <property name="securityUserid" value="%PORTAL_DB_USERNAME%/%PORTAL_DB_PASSWORD%@%PORTAL_DB_TNSNAME%" confidential="yes" encrypted="no"/>
    </security-->
    i get the following error message when i run my form
    frm-41214 Unable to run report
    and then next message is
    frm-41217 unable to get report job status
    i debugged the report id and it is
    9irep_0
    returned by Report_Job_Id := RUN_REPORT_OBJECT(Report_Id);
    When I checked the Report Queue Manager
    it is showing status like
    (9irep)Terminated with error
    and detail it shows is
    Unable to connect to the specified database.
    Now I am wondering what to do next.
    any suggestions???????

    Hello,
    From your description, it seems like the report is faling due to a database authentication problem. When you run your report from Forms, Forms internally passes the its database connection information to Reports automatically. So ensure that you are connected to a valid database in Forms, before the report is called.
    Please verify whether a simple report which does not require a database connection, for example, a report containing only a boilerplate text object, is running correctly. Also, in the trigger code that you have specified, you should add the following:
    SET_REPORT_OBJECT_PROPERTY(Report_Id, REPORT_DESTYPE, CACHE);
    so that the report output gets generated to the server cache, and can be retrieved using rwservlet/getjobid.
    Thanks,
    The Oracle Reports Team.

  • FRM-92101 error while running report from form

    HI All,
    I am getting the form error FRM-92101 while running report from form menu.My code is given below:
    DECLARE
    repid REPORT_OBJECT;
    v_rep VARCHAR2(100);
    rep_status VARCHAR2(20);
    BEGIN
    repid := FIND_REPORT_OBJECT('REPORT47');
    v_rep := RUN_REPORT_OBJECT(repid);
    rep_status := REPORT_OBJECT_STATUS(v_rep);
    WHILE rep_status in ('RUNNING','OPENING_REPORT','ENQUEUED')
    LOOP
    rep_status := report_object_status(v_rep);
    END LOOP;
    IF rep_status = 'FINISHED' THEN
    WEB.SHOW_DOCUMENT('http://192.168.0.21:8889/reports/rwservlet/getjobid'||
    substr(v_rep,instr(v_rep,'_',-1)+1)||'?'||'server=repserver90','_blank');
    ELSE
    message('Error when running report');
    END IF;
    Clear_message;
    END;
    Clear_message;
    --Arif                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    hi Arif
    Please see this note on MOS/Metalink for some common causes of this error:
    Known Causes of FRM-92101 Error In Forms [ID 604633.1]
    thanks,
    AMN

  • I want to run report from FORM

    I want to run report from FORM. The report will save in PDF format then OPEN automatically in PDF
    Every PDF file should have a unique file name.
    I am using Form 6i and Reports 6i

    DECLARE
    vParamList PARAMLIST;
    BEGIN
    vParamList:=GET_PARAMETER_LIST('MyRep');
    IF NOT ID_NULL(vParamList) THEN
    DESTROY_PARAMETER_LIST(vParamList);
    END IF;
    vParamList:=CREATE_PARAMETER_LIST('MyRep');
    SET_REPORT_OBJECT_PROPERTY('report_path\emp_rep_def',REPORT_DESFORMAT,'PDF');
    RUN_PRODUCT(REPORTS,'report_path\emp_rep_def',ASYNCHRONOUS,RUNTIME,FILESYSTEM,vParamList,NULL);
    END;

  • When run report from form(6i) on the web,error FRM-921000

    While I was trying to run report from form (6i)on the web,it will give me this error
    message FRM-921000 and hang.
    But when I try to call form using form,I do
    not have the problem.
    May I know ehat is the cause?
    Anybody encounter this before?
    Thanks
    null

    I am running Forms 6i on the web and attempting to call me report via RUN_REPORT_OBJECT. I am getting the same error as Jenny FRM-92100. I need to pass a parameter list so I don't think I can use WEB.SHOW_DOCUMENT. Any ideas???
    Thanks,
    Jenny N.
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Joseph Schwertner ([email protected]):
    Dear Jenny,
    I am running reports from Forms 6i on the WEB. I did not encounter your problem. Nevertheless I would like to share the following with you.
    RUN_PRODUCT doesn't work for calling reports ON THE WEB. Instead using RUN_PRODUCT do the following:
    1. Install Oracle Reports Server
    2. For WEB calls of reports use WEB.SHOW_DOCUMENT
    3. Learn how to pass parameters to the reports. It is a litlle bit strange, but it is explaint excellent in the documentation to the Reports Server.
    I hope this will help you.
    Joseph Schwertner
    <HR></BLOCKQUOTE>
    null

  • OAS in Unix: URL not found when run report from Form???? please help

    Hi,
    We have succesfully install OAS with Form Server and Report Server in
    Unix. We able to run Form and Report direct from browser. But we having
    problem to run Report from direct Form within the browser. The message from
    the browser was 'The requested URL was not found'. We use run_product to run
    report from form. Below is the statement:-
    Run_Product(REPORTS, 'A10001', SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id,
    NULL);
    Does anyone have an idea??
    Thanks in advance.
    null

    please check env. variables
    1. FORMS60_MAPPING
    2. FORMS60_OUTOUT
    FORMS60_MAPPING should point to vartual directory on your forms webserver
    FORMS60_OUTPUT should point to physical
    directory path of vartual directory
    FORMS60_MAPPING
    regards
    Darshan
    [email protected]
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by leong([email protected]):
    Hi,
    We have succesfully install OAS with Form Server and Report Server in
    Unix. We able to run Form and Report direct from browser. But we having
    problem to run Report from direct Form within the browser. The message from
    the browser was 'The requested URL was not found'. We use run_product to run
    report from form. Below is the statement:-
    Run_Product(REPORTS, 'A10001', SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id,
    NULL);
    Does anyone have an idea??
    Thanks in advance.
    <HR></BLOCKQUOTE>
    null

  • I've interview tomorrow , still do not know how to run report from forms

    hi all ,
    i asked before about running report from forms 10g rel2 , but vainly , because i could not configure the reports server ,
    and no one told me .
    now i've an interview tomorrow , and sure it will be included in the task which i have to do .
    i am in a bad need for your step by step help
    thanks in advance

    Excuse me for being lazy and not searching your previous threads containing questions about configuring your reports server. As I don't know their content I don't know the links posted, the advices given and what you did, and as this is a new thread I'll go ahead and ask what you tried, where you failed and what exactly did not work out for you.
    i am in a bad need for your step by step help Fine, here is an easy one:
    Step 1: go to http://tahiti.oracle.com
    Step 2: click on "Oracle Application Server, 10g Release 2 (10.1.2)"
    Step 3: click in the searchbox, type "Configuring Reports Server"
    Step 4: click "search"
    Step 5: You will be redirected to some links, the very fist of them is this:http://docs.oracle.com/cd/B14099_19/bi.1012/b14048/pbr_conf.htm
    This is as step-by-step as it gets, if you want detailed help ask detailed questions.
    cheers

  • How to run report from forms

    hi all,
    i have tried to run report from forms using below codig(got from online help)
    DECLARE
         repid REPORT_OBJECT;
         v_rep VARCHAR2(100);
         rep_status varchar2(20);
         v_host varchar2(100):= 'localhost';
    v_port varchar2(10);
    v_parameter_string varchar2(4000);
    v_username varchar2(50);
    v_password varchar2(50);
    v_database varchar2(50);
    BEGIN
         repid := find_report_object('REPORT27');
         v_rep := RUN_REPORT_OBJECT(repid);
         rep_status := REPORT_OBJECT_STATUS(v_rep);
         if rep_status = 'FINISHED' then
              message('Report Completed');
              copy_report_object_output(v_rep,'E:/Rep/local1.pdf');
    --     host('MOZILLA E:/Rep/local.pdf');
    -- WEB.SHOW_DOCUMENT('http://192.168.0.160:1521/reports/rwservlet/getjobid'||
    -- substr(v_rep,instr(v_rep,'_',-1)+1)||'?'||'server=repserver','_blank');
              else
         message('Error when running report.');
              end if;
              -- Get the full domain name of the server from the formsweb.cfg
    tool_env.getvar('SERVER_URL',v_host);
    -- Get the username/password and database from the .env file
    tool_env.getvar('APPLICATION_USERNAME',v_username);
    tool_env.getvar('APPLICATION_PASSWORD',v_password);
    tool_env.getvar('APPLICATION_DATABASE',v_database);
    -- If it is localhost then we are running on windows and need to use the windows port, otherwise we
    -- are on AIX and need to use the AIX port
    IF v_host = 'localhost' THEN
         v_port := '8889';
    ELSE
         v_port := '8889';
    END IF;
    -- Now build the parameter string for running the report      
    v_parameter_string := 'server=repserver';
    v_parameter_string := v_parameter_string||'&report= E:\AGE_NoELIGIBLEReport.rdf';
    v_parameter_string := v_parameter_string||'&userid='||v_username||'/'||v_password||'@'||v_database;
    v_parameter_string := v_parameter_string||'&execution_mode=batch';
    v_parameter_string := v_parameter_string||'&comm_mode=synchronous';
    v_parameter_string := v_parameter_string||'&destype=cache';
    v_parameter_string := v_parameter_string||'&desformat=pdf';
    -- Now run the report
    web.show_document('http://'||v_host||':'||v_port||'/reports/rwservlet?'||v_parameter_string,'_blank');
    END;
    REP-110: Unable to open file ' AGE_NoELIGIBLEReport.rdf'.
    REP-1070: Error while opening or saving a document.
    REP-0110: Unable to open file ' AGE_NoELIGIBLEReport.rdf'.
    but i hav report in e:\ then why its getting?

    Hi,
    I suggest you not to use the "E:\" directory letter, but the REPORTS_PATH instead.
    <p>
    from the Online Help
    </p>
    <p>
    On Windows, edit environment variables through the Registry Editor (Start > Run > Regedit).
    </p>
    <p>
    On UNIX, edit environment variables by revising and running the shell script that defines the initial default values (reports.sh). If you do this, be sure to keep a backup of the original, unaltered reports.sh file.
    </p>
    <p>
    Regards
    JeanYves
    </p>

  • How to run report from forms 6i

    i want to run report from forms 6i.
    can anyone help me in this regard.
    asif iqbal
    karachi.

    hi
    try something like this.
    parameter_list_id := CREATE_PARAMETER_LIST('temp_data');
            mywhere:='where 1=1';
            if :RESULT_VALUE is not null then
                  mywhere:=mywhere || ' and diagnosis like ''%'||:RESULT_VALUE||'%''';
            end if;
            if :HISTORY is not null then
                  mywhere:=mywhere || ' and histodesc like ''%'||:HISTORY||'%''';
            end if;
            if :RCOMMENTS is not null then
                  mywhere:=mywhere || ' and scomments like ''%'||:RCOMMENTS||'%''';
            end if;
            if :PATHOLOGIST is not null then
                  mywhere:=mywhere || ' and PATHOLOGISTS like ''%'||:PATHOLOGIST||'%''';
            end if;
                mywhere:=TRANSLATE(mywhere,' ','~');
                ADD_PARAMETER(parameter_list_id,'MYWHERE',TEXT_PARAMETER,mywhere);
          RUN_PRODUCT(REPORTS,'C:\SearchResult.RDF',SYNCHRONOUS,RUNTIME,FILESYSTEM,parameter_list_id,NULL);
          ADD_PARAMETER(parameter_list_id,'PARAMFORM',TEXT_PARAMETER,'NO');
          DESTROY_PARAMETER_LIST(parameter_list_id);and also u can try the following code please modify it with u r requirements.
    declare
    v_plist_id paramlist;
    pl_name varchar2(50) := 'rep_params';
    begin
    v_plist_id := get_parameter_list(pl_name);
    check_param_list (pl_name); --Check availability of paramlist and
    destroy is present
    --When the parameter list already exists it needs to be distroyed first
    if not id_null(v_plist_id) then
    destroy_parameter_list(v_plist_id);
    end if;
    v_plist_id := create_parameter_list(pl_name);
    add_parameter(v_plist_id, 'P_1', text_parameter, :block_name.item);
    -- input parameter
    add_parameter(v_plist_id, 'PARAMFORM', text_parameter, 'NO'); --
    suppress the display of the Reports p-form
    add_parameter(v_plist_id, 'DESTYPE', text_parameter,
    :control.dest_type); -- set file destination type
    add_parameter(v_plist_id, 'DESNAME', text_parameter,
    :control.dest_name); -- set file destination name
    add_parameter(v_plist_id, 'DESFORMAT', text_parameter,
    :control.dest_format); -- set file destination format
    -- call reports
    run_product(reports, 'reports_file', asynchronous, runtime,
    filesystem, v_plist_id, null);
    end;sarah

  • Problem in running report from forms 6i..........!

    hi all,
    I am working in oracle forms 6i and i am trying to run report from
    form while press one of the push-button. works fine upto 2nd line from the
    begin key-word.After that its showing error like " FRM-40738:Argument 1 to builtin
    REPORT_OBJECT_STATUS cannot be null.". Can any-one help me of how to solve this and
    wat would be the problem.........?
    declare
         run_rep varchar2(200);
         rep_obj report_object;
         rep_stat varchar2(20);
    begin
         rep_obj := find_report_object('report46');     
         run_rep := run_report_object(rep_obj);     
         rep_stat := report_object_status(run_rep);
         if rep_stat = 'FINISHED' then
         copy_report_object_output(run_rep, 'C:\Documents and Settings\trainee\Desktop\Icons\test.pdf');
         else
              message('error when running report');
         end if;     
    end;
    Please help asup!
    regards,
    jame

    hi rosario,
    Thanks for ur reply. My requirement is, I want to generate pdf file from the report output. so i wrote the following code which is taken from d2k documentation. Problem area has been highlighted in bold.
    declare
    run_rep varchar2(200);
    rep_obj report_object;
    rep_stat varchar2(20);
    begin
    rep_obj := find_report_object('report46');
    run_rep := run_report_object(rep_obj);
    rep_stat := report_object_status(run_rep);
    if rep_stat = 'FINISHED' then
    copy_report_object_output(run_rep, 'C:\Documents and Settings\trainee\Desktop\Icons\test.pdf');
    else
    message('error when running report');
    end if;
    end;
    Report is running but while coming to report_object_status. complior shows error like "FRM-40738:Argument 1 to builtin REPORT_OBJECT_STATUS cannot be null". Parameter for report_object_status is null, i dont know y it is null because report is running. If report is running means,then there must be some values in run_rep.
    why complior doesnt find the values from run_rep.......???
    regards,
    jame

  • 10g Run Report from Form

    Oracle 10g Developer suite
    using OC4J
    hi experts
    can you please share some code here to run report from form with and without passing parameters.
    regards

    Try This
    Declare
    v_connect     VARCHAR2 (200)  := 'userid=nisadmin/nisadmin@abc';
    v_report_name     VARCHAR2(100)   := 'Voucher.rdf';
    v_format     VARCHAR2(12)    :='Htmlcss';
    Begin
    Web.Show_Document('http://hoitvoltes5:9002/reports/rwservlet?'||v_connect||'&server=ReportsServer_HOITVOLTES5_asin&destype=cache&report='||v_report_name||'&desformat='||v_format||'&companyid='||:voucher.companyid||'&vouno='||:voucher.vouno,'_blank');
    End;

  • Run servlet from statelesssessionbean

    hi,
       Can anybody help me about ............
    How can i run(call) servlet from stateless sessionBean (EJB).
    Code to call(run) servlet from stateless sessionbean

    Hi
    Actually it is not advisable to call an servlet from  a session bean .
       I mean you can not create an object of servlet from session bean .
    In otherway it can be possible if your session bean  can call this through an protocol.
      means you can create an URL or URL connection class and call it through http protocol.
    i .e we can create URLConnetion ( HttpURLConnection ) object to that servlet  from a session bean.
    I hope this will help you some extent to solve your problem.
    Thanks
    Mrutyunjaya Tripathy

  • Problems with file uploading servlet, the form action doesnt capture url

    Hi, i have one problem. I am working on a project , i have created a servlet that takes uploaded files and processses them and links them back to user to download. The servlet works perfectly from my computer, I am using apache-tomcat-6.0.16 and java 1.6 , I have two forms called encrypt.html and decrypt.html, I will post both of them, now the problem is when somebody access it on the internet while i am running apache, they get a connection was reset on a firefox browser and same stuff on Internet Explorer.
    i have checked my server logs and saw nothing unusual there, So please if you can help me, it is my project.
    I am pasting html file and error message that other users where getting remotely.
    <html>
    <head>
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
    <title>Stego Form</title>
    <link rel='STYLESHEET' type='text/css' href='encrypt.css'>
    </head>
    <body>
    <center>
    <form name='encrypt' enctype='multipart/form-data' method='POST' action='http://localhost:8080/examples/temp2
    ' accept-charset='UTF-8'>
    <input type='hidden' name='sfm_form_submitted' value='yes'>
    </input>
    <input type='hidden' name='eord' value='e'>
    <select name='encryption' size='1'>
             <option value='Select an encryption' selected>
             Select an encryption
             </option>
             <option value='DES'>
             DES
             </option>
             <option value='Tripple DES'>
             Tripple DES
             </option>
    </select>
             <input type='file' name='overt' size='20'>
             <input type='file' name='covert' size='20'>
             <input type='submit' name='submit' value='Submit'>
    </form>
    </center>
    </body>
    </html>so it works for me even if i access the page with my ip , but for others it doesnt work,
    now the user got this xhtml page that i will show, i cant find attach button so i am pasting here.
    here is the servlet coding
    import java.io.*;
    import java.util.*;
    import javax.servlet.ServletException;
    import javax.servlet.http.*;
    import org.apache.commons.fileupload.*;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    public class temp2 extends HttpServlet
        FileInputStream fin;
        String filenames[] = new String[2],fieldname,fieldval;
        String keyfile,IVfile;
        String names[] = new String[2];
        public temp2()
            super();
        @Override
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
            doPost(request, response);
        @Override
        public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
            String eord="";
            List lst = null;
            boolean isMultiPart = ServletFileUpload.isMultipartContent(request);
            if (!isMultiPart) // check whether the post request is actually multipart
                System.out.println("ERROR NOT MULTIPART");
                System.exit(0);
            DiskFileItemFactory fif = new DiskFileItemFactory();
            ServletFileUpload sfu = new ServletFileUpload(fif);
            sfu.setSizeMax(10000000);
            try {  lst = sfu.parseRequest(request);  }
            catch (FileUploadException ex)
            { System.out.println("ERROR IN PARSING FILES" + ex); System.exit(0);  }
            if(lst.isEmpty())  // check whether request is empty
                System.out.println("ERROR LIST SIZE NOT GOOD : " + lst.size());
                System.exit(0);
            Iterator x = lst.iterator();
            int i = 0;
            FileItem f = (FileItem)x.next();
            f = (FileItem)x.next();
            System.out.println(f.getFieldName());
            if(f.getFieldName().equalsIgnoreCase("eord")) // check hidden field to know the case : encrypt or decrypt
                eord = f.getString();
                System.out.println(f.getString());
            else // if it is not first field exit
                System.out.println("Invalid FORM");
                System.exit(0);
            f = (FileItem)x.next(); // next field
            if(f.getFieldName().equalsIgnoreCase("encryption")) // type of encryption des / tdes
                fieldname = f.getFieldName();
                fieldval = f.getString();
                System.out.println(f.getString());
            if(eord.equalsIgnoreCase("e")) // if it is encryption form only file required
                while(x.hasNext())
                    f = (FileItem)x.next();
                    if(!f.isFormField())
                        int check = f.getName().lastIndexOf(File.separator);
                        System.out.println(File.separator);
                        if(check==-1)
                            System.out.println(f.getName());
                            System.out.println("Unsupported browser : " + check);
                            System.exit(0);
                        File ff = new File("e:\\apache\\webapps\\temp\\"+f.getName().substring(check));
                        names[i] = ff.getName(); // original file names
                        try
                            f.write(ff);
                            filenames[i] = ff.getAbsolutePath();
                        // renamed    
                            ff.deleteOnExit();
                        }catch(Exception e) {System.out.println("Error writing file"+ ff.getAbsolutePath()); System.exit(0);}
                        i++;
                    try { System.in.read(); } catch(Exception e) {}
                }// endwhile
                if(fieldval.equalsIgnoreCase("DES"))
                    System.out.println("DES 1"+filenames[1]);
                    javades o = new javades(filenames[1]); // the file to be encrypted   
                    filenames[1] = "e:\\apache\\webapps\\temp\\files\\" + names[1];
                    System.out.println("should be original" + filenames[1]);
                else if(fieldval.equalsIgnoreCase("Tripple DES"))
                    javatdes o = new javatdes(filenames[1]);
                    filenames[1] = "e:\\apache\\webapps\\temp\\files\\" + names[1];
                    System.out.println(filenames[1]);
                System.out.println("Calling stego");
                filenames[0] = "e:\\apache\\webapps\\temp\\" + names[0];
                System.out.println("file 1 "+ filenames[0]);
                System.out.println("file 2"+ filenames[1]);
                try { System.in.read(); } catch(Exception e) {}
                stego s = new stego(filenames[0],filenames[1]);
                System.out.println("mainext " + s.mainext);
                // encryption done, and new files are loaded, now lets hide
                if(s.mainext.equalsIgnoreCase("wav"))
                    s.encodewav();
                    System.out.println("Encoded wave");
                else if(s.mainext.equalsIgnoreCase("bmp"))
                    System.out.println("Encoded bmp");
                    s.encodebmp();
                System.out.println("done !");
                PrintWriter pr = response.getWriter();
                pr.println("Greetings , Your work is done and saved, now download the following files");
                pr.println("The secret key file is needed for getting back your hidden file, so download that too");
                pr.write("<a href=\"/temp/files/IV.txt\">click here</a>");
                pr.write("<br/><a href=\"/temp/files/key.txt\">click here</a>");
                pr.write("<br/><a href=\"/temp/files/"+names[0]+"\">click here</a>");
                return;
            // if it is decryption case
            else if(eord.equalsIgnoreCase("d"))
                while(x.hasNext())
                    f = (FileItem)x.next();
                    if(!f.isFormField())
                        int check = f.getName().lastIndexOf(File.separator);
                        System.out.println(File.separator);
                        if(check==-1)
                            System.out.println(f.getName());
                            System.out.println("Unsupported browser : " + check);
                            System.exit(0);
                        File ff = new File("e:\\apache\\webapps\\temp\\"+f.getName().substring(check));
    // else if ladder to store paths of stegofile keyfile and IVfile                   
                        if(f.getFieldName().equalsIgnoreCase("stegofile"))
                            filenames[0] = ff.getAbsolutePath();
                        else if(f.getFieldName().equalsIgnoreCase("keyfile"))
                            keyfile = ff.getAbsolutePath();
                        else if(f.getFieldName().equalsIgnoreCase("IVfile"))
                            IVfile = ff.getAbsolutePath();
                        try
                            f.write(ff); // writes whole file at once
                        }catch(Exception e) {System.out.println("Error writing file"); System.exit(0);}
                }// endwhile
                System.out.println("Calling stego");
                System.out.println("file 1 "+ filenames[0]);
                stego s = new stego(filenames[0]);
                System.out.println("mainext " + s.mainext);
                if(s.mainext.equalsIgnoreCase("wav"))
                    s.decodewav();
                    System.out.println("Encoded wave");
                else if(s.mainext.equalsIgnoreCase("bmp"))
                    s.decodebmp();
                    System.out.println("Encoded bmp");
                System.out.println("done !");
                ////// hidden file has been retrieved , now lets decrypt it
                System.out.println("ext " + s.ext);
                filenames[0] = "e:\\apache\\webapps\\temp\\"+s.filename;
                System.out.println(filenames[0]);
                System.out.println(keyfile);
                System.out.println(IVfile);
                if(fieldval.equalsIgnoreCase("DES"))
                    javades o = new javades(filenames[0],keyfile,IVfile); // the file to be encrypted   
                    filenames[0] = "e:\\apache\\webapps\\temp\\" + ( new File(filenames[0]).getName());
                    System.out.println("should be original" + filenames[0]);
                else if(fieldval.equalsIgnoreCase("Tripple DES"))
                    javatdes o = new javatdes(filenames[0],keyfile,IVfile);
                    filenames[0] = "e:\\apache\\webapps\\temp\\" + ( new File(filenames[0]).getName());
                    System.out.println(filenames[0]);
                PrintWriter pr = response.getWriter();
                pr.write("Greetings, you have successfully retrieved your hidden file, now download it from here <br>");
                pr.write("<a href=\"http://localhost:8080/temp/files/" + (new File(filenames[0]).getName())+"\">Click here</a>");
    }and here is the xhtml file the user receives, whe he clicks the submit button,
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html [
      <!ENTITY % htmlDTD
        PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "DTD/xhtml1-strict.dtd">
      %htmlDTD;
      <!ENTITY % netErrorDTD
        SYSTEM "chrome://global/locale/netError.dtd">
      %netErrorDTD;
    <!ENTITY loadError.label "Problem loading page">
    <!ENTITY retry.label "Try Again">
    <!-- Specific error messages -->
    <!ENTITY connectionFailure.title "Unable to connect">
    <!ENTITY connectionFailure.longDesc "&sharedLongDesc;">
    <!ENTITY deniedPortAccess.title "This address is restricted">
    <!ENTITY deniedPortAccess.longDesc "">
    <!ENTITY dnsNotFound.title "Server not found">
    <!ENTITY dnsNotFound.longDesc "
    <ul>
      <li>Check the address for typing errors such as
        <strong>ww</strong>.example.com instead of
        <strong>www</strong>.example.com</li>
      <li>If you are unable to load any pages, check your computer's network
        connection.</li>
      <li>If your computer or network is protected by a firewall or proxy, make sure
        that &brandShortName; is permitted to access the Web.</li>
    </ul>
    ">
    <!ENTITY fileNotFound.title "File not found">
    <!ENTITY fileNotFound.longDesc "
    <ul>
      <li>Check the file name for capitalization or other typing errors.</li>
      <li>Check to see if the file was moved, renamed or deleted.</li>
    </ul>
    ">
    <!ENTITY generic.title "Oops.">
    <!ENTITY generic.longDesc "
    <p>&brandShortName; can't load this page for some reason.</p>
    ">
    <!ENTITY malformedURI.title "The address isn't valid">
    <!ENTITY malformedURI.longDesc "
    <ul>
      <li>Web addresses are usually written like
        <strong>http://www.example.com/</strong></li>
      <li>Make sure that you're using forward slashes (i.e.
        <strong>/</strong>).</li>
    </ul>
    ">
    <!ENTITY netInterrupt.title "The connection was interrupted">
    <!ENTITY netInterrupt.longDesc "&sharedLongDesc;">
    <!ENTITY netOffline.title "Offline mode">
    <!ENTITY netOffline.longDesc "
    <ul>
      <li>Uncheck "Work Offline" in the File menu, then try again.</li>
    </ul>
    ">
    <!ENTITY netReset.title "The connection was reset">
    <!ENTITY netReset.longDesc "&sharedLongDesc;">
    <!ENTITY netTimeout.title "The connection has timed out">
    <!ENTITY netTimeout.longDesc "&sharedLongDesc;">
    <!ENTITY protocolNotFound.title "The address wasn't understood">
    <!ENTITY protocolNotFound.longDesc "
    <ul>
      <li>You might need to install other software to open this address.</li>
    </ul>
    ">
    <!ENTITY proxyConnectFailure.title "The proxy server is refusing connections">
    <!ENTITY proxyConnectFailure.longDesc "
    <ul>
      <li>Check the proxy settings to make sure that they are correct.</li>
      <li>Contact your network administrator to make sure the proxy server is
        working.</li>
    </ul>
    ">
    <!ENTITY proxyResolveFailure.title "Unable to find the proxy server">
    <!ENTITY proxyResolveFailure.longDesc "
    <ul>
      <li>Check the proxy settings to make sure that they are correct.</li>
      <li>Check to make sure your computer has a working network connection.</li>
      <li>If your computer or network is protected by a firewall or proxy, make sure
        that &brandShortName; is permitted to access the Web.</li>
    </ul>
    ">
    <!ENTITY redirectLoop.title "The page isn't redirecting properly">
    <!ENTITY redirectLoop.longDesc "
    <ul>
      <li>This problem can sometimes be caused by disabling or refusing to accept
        cookies.</li>
    </ul>
    ">
    <!ENTITY unknownSocketType.title "Unexpected response from server">
    <!ENTITY unknownSocketType.longDesc "
    <ul>
      <li>Check to make sure your system has the Personal Security Manager
        installed.</li>
      <li>This might be due to a non-standard configuration on the server.</li>
    </ul>
    ">
    <!ENTITY sharedLongDesc "
    <ul>
      <li>The site could be temporarily unavailable or too busy. Try again in a few
        moments.</li>
      <li>If you are unable to load any pages, check your computer's network
        connection.</li>
      <li>If your computer or network is protected by a firewall or proxy, make sure
        that &brandShortName; is permitted to access the Web.</li>
    </ul>
    ">
      <!ENTITY % globalDTD
        SYSTEM "chrome://global/locale/global.dtd">
      %globalDTD;
    ]>
    <!-- ***** BEGIN LICENSE BLOCK *****
       - Version: MPL 1.1/GPL 2.0/LGPL 2.1
       - The contents of this file are subject to the Mozilla Public License Version
       - 1.1 (the "License"); you may not use this file except in compliance with
       - the License. You may obtain a copy of the License at
       - http://www.mozilla.org/MPL/
       - Software distributed under the License is distributed on an "AS IS" basis,
       - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
       - for the specific language governing rights and limitations under the
       - License.
       - The Original Code is mozilla.org code.
       - The Initial Developer of the Original Code is
       - Netscape Communications Corporation.
       - Portions created by the Initial Developer are Copyright (C) 1998
       - the Initial Developer. All Rights Reserved.
       - Contributor(s):
       -   Adam Lock <[email protected]>
       -   William R. Price <[email protected]>
       -   Henrik Skupin <[email protected]>
       -   Jeff Walden <[email protected]>
       - Alternatively, the contents of this file may be used under the terms of
       - either the GNU General Public License Version 2 or later (the "GPL"), or
       - the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
       - in which case the provisions of the GPL or the LGPL are applicable instead
       - of those above. If you wish to allow use of your version of this file only
       - under the terms of either the GPL or the LGPL, and not to allow others to
       - use your version of this file under the terms of the MPL, indicate your
       - decision by deleting the provisions above and replace them with the notice
       - and other provisions required by the LGPL or the GPL. If you do not delete
       - the provisions above, a recipient may use your version of this file under
       - the terms of any one of the MPL, the GPL or the LGPL.
       - ***** END LICENSE BLOCK ***** -->
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
        <title>Problem loading page</title>
        <link rel="stylesheet" href="temp2_files/netError.css" type="text/css" media="all"/>
        <!-- XXX this needs to be themeable -->
        <link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAICSURBVHjaYvz//z8DJQAggJhwiDPvnmlzc2aR0O+JGezt+AwACCCsBhxfYhn59N41FWtXIxZOLu70niRGXVwGAAQQNgNYHj96O8HaWYdJW5ubwd4/mI2Ng7sblwEAAYRhwMm1URk/vn4SUNWVYGD8+YZBXZOZm5OLzRjoCmNsBgAEEKoBN82Y7l851GLrqMjM8Oc7A8O/3wwMP54wuAQFCXNycUzGZgBAAKEYcOaKZO2/f//5FbUVgBrfMoRVcgHpNwyKGjKMXDwCan0prFboBgAEELIBzDcvXyy2cVZhYPj9GWj7H4jo/38MDJ9OMDj7O/KzsjH3oxsAEEBwA/bNNipiZf7FI6cqwcDw8x2qqp8fGORUpVn4BEXlgGHhhCwFEEAwA9gfP3hdZ+Oizcjw+wvCdjgAuuLrFQbXIH9hTm7uqcgyAAEENuD4ctcebm5mbikFYRTbV7V/Q6j88Z5BSuY7q4CQgAjQFR4wYYAAAhtw89L5ZFsnRaDtn4CW/YXrAQcisit+PGVwDgrnZ2NnnwATBQggpsNLvGYLCAmxi8tLARWg+h3FBVBXSEj/ZZWQkRcCuiIQJAQQQCyvnj5KMDTkZ2JgYmRg4FchnHv+vmEwttLmeXT3VjKQtx4ggFgk5TXebV63UfT3ijOMxOZAVlZWdiB1EMQGCCBGSrMzQIABAFR3kRM3KggZAAAAAElFTkSuQmCC"/>
        <script type="application/x-javascript"><![CDATA[
          // Error url MUST be formatted like this:
          //   moz-neterror:page?e=error&u=url&d=desc
          // Note that this file uses document.documentURI to get
          // the URL (with the format from above). This is because
          // document.location.href gets the current URI off the docshell,
          // which is the URL displayed in the location bar, i.e.
          // the URI that the user attempted to load.
          function getErrorCode()
            var url = document.documentURI;
            var error = url.search(/e\=/);
            var duffUrl = url.search(/\&u\=/);
            return decodeURIComponent(url.slice(error + 2, duffUrl));
          function getDescription()
            var url = document.documentURI;
            var desc = url.search(/d\=/);
            // desc == -1 if not found; if so, return an empty string
            // instead of what would turn out to be portions of the URI
            if (desc == -1) return "";
            return decodeURIComponent(url.slice(desc + 2));
          function retryThis()
            // Session history has the URL of the page that failed
            // to load, not the one of the error page. So, just call
            // reload(), which will also repost POST data correctly.
            try {
              location.reload();
            } catch (e) {
              // We probably tried to reload a URI that caused an exception to
              // occur;  e.g. a non-existent file.
          function initPage()
            var err = getErrorCode();
            // if it's an unknown error or there's no title or description
            // defined, get the generic message
            var errTitle = document.getElementById("et_" + err);
            var errDesc  = document.getElementById("ed_" + err);
            if (!errTitle || !errDesc)
              errTitle = document.getElementById("et_generic");
              errDesc  = document.getElementById("ed_generic");
            var title = document.getElementById("errorTitleText");
            if (title)
              title.parentNode.replaceChild(errTitle, title);
              // change id to the replaced child's id so styling works
              errTitle.id = "errorTitleText";
            var sd = document.getElementById("errorShortDescText");
            if (sd)
              sd.textContent = getDescription();
            var ld = document.getElementById("errorLongDesc");
            if (ld)
              ld.parentNode.replaceChild(errDesc, ld);
              // change id to the replaced child's id so styling works
              errDesc.id = "errorLongDesc";
            // remove undisplayed errors to avoid bug 39098
            var errContainer = document.getElementById("errorContainer");
            errContainer.parentNode.removeChild(errContainer);
        ]]></script>
      </head>
      <body dir="ltr">
        <!-- ERROR ITEM CONTAINER (removed during loading to avoid bug 39098) -->
        <!-- PAGE CONTAINER (for styling purposes only) -->
        <div id="errorPageContainer">
          <!-- Error Title -->
          <div id="errorTitle">
            <h1 id="errorTitleText">The connection was reset</h1>
          </div>
          <!-- LONG CONTENT (the section most likely to require scrolling) -->
          <div id="errorLongContent">
            <!-- Short Description -->
            <div id="errorShortDesc">
              <p id="errorShortDescText">The connection to the server was reset while the page was loading.</p>
            </div>
            <!-- Long Description (Note: See netError.dtd for used XHTML tags) -->
            <div id="errorLongDesc">
    <ul>
      <li>The site could be temporarily unavailable or too busy. Try again in a few
        moments.</li>
      <li>If you are unable to load any pages, check your computer's network
        connection.</li>
      <li>If your computer or network is protected by a firewall or proxy, make sure
        that Firefox is permitted to access the Web.</li>
    </ul>
    </div>
          </div>
          <!-- Retry Button -->
          <xul:button xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" id="errorTryAgain" label="Try Again" oncommand="retryThis();"/>
        </div>
        <!--
        - Note: It is important to run the script this way, instead of using
        - an onload handler. This is because error pages are loaded as
        - LOAD_BACKGROUND, which means that onload handlers will not be executed.
        -->
        <script type="application/x-javascript">initPage();</script>
      </body>
    </html>thank you for your prompt reply in advance,
    Regards,
    Mihir Pandya

    Hi, thank you for your replies, I found out few things about my servlet, and its portability
    and i have few questions, although i marked this topic as answered i guess its ok to post
    I am using javax.servlet.context.tempdir to store my files in that servletcontext temporary directory. But i dont know how to give hyperlink
    of the modified files to the user for them to download the modified files.
    What i am using to get the tempdir i will paste
    File baseurl = (File)this.getServletContext().getAttribute("javax.servlet.context.tempdir");
    System.out.println(baseurl);
    baseurl = new File(baseurl.getAbsolutePath()+File.separator+"temp"+File.separator+"files");
    baseurl.mkdirs();so i am storing my files in that temp/files folder and the servlet processes them and modifies them, then how to present them as
    links to the user for download ?
    and as the servlet is multithreaded by nature, if my servlet gets 2 different requests with same file names, i guess one of them will be overwritten
    And i want to create unique directory for each request made to the servlet , so file names dont clash.
    one another thing is that i want my servlet to be executed by my <form action> only, I dont want the user to simply type url and trigger the servlet
    Reply A.S.A.P. please..
    Thanks and regards,
    Mihir Pandya

Maybe you are looking for