Hi, there are problems with the code, here’s one of the servlet methods:
static <T> String paginate (List<T> pages, int pagesPerOut) { for (int i = 0; i < pages.size(); i += pagesPerOut) { System.out.println(paginate(pages, i, pagesPerOut)); } return ""; }
But this servlet cannot be written here, so how can this problem be solved? Here is the whole code:
import java.io.*; import java.util.ArrayList; import java.util.List; import javax.servlet.*; import javax.servlet.http.*; public class servletss extends HttpServlet { @Override protected void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setCharacterEncoding("utf-8"); res.setContentType("text/html"); PrintWriter out = res.getWriter(); File file = new File("C:\\prov\\"); String list[] = file.list(); out.println("<html>"); out.println("<head>"); out.println("<title>testservlets</title>"); out.println("</head>"); out.println("<body>"); /* * начало вывода */ ArrayList<String> sizel = new ArrayList<String>(); sizel = pagef(); int sizelist; sizelist = sizel.size(); int pageint = 1;// номер страницы ArrayList<String> sizetris = new ArrayList<String>(); int startlist = (pageint - 1) * 30; int endlist = (sizel.size() >= (startlist + 30)) ? (startlist + 30) : sizel.size(); sizetris.addAll(sizel.subList(startlist, endlist)); double startdouble = 10.0;// конец показа страниц int endint = (int) (pageint * 10);// конечное число пользователя double allpage = sizelist / 3;// число страниц всего double page = allpage / startdouble;// деление страниц double lsc = Math.ceil(page); String separator = System.getProperty("line.separator"); if (endint > lsc * 10) { out.println("страниц не найдено"); } else { out.println("<div class=\"pagen\">" + pageint + "</div>"); out.println("<div class=\"bloctext\">" + paginate(sizetris, endint * 3) + separator + "</div>"); out.println("<div class=\"pagen\">" + pageint + "</div>"); } for (int i = 0; i < list.length; i++) { out.println("<a href=\"http://localhost:8080/test/servletss?i=" + i + "\" str=\"" + i + "\">" + i + "</a>"); } out.println("</body>"); out.println("</html>"); } static <T> String paginate (List<T> pages, int pagesPerOut) { for (int i = 0; i < pages.size(); i += pagesPerOut) { System.out.println(paginate(pages, i, pagesPerOut)); } return ""; } static <T> List<T> paginate (List<T> pages, int start, int count) { int end = start + count > pages.size() ? pages.size() : start + count; return pages.subList(start, end); } /* * метод для возвращения массива страниц */ static ArrayList<String> pagef () { ArrayList<String> page = new ArrayList<String>(); BufferedReader br = null; String s = null; File file = new File("C:\\prov\\"); String list[] = file.list(); try { for (int i = 0; i < list.length; i++) { File fileread = new File("C:\\prov\\" + list[i]); br = new BufferedReader(new InputStreamReader( new FileInputStream(fileread), "UTF-8")); while ((s = br.readLine()) != null) { page.add(s + "\n"); } br.close(); } } catch (Exception e) { System.out.println(e); } return page; } }