Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Проверьте код)


Автор: vantyz 29.10.2012, 20:57
Привет,можете проверить код,и заменить в нем неточности

Код

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class servlet extends HttpServlet {
    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    public static List<String> getFileNames(File directory, String extension) {

        List<String> list = new ArrayList<String>();
        File[] total = directory.listFiles();
        for (File file : total) {
            if (file.getName().endsWith(extension)) {
                list.add(file.getName());
            }
            if (file.isDirectory()) {
                List<String> tempList = getFileNames(file, extension);
                list.addAll(tempList);          
            }
        }
        return list;
    }

    @SuppressWarnings("resource")
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException{ 
            request.setCharacterEncoding("utf8");
            String myName = request.getParameter("text");

            List<String> files = getFileNames(new File("C:\\Users\\vany\\Desktop\\test"), "txt");
            for (String string : files) {
            if (myName.equals(string)) {
                   try {
                        File file = new File("C:\\Users\\vany\\Desktop\\test\\" + string);
                        FileReader reader = new FileReader(file);
                        int b;
                        PrintWriter writer = response.getWriter();
                        writer.print("<html>");
                        writer.print("<head>");
                        writer.print("<title>HelloWorld</title>");
                        writer.print("<body>");
                        writer.write("<div>");
                        while((b = reader.read()) != -1) {
                            writer.write((char) b);
                        }
                        writer.write("</div>");
                        writer.print("</body>");
                        writer.print("</html>");

                    } 
                   catch (Exception ex) {
                         System.exit(0);
                    }
                }

            }
           }
    }


Тут ,по моему,надо что-то с этим:

Код

catch (Exception ex) {
System.exit(0);
}



И что-то с этим:

Код

FileReader reader = new FileReader(file);

Автор: priam220 30.10.2012, 17:04
Этим вы останавливаете jvm. Т.е. повторное обращение к сервлету будет не возможно, т.к. jvm, на котором он запущен, будет остановлена. 
Код

System.exit(0);


 Об FileReader можно почитать вот http://docs.oracle.com/javase/tutorial/essential/io/charstreams.html. В catch нужно разместить обработку закрытия стримов.

Автор: vantyz 30.10.2012, 21:07
priam220,спасибо огромное,а можете показать,что где куда вставить?Я просто новичок в java

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)