Вывод изображения (Java Servlet + MySQL)
#39785658
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
|
|
|
Я написала программу которая добавляет фио студента с его изображением которая хранится в web/images. Как можно сделать так, чтобы он брал изображения с локального диска компьютера и давал каждому новому изображению id.
Вот мой код
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);
}
}
Add Student Servlet
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);
}
}
DAO database
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.
package dao;
import entity.Student;
import java.sql.*;
import java.util.ArrayList;
public class DatabaseDAO {
private static final String URL = "jdbc:mysql://localhost:3306/school_db_newnew?useTimezone=true&serverTimezone=GMT";
private static final String USER = "root";
private static final String PASSWORD = "123456";
private static final String GET_ALL_STUDENTS_QUERY
= "SELECT * FROM student;";
private static final String INSERT_STUDENT_QUERY
= "INSERT INTO student (name, surname, image) VALUES(?,?,?);";
public static final String DELETE_STUDENT_QUERY = "DELETE FROM student WHERE id = ?;";
private Connection conn;
public DatabaseDAO() {
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (SQLException | ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
public ArrayList<Student> readAllStudentsFromDB() {
ArrayList<Student> result = new ArrayList<>();
try (PreparedStatement stmt = conn.prepareStatement(GET_ALL_STUDENTS_QUERY)) {
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
int id = rs.getInt("id");
String firstName = rs.getString("name");
String lastName = rs.getString("surname");
String image = rs.getString("image");
Student student = new Student(firstName, lastName);
student.setId(id);
student.setImage(image);
result.add(student);
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
return result;
}
public void insertStudentIntoDB(String name, String surname, String filename) {
try (PreparedStatement stmt
= conn.prepareStatement(INSERT_STUDENT_QUERY, Statement.RETURN_GENERATED_KEYS)) {
stmt.setString(1, name);
stmt.setString(2, surname);
stmt.setString(3, filename);
stmt.executeUpdate();
ResultSet keys = stmt.getGeneratedKeys();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public boolean deleteStudentFromDB(int id) {
try (PreparedStatement stmt = conn.prepareStatement(DELETE_STUDENT_QUERY)) {
stmt.setInt(1, id);
int rowsDeleted = stmt.executeUpdate();
return rowsDeleted > 0;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
|
|