Controller Servlet

Hello,
I'm developing web framework.
Framework architecture is the following:
Controller servlet(C) as a gate to JSP in /WEB-INF, so all requests are mado through this servlet.
If request points to simple static JSP page C is doing it's job, but when I need to prepopulate JSP
with POJO value objects I need to make modifications to C code.
C methods grow as application functionality grows and it will be fat soon.
How can I refactor C to make somekind of WebAction to prepopulate JSP not storing Business Logic in
this servlet ?
Thanks in advnce.

I can sympathise with that but consider:
I've broken some long-winded processing down into a
number of smaller methods called from a bounding
"doSomeProcess" method. Either each of these methods
gets a new connection and releases it, in which case
transaction handling becomes an issue or each of the
component methods needs to take the existing DB
Connection as an argument.
The former opens a can of worms and could introduce
well obscured bugs while the later achieves much the
same as my getConnection -> handler.process
->releaseConnection model but by passing the
connection down the line.I prefer the second approach. It keeps one connection open as long as it needs to be, and makes sure it closes as soon as possible. I don't see what making it a member of the class saves, except the passing of a parameter.
Not quite. If the controller gets and releases the
connection, it can be passed into a constructor or set
through an accessor method. The handler itself then
doesn't need to get or release anything. As everything
is going through the controller the connection will
always be tidied away. And with the connection pool
counting the number of times that connection has been
used, we can be confident that it will be destroyed
when its time is up.Okay, that's an approach. but that couples the Controller/Web Application to the Database. I try to keep the data layer separate from the controll layer. My approach is to create a Data Access Interface and code my handlers (and Control Servlet usually won't use it, that is the handler's job) against that. I then set an environmental entry that specifies the concreate implementation of the interface. This means the Handler does not need to change based on what data structure is used in the Underlying Data Access Object.
The immediate benefit is that during early stages orf development, I can create a simple wrapper around a java.util.List when testing my web application and developing an interface to use. Then code my real Data Model to this interface and independently of the web application. When I am sure that both are working correctly independently, I can put them together by changing the environment entry, and nothing else.
This also means that if I want to change how I store my data from a database to XML, or to a feed from an external site, or a resource bundle, or whatever, I can do so without changing my Handlers/Controller, but just by coding a new Data Access Object and fixing the environment entry.
(alternative to the environment entry my be a context parameter that my controller will read, create the class, and pass to handlers, but I still think this is bad since it widens the scope of the DAO)
This was my initial response to building web apps,
probably because of my (long forgotten) ASP
background. However, each method within the handling
process can be made much cleaner and simpler when we
don't need to worry about db connections (getting,
releasing or otherwise handling).But in reality, you are not getting rid of it. You are just moving it further away from where it is used, thus expanding its scope and increasing the possibility for errors. (That is my view anyway...)
If you have time I'd recommend looking into this. I
can't take all the credit for it but I am a staunch
evangelist for the architecture. I guess it's because
I'm lazy and like the idea of all the crunchy bits
being hidden away in superclasses that I don't need to
play with.I am all for a good inheritance pattern, but I am also one for keeping objects in the smallest scope, and as close to their usage as possible. having a method in an abstract super class that closes connections might be usefull, but this would have to (in my book) be part of the Data Access Object's inheritance tree and not part of the Handler's/Controller's. ie: i might have
abstract class SQLDataAccess
with a method called
protected Connection getConnection(...)
that will take a connection from the naming context, initialize it, and return it, and another named
protected void closeConnection(Connection ...)
that will go through the process of closing the DB connection. And then, I might have a method called public List getEmployeeList()
  Connection connection = getConnection(...);
  List empList = null;
  try
    empList = getEmployees(connection);
  } catch (...)
  finally
    closeConnection(connection);
    return empList;
}or some such...
Then have the abstract method
abstract List getEmployees(Connection ...) throws ...;
that the sub classes might need to implement on a DB specific or case specific manner. But this type of thing would all be in the DataAccessObject heirarchy, and the need for DB connections would never leak out from that into the controller or handler.

Similar Messages

  • Front Controller Servlet

    Hello friends.
    I need to implement a Front Controller servlet. I will then forward the request to other servlets. So, even I the client explicitly requests the servlet, say /Dummy, I want the request to pass through /FrontController first.
    If I map FrontController to /*, and Dummy to /Dummy, then the letter will override the more general mapping. Also, the first mapping (/*) will spoil all other URL requests, such as /index.htm, etc.
    Please, give a hint.

    Is it possible at all?
    When a servlet is called (any servlet), another servlet intercepts it first, and then forward the request to the called servlet.

  • Problem with Controller Servlet in WAS 4.0

    Hello guys,
              I am working on WPS over WAS 4.0. I have an Enterprise application
              with a servlet which acts as a Traffic Controller. Its job is to
              intercept every http request to the Portal Server and make some
              changes to the URL and redirect/forward the changed URL to the Portal
              server. I plan to map the servlet to "/" so as all the requests are
              handled by this servlet. I hope it will work this way.
              So, the user clicks on a URL like http://server_name/meeting, the
              servlet sees a mapping table for /meetinf, constructs a new URL and
              redirects it. I read the /meeting as "pathInfo" variable from the
              request object. Please note that "/" is mapped to the servlet. This
              works fine. But if I give a JSP file instead
              (http://server_name/meeting/m.jsp), it starts looking for the JSP file
              in the Servlet WAR file. So the question is if there's any any other
              way of achieving this effect or is there any way to make all the .jsp
              file requests to go to this servlet instead of being searched in the
              WAR file?
              I would be grateful if someone can put their thoughts over this
              problem.
              Thanks
              Kapil.
              ([email protected])
              

    Sorry to hear that.
    As far as I know the campus topology is based on CDP info. And since you see all the links in the CDP tables, so should campus.
    I've seen campus getting it wrong a few times, especially when there was some repatching done, but until now, when I delete the devices and re-add these devices, the next data collection gets the links correct.
    Cheers,
    Michel

  • Why controller Servlet instead of JSP?

    Hi,
    Could someone explain why do we go for Controller as Servlet instead of JSP?

    Controller might have logic to redirect the page.
    Generally we donot prefer scriptlets in JSP. SO
    SO better option will be writing servlets.It might be possible to write that controller JSP without any scriptlet code if you use JSTL.
    But the point that JSPs should be for presentation only stands. It's too easy to let control code start leaking into the JSP once you start.

  • Controller Servlet that Redirects to URLS

    Dear Members,
    I would like to do the following but I am not quite sure how to proceed.
    I have a website that has several pages (not just *.jsp but also *.html). I would like to have a servlet controller to sit on top of the website, so that without altering the WebPages, to monitor for each user session, the URL visited.
    In other words, say a user click on a link of one of the webpages. The controller should get the URL request, record it and then direct the user to where the link points.
    I have tried the following but it does not work.
    public void doGet(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException {
    ServletContext application = getServletContext();
    String reqUrl = getUrl(req);
    String checkUrl = reqUrl.substring(reqUrl.length()-2);
    if (checkUrl == ".jsp")
    RequestDispatcher dispatcher = application.getRequestDispatcher("/Welcome.jsp"); //nextURL
    dispatcher.forward(req,res);
    else
    res.sendRedirect(reqUrl);
    res.setStatus(res.SC_MOVED_TEMPORARILY);
    res.setHeader("Location", "reqUrl");
    public static String getUrl(HttpServletRequest req) {
    String reqUrl = req.getRequestURL().toString();
    String queryString = req.getQueryString(); // d=789
    if (queryString != null) {
    reqUrl += "?"+queryString;
    return reqUrl;
    -----------------------------------------------------------------------------------

    Sounds like you rather need a filter, read up on the javax.servlet.Filter interface.
    You can map a filter to urls in your web.xml like this:
    <filter>
      <filter-name>TestFilter</filter-name>
      <filter-class>test.TestFilter</filter-class>
    </filter>
    <filter-mapping>
      <filter-name>TestFilter</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>

  • Splitting up the Spring front controller servlet into more than one file

    In a multi-developer environment, it's obviously a bit of a pain to all use the same front controller xml file for mapping requests. Therefore does anyone know of a way we could split this into many files, for example one for each logically distinct application?
    Many thanks

    Hi,
    What are these files did you want to delete? As I know, the trusted installer group owns many system files and will deny you access to move or delete. incorrect deletion of these files will cause serious problem. If you want to delete these files, you can
    take the owner of these files and guarantee administrator permissions with icacls command, it can reduce amount of your work.
    How to Handle NTFS Folder Permissions, Security Descriptors and ACLs in PowerShell
    http://blogs.technet.com/b/josebda/archive/2010/11/12/how-to-handle-ntfs-folder-permissions-security-descriptors-and-acls-in-powershell.aspx
    And according to your description, do you want to convert an internal hard drive to external? if so, how did you perform this action? here is an article you can refer to:
    http://www.computershopper.com/peripherals/howto/build-your-own-external-hard-drive
    NOTE
    This
    response contains a reference to a third party World Wide Web site. Microsoft is providing this information as a convenience to you.
    Microsoft
    does not control these sites and has not tested any software or information found on these sites.
    Yolanda Zhu
    TechNet Community Support

  • Help with servlet controller

    lets say I wanted to build a login function. The function needs to
    1) validate the form
    2) check the database to see if the u/p matches
    3) return the user to the next step
    What is the most efficent way to do this.
    login.jsp -> package.FormValidate(servlet) ->check.jsp -> package.DBCheck(servlet) -> check.jsp -> succeed.jsp
    or should their be one controller servlet which is called by the jsp page. The controller servet then calls the package.FormValidate servlet then the controller servlet calles the package.DBCheck servlet) then then controller servet send to either fail.jsp or succeed.jsp
    Do you see what I mean? When I build a logical function ,should jsp call each servlet or should their be a main "controller" servlet?
    thanks

    Use Struts to solve all these issues and let struts do the work for you...

  • Servlet Response Problem

    Hello all,
    My simple servlet takes in a URL as a parameter and the uses the httpUrlConnection method to retrieve that page. It then just writes the html to the browser in the hope that it would be displayed as if retrieved directly.
    Although the source of a page retrieved in this way is identicle to the expected source, no images appear. I think (guess) this is because the address of a page retrieved in this way will not be the same as if retrieved normally. This, in turn, messes up the relative file paths. e.g www.mypage.com becomes something like http://localhost/httpProxyServer?URL=http%3A%2F%2Fwww.mypage.com (httpProxyServer is the name of the servlet).
    To get to the point, idoes anyone know if there is a way i can set the address of the returned page to be as if retrieved directly? I have looked in to response headers with little luck although i am very new to servlets. Thanks for any tips or advice.
    Christie

    This question can be better answered if you point out the need to examine each response before actually sending it out to the browser. What exactly do you look for in the response ? Do you compress it / transform it / parse it ?
    Having said that, you could use filters to meet any of your above needs.
    1. The first obvious gain is that it is a standard, widely accepted and part of the j2ee specification. As you said, it provides modularity and resuability of code. Somebody who goes through your work would easily pick up the trail, comprehend concisely the effort and the ends you attempt to achieve. You would have implicit server support (more of this later)
    2. You use a servlet that intercepts each request. It then uses a HttpURLConnection to get the response from each resource. As you can see straight away, this essentially makes it two requests per request - the original request goes to your general purpose servlet; then the general purpose Servlet(GPS hereafter) makes the url connection to the resource, its a brand new request. The original request may have lots of params coming in which have to be reconstructed by the GPS and included in the call to the resource which delivers the actual response back to the GPS. Hope you begin to see the pitfalls here (for example imagine the incoming stream is a byte stream resulting from a file upload)
    **in short** the 'simple servlet' is going to get very very complex as your application grows.
    3. All the above rerouting (even if you manage to achieve it successfully) will take its toll on the performance measured in terms of the response time.
    4. In established MVC2 framework like Struts or JSF, the Servlet that intercepts every request is a Controller Servlet (which knows how to handle the request, which validations to perform, which beans to invoke and so on). Your GPS should in addition to examining responses, do all this stuff or else you would end up with multiple Controllers making your app quite unwieldy.
    5. Using filters, you could side step all the above which in itself is a huge advantage (me thinks :)) besides providing a standard way to implement tasks similar to yours. I mentioned implicit server support, right ? Filters are supported by all standard j2ee web severs. You neednt write a single line of code to have your filter modify the response. All you have to write is the actual modification algorithm. However the path you choose, you would have to manually do all the dirty work of transferring the request to the actual resource (using HttpUrlConnection). You should receive each request params and convey that to the resource being accessed and so on. (see #2 above)
    Hope all that helps.
    cheers,
    ram.

  • MVC Design Help, Single Servlet, How do I access the Model and DB

    Hi all. New here and looking for some help.
    I am currently writing a website that allows the creation of users, that may upload articles and post comments on articles. Im trying to develop using MVC. I have a single controller servlet that processes POST actions throughout the site (eg. InsertArticle, DeleteArticle, ModifyArticle, etc..)
    Now my problem is, just how do I retrieve the articles from the database? .. for example, if I load up a page http://localhost/articles.jsp which should display all the articles currently in the site.. I would have a function say getAllArticles() which should return a collection of all the articles. I can then iterate through the articles in the jsp page.
    I am trying to use <jsp:useBean...etc.> BUT.. my articles bean constructor takes a databaseconnection object as a parameter. If I use useBean I cant pass the databaseconnection object to the bean and I get an error because it cannot create the bean.
    Any help on this would be appreciated as well as any tutorial links. I also looked at the petstore blueprint program on the sun website, but that program has me completely lost with all the xml. I would prefer not to use custom tags or struts for now. I would like to keep it simple with snippets of java code in the jsp pages for data retrieval and display while keeping all the business logic in the beans of the model. I would also like to keep this relatively secure. I am developing using Oracle Jdeveloper 10g.
    Thanks
    Jazz

    Hey steve, thanks for that.. but thats exactly what i
    dont want to do. I also realize that ive been writing
    the ejb's incorrectly to begin with and have begun to
    rewrite them. However maybe I can make it easier..
    what im trying to do is precisely what is in this
    diagram..
    http://gsraj.tripod.com/jsp/jsp.html
    the problem im having is where it passes data back to
    the jsp page.. entity beans cant (or shouldnt?) be
    accessed directly from jsp pages.. which means i
    create a session bean which interacts with the entity
    bean and can return information to the jsp page.. i
    understand what i have to do.. i just dont know how to
    do it.. been searching for google for tutorials and
    etc.. this site is the closest ive come but .. as you
    can see it says "more to come" ..
    thanks again guys really appreciate itAhhh. EJBs. Enterprise Java Beans and JavaBeans are two completely different beasts. I know nothing about EJBs, except:
    1) They are much harder to use (and serve a different purpose I assume) then JavaBeans
    2) Tomcat (the server I use) doesn't support them.
    Sorry I can't be of more help.

  • DoGet() method is being called every 3inutes repetitively in servlet

    HI,
    There are 2 managed servers in one unix box.
    i have one war application deployed in cluster level. This war application will search the logs and will give particular content as a result.
    The Jsp page will send the request and it is able to get the correct results if the operation completes within 3 minutes. if there are so many logs, it is giving unreliable results as war application is sending the request again and again in the interval of 3 mins.
    Request parameters are getting by servlet, and this servlet will create the unix shellscript in background and it will execute in a box.
    0-3 mins 1st .sh creating and executing..
    3-6 mins 2nd .sh creats and starts the execution, once the 1 one is completed...
    its becomes infinite loop...
    after some time Browser is going to diagnostic error state..
    i did debugging there i can see doGet method of servlet is being called for every 3 minutes..
    to avoid this i tried to give some parameters in weblogic.xml file...but its not working..
    please fine below weblogic.xml file
    ====================================
    <?xml version='1.0' encoding='UTF-8'?>
    <weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.2/weblogic-web-app.xsd">
    <session-descriptor>
    </session-descriptor>
    <jsp-descriptor>
    <page-check-seconds>-1</page-check-seconds>
    <debug>true</debug>
    </jsp-descriptor>
    <container-descriptor>
    <resource-reload-check-secs>-1</resource-reload-check-secs>
    <servlet-reload-check-secs>-1</servlet-reload-check-secs>
    <prefer-web-inf-classes>true</prefer-web-inf-classes>
    </container-descriptor>
    <logging>
    <log-filename>/wls_domains/b2borap2/application_MT/logs/messagetracker.log</log-filename>
    </logging>
    </weblogic-web-app>
    =======================================================
    and web.xml file is
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:javaee="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <listener>
    <listener-class>
    com.tm.messagetracker.listeners.MTrackerSession
    </listener-class>
    </listener>
    <servlet>
    <servlet-name>Controller</servlet-name>
    <servlet-class>com.tm.messagetracker.Controller</servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
    <servlet-name>Controller</servlet-name>
    <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    <session-config>
    <session-timeout>30</session-timeout>
    </session-config>
    <mime-mapping>
    <extension>txt</extension>
    <mime-type>text/plain</mime-type>
    </mime-mapping>
    <mime-mapping>
    <extension>html</extension>
    <mime-type>text/html</mime-type>
    </mime-mapping>
    <mime-mapping>
    <extension>htm</extension>
    <mime-type>text/html</mime-type>
    </mime-mapping>
    <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
    </welcome-file-list>
    </web-app>
    =========================================
    please find the servlet code..
    public class Controller extends HttpServlet
    public void init()
    public void doGet(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException
         System.out.println("Iam at doGet");
    res.setContentType("text/html");
    HttpSession session = req.getSession (false);
    if (session==null) {
         // We Send a Redirect
         res.sendRedirect("./../pages/login.jsp");
    //HttpSession session = req.getSession(true);
    boolean loginTravelled = new Boolean((String)session.getAttribute("loginTravelled")).booleanValue();
    UserVerification uv = new UserVerification();
    MTUtils mTUtils = new MTUtils();
    Properties systemProps = SerializeProperties.doLoad();
    int noOFrecordsPerPage = 10;
    if (loginTravelled)
         System.out.println("loginTravelled value :"+loginTravelled);
    String pageId = req.getParameter("pageId");
    String actionId = req.getParameter("actionId");
    if (actionId.equals("logout"))
    session.removeAttribute("CompleteSearchRecords");
    session.removeAttribute("DisplaySearchRecords");
    session.invalidate();
    System.gc();
    res.sendRedirect("./../pages/login.jsp");
    else if (pageId.equals("faq"))
    if (actionId.equals("homepage"))
    System.gc();
    res.sendRedirect("./../pages/login.jsp");
    else if (actionId.equals("download"))
    String fileName = req.getParameter("fileName");
    String originalFileName = req.getParameter("originalFileName");
    doDownload(req, res, fileName, originalFileName);
    else if (pageId.equals("login"))
    if (actionId.equals("downloads"))
    List downloadListRecords = null;
    try
    downloadListRecords = DownloadableRecords.getDownloadableRecords(new File(systemProps.getProperty("faq")));
    catch (Exception e)
    e.printStackTrace();
    session.setAttribute("DownloadListRecords", downloadListRecords);
    res.sendRedirect("./../pages/downloads.jsp");
    else if (actionId.equals("userlogin"))
    String userId = req.getParameter("uname").trim();
    String password = req.getParameter("passwd").trim();
    if ((userId != null) && (userId.length() > 0) && (password != null) && (password.length() > 0))
    if ((userId.equals("superadmin")) && (password.equals("superadmin")))
    res.sendRedirect("./../pages/admin.jsp");
    String userAuthMsg = UserVerification.verifyUser(userId, password);
    if (userAuthMsg.equals("adminuser"))
    res.sendRedirect("./../pages/admin.jsp");
    else if (userAuthMsg.equals("guestuser"))
    res.sendRedirect("./../pages/search.jsp");
    else if (userAuthMsg.equals("wrongpassword"))
    res.sendRedirect("./../pages/login.jsp?userAuthDispMsg=Sorry wrong password");
    else if (userAuthMsg.equals("unauthorizeduser"))
    res.sendRedirect("./../pages/login.jsp?userAuthDispMsg=User is not Authorized ");
    else if ((userAuthMsg.equals("adminpropsNotFound")) || (userAuthMsg.equals("guestpropsNotFound")))
    res.sendRedirect("./../pages/error.jsp?userAuthDispMsg=user configurations not found , Please contact admin");
    else
    res.sendRedirect("./../pages/login.jsp?userAuthDispMsg=UserName or password cannot be null");
    else if (pageId.equals("adminPage"))
    if (actionId.equals("adduser"))
    CommonProperties adminProps = MTrackerProperties.getAdminProps();
    CommonProperties guestProps = MTrackerProperties.getGuestProps();
    String userId = req.getParameter("adduname").trim();
    String password = req.getParameter("passwd").trim();
    String userAuthMsg = uv.verifyUser(userId);
    if (userAuthMsg.equals("adminuser"))
    res.sendRedirect("./../pages/admin.jsp?userAuthDispMsg=Admin user with name exists");
    else if (userAuthMsg.equals("guestuser"))
    res.sendRedirect("./../pages/admin.jsp?userAuthDispMsg=Guest user with name exists");
    else
    String userType = req.getParameter("usertype").trim();
    if (userType.equals("admin"))
    adminProps.addProperty(userId, password);
    res.sendRedirect("./../pages/admin.jsp?userAuthDispMsg=User " + userId + " added successfully");
    else
    guestProps.addProperty(userId, password);
    res.sendRedirect("./../pages/admin.jsp?userAuthDispMsg=User " + userId + " added successfully");
    else if (actionId.equals("deleteuser"))
    CommonProperties adminProps = MTrackerProperties.getAdminProps();
    CommonProperties guestProps = MTrackerProperties.getGuestProps();
    String userId = req.getParameter("deluname").trim();
    String userAuthMsg = uv.verifyUser(userId);
    if (userAuthMsg.equals("adminuser"))
    adminProps.deleteProperty(userId);
    res.sendRedirect("./../pages/admin.jsp?userAuthDispMsg=Admin user " + userId + " deleted");
    else if (userAuthMsg.equals("guestuser"))
    guestProps.deleteProperty(userId);
    res.sendRedirect("./../pages/admin.jsp?userAuthDispMsg=Guest user " + userId + " deleted");
    else
    res.sendRedirect("./../pages/admin.jsp?userAuthDispMsg=User " + userId + " does not exists ");
    else if (actionId.equals("updatescript"))
    String perlScriptLoc = req.getParameter("perlloc").trim();
    SerializeProperties.doSave(perlScriptLoc);
    try
    Thread.sleep(2500L);
    catch (InterruptedException e) {
    e.printStackTrace();
    res.sendRedirect("./../pages/admin.jsp?userAuthDispMsg=Perl script location updated with -> " + perlScriptLoc);
    else if (actionId.equals("updatepropertyfile"))
    String propfileLoc = req.getParameter("proploc").trim();
    SerializeProperties.doSave(propfileLoc);
    try
    Thread.sleep(2500L);
    catch (InterruptedException e) {
    e.printStackTrace();
    res.sendRedirect("./../pages/admin.jsp?userAuthDispMsg=Property file location updated with -> " + propfileLoc);
    else if (actionId.equals("searchLink"))
    res.sendRedirect("./../pages/search.jsp");
    if (actionId.equals("cleanup"))
    String resultsDir = systemProps.getProperty("results");
    mTUtils.deleteFiles(new File(resultsDir), 24);
    res.sendRedirect("./../pages/admin.jsp?userAuthDispMsg=Cleanup Done !!!");
    else if (pageId.equals("searchPage"))
         System.out.println("Start searching process Here");
         if (actionId.equals("search"))
         System.out.println("Started searching process");
    String tboxValue = req.getParameter("tbox");
    String tareaValue = req.getParameter("tarea");
    String SearchString = "";
    String auditEnable = req.getParameter("audit");
    String errorEnable = req.getParameter("error");
    String debugEnable = req.getParameter("debug");
    String srchStartDate = req.getParameter("srchstartDate");
    String srchEndDate = req.getParameter("srchendDate");
    String srchInZipFile = "";
    if (req.getParameter("srchInZipFile") != null) {
    srchInZipFile = req.getParameter("srchInZipFile");
    String mode = req.getParameter("inputmode");
    try
    if (req.getParameter("recordsPerPage") != null)
    noOFrecordsPerPage = new Integer(req.getParameter("recordsPerPage")).intValue();
    catch (Exception e)
    res.sendRedirect("./../pages/error.jsp?userAuthDispMsg=recordsPerPage should be a number");
    if (mode.equals("single"))
    SearchString = tboxValue;
    else
    SearchString = tareaValue;
    String inputDir = systemProps.getProperty("inputs");
    String resultsDir = systemProps.getProperty("results");
    String inputFileName = new Integer(mTUtils.getRandom()).toString();
    File inputParams = new File(inputDir + "/" + inputFileName + ".properties");
    File inputTxt = new File(inputDir + "/" + inputFileName + ".txt");
    synchronized (inputParams) {
         System.out.println("inputParams"+inputParams);
    synchronized (inputTxt)
         System.out.println("inputtxt"+inputTxt);
    boolean saved = false;
    CommonProperties singleSerProps = new CommonProperties(inputParams);
    Properties searchProps = new Properties();
    searchProps.setProperty("search_from_date", srchStartDate);
    searchProps.setProperty("search_to_date", srchEndDate);
    searchProps.setProperty("force_zip_search", srchInZipFile);
    if ((SearchProperties.saveSingeSearchProps(singleSerProps, searchProps)) && (SearchProperties.saveSearchFile(inputTxt, SearchString)))
    if (mTUtils.genarateScript(auditEnable, debugEnable, errorEnable, srchInZipFile, inputFileName))
    if (mTUtils.runScript("sh", inputFileName))
    List tRecords = null;
    TrackingLogReader treader = new TrackingLogReader();
    try
    tRecords = treader.getRecords(new File(resultsDir), inputFileName);
    catch (Exception e)
    e.printStackTrace();
    if (tRecords == null)
    tRecords = new ArrayList();
    tRecords.add("No Records Found");
    String backEnb = "";
    String nextEnb = "";
    int fromRec = 0;
    int toRec = 0;
    if (tRecords.size() > noOFrecordsPerPage)
    toRec = noOFrecordsPerPage;
    backEnb = "false";
    nextEnb = "true";
    else
    toRec = tRecords.size();
    backEnb = "false";
    nextEnb = "false";
    List subList = tRecords.subList(fromRec, toRec);
    session.setAttribute("CompleteSearchRecords", tRecords);
    session.setAttribute("DisplaySearchRecords", subList);
    session.setAttribute("fromRec", new Integer(fromRec));
    session.setAttribute("toRec", new Integer(toRec));
    session.setAttribute("nextEnb", nextEnb);
    session.setAttribute("backEnb", backEnb);
    session.setAttribute("recsPerPage", new Integer(noOFrecordsPerPage));
    res.sendRedirect("./../pages/SearchResults.jsp");
    else {
    res.sendRedirect("./../pages/error.jsp?userAuthDispMsg=Problem in calling PERL system , Please contact admin");
    else
    res.sendRedirect("./../pages/error.jsp?userAuthDispMsg=Script not generated , Please contact admin");
    else
    res.sendRedirect("./../pages/error.jsp?userAuthDispMsg=Search input directory not found, Please contact admin ");
    //inputParams.delete();
    //inputTxt.delete();
    else if (pageId.equals("searchresults"))
    noOFrecordsPerPage = ((Integer)session.getAttribute("recsPerPage")).intValue();
    if (actionId.equals("newSearch"))
    session.removeAttribute("CompleteSearchRecords");
    session.removeAttribute("DisplaySearchRecords");
    session.removeAttribute("fromRec");
    session.removeAttribute("toRec");
    session.removeAttribute("recsPerPage");
    System.gc();
    res.sendRedirect("./../pages/search.jsp");
    else if (actionId.equals("first"))
    List completeRecords = (List)session.getAttribute("CompleteSearchRecords");
    int fromRec = 0;
    int toRec = 0;
    String backEnb = "";
    String nextEnb = "";
    if (completeRecords.size() > noOFrecordsPerPage)
    toRec = noOFrecordsPerPage;
    backEnb = "false";
    nextEnb = "true";
    else
    toRec = completeRecords.size();
    backEnb = "false";
    nextEnb = "false";
    List subList = completeRecords.subList(fromRec, toRec);
    session.setAttribute("CompleteSearchRecords", completeRecords);
    session.setAttribute("DisplaySearchRecords", subList);
    session.setAttribute("fromRec", new Integer(fromRec));
    session.setAttribute("toRec", new Integer(toRec));
    session.setAttribute("nextEnb", nextEnb);
    session.setAttribute("backEnb", backEnb);
    session.setAttribute("recsPerPage", new Integer(noOFrecordsPerPage));
    res.sendRedirect("./../pages/SearchResults.jsp");
    else if (actionId.equals("last"))
    List completeRecords = (List)session.getAttribute("CompleteSearchRecords");
    int fromRec = 0;
    int toRec = completeRecords.size();
    String backEnb = "";
    String nextEnb = "";
    if (noOFrecordsPerPage > completeRecords.size())
    fromRec = 0;
    backEnb = "false";
    nextEnb = "false";
    else
    fromRec = completeRecords.size() - noOFrecordsPerPage;
    backEnb = "true";
    nextEnb = "false";
    List subList = completeRecords.subList(fromRec, toRec);
    session.setAttribute("CompleteSearchRecords", completeRecords);
    session.setAttribute("DisplaySearchRecords", subList);
    session.setAttribute("fromRec", new Integer(fromRec));
    session.setAttribute("toRec", new Integer(toRec));
    session.setAttribute("nextEnb", nextEnb);
    session.setAttribute("backEnb", backEnb);
    session.setAttribute("recsPerPage", new Integer(noOFrecordsPerPage));
    res.sendRedirect("./../pages/SearchResults.jsp");
    else if (actionId.equals("back"))
    List completeRecords = (List)session.getAttribute("CompleteSearchRecords");
    int fromRec = ((Integer)session.getAttribute("fromRec")).intValue();
    int toRec = ((Integer)session.getAttribute("toRec")).intValue();
    toRec = fromRec;
    if (fromRec - noOFrecordsPerPage > 0)
    session.setAttribute("backEnb", "true");
    fromRec -= noOFrecordsPerPage;
    else
    fromRec = 0;
    session.setAttribute("backEnb", "false");
    session.setAttribute("nextEnb", "true");
    session.setAttribute("fromRec", new Integer(fromRec));
    session.setAttribute("toRec", new Integer(toRec));
    List subList = completeRecords.subList(fromRec, toRec);
    session.setAttribute("DisplaySearchRecords", subList);
    res.sendRedirect("./../pages/SearchResults.jsp");
    else if (actionId.equals("next"))
    List completeRecords = (List)session.getAttribute("CompleteSearchRecords");
    int fromRec = ((Integer)session.getAttribute("fromRec")).intValue();
    int toRec = ((Integer)session.getAttribute("toRec")).intValue();
    fromRec = toRec;
    if (toRec + noOFrecordsPerPage <= completeRecords.size())
    session.setAttribute("nextEnb", "true");
    toRec += noOFrecordsPerPage;
    else
    toRec = completeRecords.size();
    session.setAttribute("nextEnb", "false");
    session.setAttribute("backEnb", "true");
    session.setAttribute("fromRec", new Integer(fromRec));
    session.setAttribute("toRec", new Integer(toRec));
    List subList = completeRecords.subList(fromRec, toRec);
    session.setAttribute("DisplaySearchRecords", subList);
    res.sendRedirect("./../pages/SearchResults.jsp");
    else if (actionId.equals("download"))
    String fileName = req.getParameter("fileName");
    String originalFileName = req.getParameter("originalFileName");
    doDownload(req, res, fileName, originalFileName);
    else
    res.sendRedirect("./../pages/login.jsp?userAuthDispMsg=Invalid USER");
    public void doPost(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException
    doGet(req, res);
    private void doDownload(HttpServletRequest req, HttpServletResponse resp, String filename, String original_filename)
    throws IOException
    File f = new File(filename);
    int length = 0;
    ServletOutputStream op = resp.getOutputStream();
    ServletContext context = getServletConfig().getServletContext();
    String mimetype = context.getMimeType(filename);
    resp.setContentType(mimetype != null ? mimetype : "application/octet-stream");
    resp.setContentLength((int)f.length());
    resp.setHeader("Content-Disposition", "attachment; filename=\"" + original_filename + "\"");
    byte[] bbuf = new byte[10240];
    DataInputStream in = new DataInputStream(new FileInputStream(f));
    while ((in != null) && ((length = in.read(bbuf)) != -1))
    op.write(bbuf, 0, length);
    in.close();
    op.flush();
    op.close();
    =========================
    anyone please help me on above......Thanks in advance..

    Hi jleech,
    Thanks for the reply. But deleting all the temporary internet files as also the history files does not seem to have an effect. the doFilter is being called only at the second request. or did i miss anything??
    Please help. unable to complete the assignment because of this.
    Thank You,
    Phani Kanuri

  • How can I get controller .java files

    I have craeted OA extension pages in which I have created Entiy object, module and view objects
    in JDeveloper for 12.1.1 in windows and it working fine.
    Now I want to extend one of the page of payable module (payable vision operation (USA))
    and the page name is SuppSummaryPG.xml .
    The problem is that how can I open or import SuppSummaryPG.xml in my jdeveloper ID
    and all the related files which belongs to SuppSummaryPG.xml , example raleated VO, entity objects
    module file and controller servlet.
    I move all the files from
    apps server to jdeveloper directory , i did the same thing which is running
    and working fine but the problem is with all of ViewObject and aplication module
    I am not able to open these in Jdeveloper , because when I try to open these files
    it gives me error that you dont have .java files , and it opens view objects and applicatino
    moudel files in read only mode
    the page is a standrad java moudle page
    suppSummaryPG is a standard page and it is in
    payable moudle herachy is
    oracle/apps/pos/supplier/....suppSummaryPG
    what should I do

    You can use decompiler to read java code. Oracle doesn't have any policy to prevent you from reading the class files.
    However you cannot change the java code and replace the standard files.
    Source Code:
    Oracle sells the just the software. So they are not obligated to provide source code.
    The reason why they provided soruce code for forms and reports is that there is no robust personalzation and extention concepts available for them.
    As per Oracle Support services, you dont need OAF code for extension and personalization.
    --Prasanna                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Passing bean as attribute to servlet in request scope

    Hello,
    I want to pass a bean from a jsp to my controller servlet. As I understood, as long as I can give the bean 'request' scope, then I should be abble to access the bean, as an attribute in the doPost / doGet method of my servlet. However, when I try to get the bean in the servlet, its always null.
    I am aware that request scope beans don't loose their values when passing to other JSP's , but what about passing to servlets?
    I dont want to use a session scoped bean as I believe this should be possible with a request scoped variable.
    <%-- vwLogon.jsp --%>
    <jsp:useBean id="viewBean" class="com.alto.common.ViewBean" scope="request">
         <jsp:setProperty name="viewBean" property="viewName" value="/vwLogon"/>
    </jsp:useBean>
    <html>
    <body>
    <h2>Enter Name</h2>
    <form method="GET" action="controller">
         Enter your name:<input type="text" name="vwLogon_User_txt" value=""/>
         Enter your password:<input type="secret" name="vwLogon_Password_txt" value=""/>
    <input type="submit" name="vwLogon_Logon_Btn" value="Logon"/>
    </form>
    </body>
    </html>
    ------------------------------- controller servlet
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    ViewBean viewBean = (ViewBean)req.getAttribute("viewBean");
    String strURL = new String("");
    if (!(viewBean==null)) {
    strURL = viewBean.getViewName();

    A request/response pair is one communication between the client browser and the web server. A submit form action generates a new request.
    In this instance you have two requests:
    1 - load login page
    2 - submit login page
    The point of being able to give a bean request scope, is so that you can use jsp:forward, or jsp:include to pass on the request, and the bean as well.
    In your case, a session bean is probably called for, as you have 2 request/responses in your session.
    Hope this clears things up a little.
    Cheers,
    evnafets

  • Best way to call EJB - Servlet or Tag Library

    Hi,
    What is the best way to call an EJB from a JSP? We are using Weblogic 7.0(moving to 8.1 beta). WE have a form on a JSP that needs to get data from an EJB. Our flow goes from JSP --> Controller servlet or tag library -->EJB "Bean" Controller ---> EJB. The specfic EJB we need to populate drop downs and fields will be called by a bean controller. Is it better to call the bean controller using a tag library in the jsp or go to the controller servlet to get the data? If servlet is the answer, where do I lookup the EJB Home and call the create from within the servlet? Any help would be greatly appreciated!!
    Thanks!

    IMO, if you are following some design patterns, like the MVC framework, the best thing is to populate the model(entities that contain the business data) and call the respective getXX methods from the model on the JSP page. The reason for doing so is to keep JSP pages away from any other work other than to just display the business data contained in the respective business entities.
    The model can be populated in the servlet and either set in the request or session attribute as per the requirement.
    The EJB can be looked up in the servlet as and when required. I would suggest to make use of the Service Locator Pattern to do a look up for the EJB Remote Interface and accordingly make the business calls.
    Hopefully this answers some of your questions.

  • Problems with servlet mapping in 10g AS

    Hi There,
    i have a web application consisting of 2 controller servlets and use url mapping to send requests to the appropriate servlet, but i have a strange issue with 10g where it seems to be alternating between serlvets when handling requests!!!!
    the web.xml is like as follows (with the app having the root context '/app'):
    <servlet>
    <servlet-name>control1</servlet-name>
    <servlet-class>com.package1.class.name</servlet-class>
    </servlet>
    <servlet>
    <servlet-name>control2</servlet-name>
    <servlet-class>com.package2.class.name</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>control2</servlet-name>
    <url-pattern>/special/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>control1</servlet-name>
    <url-pattern>/*</url-pattern>
    </servlet-mapping>
    therefore i'd expect a request like http://domain.name/app/special/content to be handled by the control2 servlet and http://domain.name/app/normal/content or http://domain.name/app/normal/special/content to be handled by the control1 servlet...
    but what seems to happen when requesting http://domain.name/app/special/content oc4j seems to alternate which servlet it passes it to...
    is there any reason why this might be happening (like some app server configuration), as i have other applications that are configured in the same way, and there's no problems with requests going to the wrong servlet.
    many thanks for your help,
    Andy

    In your integration process, define the import parameter under Configurable Parameters category.
    http://help.sap.com/saphelp_nwpi71/helpdata/en/44/1f1a5c932d0d19e10000000a114a6b/frameset.htm
    Regards,
    Prateek

  • How to set two different welcome-file to different servlets in web.xml

    Hi friends,
    Can some one help with web.xml file
    I have to different servlets in applications.
    I want to set two different welcome files for my two different
    servlets in web.xml
    Please, can some one give me sample code to achieve this.
    Here web.xml code:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app PUBLIC
    "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>     
         <servlet>
              <servlet-name>reports</servlet-name>
              <servlet-class>com.caremark.ivr.servlet.IvrReportsServlet</servlet-class>
         </servlet>
         <servlet-mapping>
              <servlet-name>reports</servlet-name>
              <url-pattern>/reports</url-pattern>
         </servlet-mapping>
         <session-config>
              <session-timeout>30</session-timeout>
         </session-config>
         <welcome-file-list>
              <welcome-file>reportsindex.jsp</welcome-file>
         </welcome-file-list>
         <servlet>
              <servlet-name>calldetails</servlet-name>
              <servlet-class>com.caremark.ivr.servlet.IvrCallDetailsServlet</servlet-class>
         </servlet>
         <servlet-mapping>
              <servlet-name>calldetails</servlet-name>
              <url-pattern>/calldetails</url-pattern>
         </servlet-mapping>
    <welcome-file-list>
              <welcome-file>calldetailsindex.jsp</welcome-file>
         </welcome-file-list>
    </web-app>
    I need this fix immediately. Your help will be really appreciated. Thanks in advance.

    First of all, my understanding is that you need to have a Servlet 2.4 complaint server to do this...Given that, you're supposed to be able to simply specify the Name of the servlet as the welcome-file to get it to work. For example:
    Your servlet section:
    <servlet>
      <servlet-name>Controller</servlet-name>
      <servlet-class>com.company.ControllerServlet</servlet-class>
    </servlet>Now you would add the following to your welcome file list:
    <welcome-file-list>
      <welcome-file>Controller</welcome-file>
    </welcome-file-list>Note that you use the servlet-name value from the servlet definition, NOT the url-mapping from the servlet-mapping section.
    Please note that I cannot verify this as I am running a 2.3 server at home. When I get to work Friday I can test on a 2.4 machine. However this shouldn't take you more than a minute to test.
    Note that I did try this on the 2.3 compliant server and it did NOT work (as I expected)...
    HTH.

Maybe you are looking for

  • 2nd JFrame at Full Screen not registering key events

    I've written an application that launches other applications distributed as JARs with a particular method (replacing the main method). These other applications run at full screen. Whilst I have got these other applications to work in that they displa

  • Help I need a lightning extension lead for my av adaptor

    I have purchased the apple av adaptor but the lead from it is to small does anyone know if you can get a lightning extension lead that will support all the digital functions thanks for any help

  • PO Creation, with same Legacy Item No : LSMW-IDOC

    Dear all, I am creatin PO's using LSMW IDOC Method - BUS2012. I could create PO's . But issue is , but issue is PO's are created with Item No in Sequence( 10,20 etc). We need to create PO with same Item No as in Input File. Eg: If Item No are 40 , 50

  • Why can't read access log file in real-time? (Oracle Weblogic Server 10.3)

    We can't read access log file in real-time. If access log is rotation to new file so can read access log file but can't read real-time. *** Oracle Weblogic Server versions 10 R3

  • Convert Movie for iPod-sound disappeared

    I tried to convert a video for iPod by using "Advanced/Convert Selection to iPod". After it's converted, the sound is gone. Any idea why? Also, the video quality is bad when I view it in iPod, anyway I can adjust it? Thanks!!