powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как сервлеты переделать в Spring
5 сообщений из 5, страница 1 из 1
Как сервлеты переделать в Spring
    #39796075
fallen2019
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я сделал проект с помощью сервлетов, но надо его переделать на Spring с помощью @controller. Я книгу прочитал но не получается. Буду благодарен за помощь

MyServlet
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
package servlet;
 
import dao.DatabaseDAO;
import entity.Student;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
 
import static java.lang.Integer.parseInt;
 
import java.util.List;
 
public class MyServlet extends HttpServlet {
 
    private DatabaseDAO dao;
 
    @Override
    public void init() throws ServletException {
        dao = new DatabaseDAO();
    }
 
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
 
        String action = request.getParameter("actionname");
 
        if (action.equals("RemoveStudent")) {
            int id = parseInt(request.getParameter("id"));
            boolean deleted = dao.deleteStudentFromDB(id);
 
            String message;
            if (deleted) {
                message = "Студент удален.";
            } else {
                message = "Студент не существует";
            }
            request.setAttribute("message", message);
 
            List<Student> students = dao.readAllStudentsFromDB();
            request.setAttribute("students", students);
 
            request.getRequestDispatcher("ShowAllStudent.jsp").forward(request, response);
        }
 
        if (action.equals("ShowAllStudent")) {
            List<Student> students = dao.readAllStudentsFromDB();
            request.setAttribute("students", students);
            request.getRequestDispatcher("ShowAllStudent.jsp").forward(request, response);
        }
    }
 
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
 
        processRequest(request, response);
    }
 
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
 
        processRequest(request, response);
    }
}



AddStudentServlet

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package servlet;

import dao.DatabaseDAO;
import entity.Student;
import java.io.File;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;


@MultipartConfig(fileSizeThreshold = 1024 * 1024 * 2, // 2MB
        maxFileSize = 1024 * 1024 * 10, // 10MB
        maxRequestSize = 1024 * 1024 * 50)   // 50MB
public class AddStudentServlet extends HttpServlet {

    /**
     * Name of the directory where uploaded files will be saved, relative to the
     * web application directory.
     */
    private static final String SAVE_DIR = "images";

    private DatabaseDAO dao;

    @Override
    public void init() throws ServletException {
        dao = new DatabaseDAO();
    }

    /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
     * methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        // creates the save directory if it does not exists
        String savePath = "C:\\Pictures";
        File fileSaveDir = new File(savePath);
        if (!fileSaveDir.exists()) {
            fileSaveDir.mkdirs();
        }

        String name = request.getParameter("name");
        String surname = request.getParameter("surname");
        String fileName;

        for (Part part : request.getParts()) {
            String contentDisp = part.getHeader("content-disposition");
            String[] items = contentDisp.split(";");
            for (String item : items) {
                String ss = item.trim();
                if (ss.startsWith("filename")) {
                    try {
                        int id = dao.insertStudentIntoDB(name, surname);
                        fileName = String.valueOf(id);
                        String fileExt = ss.substring(ss.lastIndexOf("."), ss.length() - 1); // расширение включая точку
                        String fullPath = savePath + File.separator + fileName + fileExt;
                        part.write(fullPath);
                        dao.updateStudentImage(id, fullPath);
                        request.setAttribute("message", "Студент добавлен.");
                    } catch (IOException e) {
                        request.setAttribute("message", "Ошибка при добавлении студента!");
                    }
                }
            }
        }

        List<Student> students = dao.readAllStudentsFromDB();
        request.setAttribute("students", students);
        request.getRequestDispatcher("ShowAllStudent.jsp").forward(request, response);
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }
}



GetImage Servlet
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package servlet;

import dao.DatabaseDAO;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

   

public class GetImage extends HttpServlet {

    private DatabaseDAO dao;

    @Override
    public void init() throws ServletException {
        dao = new DatabaseDAO();
    }

    /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
     * methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        int id = Integer.parseInt(request.getParameter("id"));
        String fullPath = dao.readStudentImagePath(id);

        response.setContentType("image/jpeg");
        
        try (BufferedInputStream bin = new BufferedInputStream(new FileInputStream(fullPath));
                BufferedOutputStream bout = new BufferedOutputStream(response.getOutputStream())) {

            int ch = 0;
            while ((ch = bin.read()) != -1) {
                bout.write(ch);
            }
        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}
...
Рейтинг: 0 / 0
Как сервлеты переделать в Spring
    #39796096
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fallen2019,
А не надо переделывать.
Читаешь книгу и выполняешь там все примеры.
...
Рейтинг: 0 / 0
Как сервлеты переделать в Spring
    #39796242
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fallen2019но не получается
не получается - это не сообщение об ошибке. ты предлагаешь кому-нибудь портянку эту за тебя переписать или как ты себе представляешь, что дальше произойдет?
...
Рейтинг: 0 / 0
Как сервлеты переделать в Spring
    #39796346
betelgeizex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fallen2019,

Для начала, вынесите всю логику, не связанную непосредственно с сервлетом (работа с БД, запись/чтение файлов), в отдельный класс - Service Layer.
Сервлеты должны лишь обрабатывать request/response и вызывать методы сервиса.

А потом те же методы сервиса дергайте из контроллера. И все! )
...
Рейтинг: 0 / 0
Как сервлеты переделать в Spring
    #39796351
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
betelgeizex,
Но это и без спринга можно делать. В простых сервлетах.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как сервлеты переделать в Spring
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]