Servlety - powrót do strony

0

Witam. Problem jest taki. Mam stronę jsp z galerią zdjęć. Każde zdjęcie w macierzy ma również przycisk DELETE, po którego kliknięciu usuwa się zdjęcie z bazy. Wszystko działa ok, tylko servlet, który wywołuję nie powraca do galerii, tylko wyświetla pustą biała stronę. HELP z servletami jestem świeży i nie bardzo wiem jak do tego podejść...

package tools;

import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class DelPhotoServlet extends  HttpServlet{
    
   int zdjecie_id;
   @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response) 
             throws ServletException, IOException{
        
        try{   
            DbSource dbSource = new DbSource();
            Connection conn = dbSource.getConnection();
            Statement st1 = conn.createStatement();
            String zdjecie_id = request.getParameter("zdjecie_id");
            ResultSet rs1 = st1.executeQuery("DELETE FROM public.zdjecie WHERE zdjecie_ID = " + zdjecie_id);
          
            st1.close();
            response.reset();
            
            response.getOutputStream().close();
            
            if(!conn.isClosed())
            {
                conn.close();
            }
       } catch (Exception e){
            e.printStackTrace();
        }
    }
}

</cpp>
0

response.reset();
response.getOutputStream().close();

W praktyce kasujesz odpowiedź serwera. Nie wypisujesz do odpowiedzi żadnych rezultatów, zatem przeglądarka wyświetla pustą stronę.

0

Wpisałem ten reset właśnie z myślą, żeby nic nie wyrzucać. Chcę tylko usunąć zdjęcie z bazy, ale nie chcę przechodzić do innej strony,...

0

Rzecz w tym, że HTTP jest protokołem bezstanowym i ani serwer ani przeglądarka nie wiedzą jaka strona była poprzednia. Musisz zatem od nowa wygenerować stronę na którą chcesz przejść.

0

Po wykonaniu akcji przekieruj użytkownika z powrotem do galerii:

http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html#getRequestDispatcher%28java.lang.String%29

Powiedzmy, że galeria jest photoGallery.jsp

package tools;

import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class DelPhotoServlet extends  HttpServlet{
   
   int zdjecie_id;
   @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response)
             throws ServletException, IOException{
       
        try{   
            DbSource dbSource = new DbSource();
            Connection conn = dbSource.getConnection();
            try{
                  Statement st1 = conn.createStatement();
                  String zdjecie_id = request.getParameter("zdjecie_id");
                  ResultSet rs1 = st1.executeQuery("DELETE FROM public.zdjecie WHERE zdjecie_ID = " + zdjecie_id);
         
                  st1.close();
           } finally{            
                conn.close();
            }
            request.getRequestDispatcher("photoGallery.jsp").forward(request, response);	 //przekierowanie do photoGallery.jsp
       } catch (Exception e){
            throw new ServletException(e); //lepszy pomysł niż tylko wypisywanie na stdout
        }
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1