pavan
pavan

Reputation: 791

servlet to search a server

I want to write a servlet for searching a file on a Tomcat server which gives the relative location of the file.

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String gettext = request.getParameter("name");
    String set = gettext;
    String s = null;
    RequestDispatcher dispatcher = request.getRequestDispatcher("search.jsp");
    request.setAttribute("text", gettext);
    File root = new File("here i want to give localhost:8080/webappfoldername");
    String fileName = set + ".png";
    System.out.println(fileName);

    try {
        boolean recursive = true;
        Collection files = FileUtils.listFiles(root, null, recursive);

        for (Iterator iterator = files.iterator(); iterator.hasNext();) {
            File file = (File) iterator.next();

            if (file.getName().equals(fileName)) {
                System.out.println(file.getAbsolutePath());
                s = file.getAbsolutePath();
                // System.out.println(s);
                getServletContext().setAttribute("return", s);
                // request.setAttribute("return" ,file.getAbsolutePath());
                String testing = (String) getServletContext().getAttribute("return");
                // System.out.println(testing);
                request.getRequestDispatcher("/page.jsp").forward(request, response);
            }
        }

        if (s == null) {
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            System.out.println("no file found");
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Upvotes: 0

Views: 127

Answers (1)

rsp
rsp

Reputation: 23373

What you are looking for is:

    File root = new File(getServletContext().getRealPath("."));

Upvotes: 1

Related Questions