Avatar billede decrypto Nybegynder
10. december 2003 - 22:54 Der er 29 kommentarer og
1 løsning

Redirect i java

Hejsa hvordan redirecter man brugeren til en anden side??

Jeg har prøvet med :
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/servlet/reserved/?show_id="+EventShowId+"&phone="+PhoneNr+"");
        //dispatcher.forward(req, res);

Men som I kan se 1. får jeg ikke mine variabler med. 2. urlen skifter heller ikke? Den side jeg sidder med skal nemlig ikke kunne ses af en bruger, men være en funktionel side.

Jeg har også prøvet med:
response.sendRedirect("/servlet/reserved/?show_id="+EventShowId+"&phone="+PhoneNr+"");
men den virker heller ikke. Jeg ved ikke om jeg skal importere noget for at få den til at virke.

Er der nogen hjælp derude?
Avatar billede arne_v Ekspert
10. december 2003 - 22:58 #1
response.sendRedirect skal virke !
Avatar billede decrypto Nybegynder
10. december 2003 - 22:59 #2
Så er det fordi jeg ikke kan sende variabler med. ---> Jeg burde være taknemmelig for din hjælp. Du har hjulpet mig tidligere med SQL igår og idag.
:o)
Avatar billede arne_v Ekspert
10. december 2003 - 23:00 #3
Et gæt på problemet kunne være at du redirecter til noget der
ender i / og måske går det galt når det skal oversættes til noget
andet.

Prøv evt.:

Response.sendRedirect("/servlet/reserved/index.jsp?show_id="+EventShowId+"&phone="+PhoneNr);
Response.sendRedirect("/servlet/reserved/IndexServlet?show_id="+EventShowId+"&phone="+PhoneNr);
Avatar billede decrypto Nybegynder
10. december 2003 - 23:00 #4
Jeg sidder normalt og koder ASP. Java er meget nyt for mig men interessant.
Avatar billede decrypto Nybegynder
10. december 2003 - 23:01 #5
jo men jeg arbejder ikke med JSP. Jeg har ingen jsp filer. jeg kan prøve at redirecte til en ekstern sted først....
Avatar billede arne_v Ekspert
10. december 2003 - 23:02 #6
Response.sendRedirect("/servlet/reserved/index.asp?show_id="+EventShowId+"&phone="+PhoneNr);
Avatar billede arne_v Ekspert
10. december 2003 - 23:02 #7
Men kører du den kode i en servlet eller hvordan ?
Avatar billede arne_v Ekspert
10. december 2003 - 23:03 #8
Jeg har lavet sendRedirect med parametre masser af gange.
Avatar billede decrypto Nybegynder
10. december 2003 - 23:03 #9
Jeg har osgå problemer med min if statement kan man ikke spørge om et resulset(rs) er null?

      Statement stmt = con.createStatement();
      ResultSet rs;

      rs = stmt.executeQuery("SELECT EVENTSHOW_ID, SEAT_ID, STATUS_ID, CUSTOMER_PHONE FROM seat_reservation WHERE EVENTSHOW_ID = "+EventShowId+" AND SEAT_ID="+SeatId+"");
      ResultSetMetaData meta = rs.getMetaData();

      if(rs.next()) {
        //out.println("This seat is reserved<br>");
        response.sendRedirect("/servlet/reservation/");
        response.sendRedirect("http://www.hotmail.com");
        //RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/servlet/reservation/");
        //dispatcher.forward( req, res);
      }
      else{
        rs = stmt.executeQuery("INSERT INTO seat_reservation VALUES ("+EventShowId+","+SeatId+",1,"+PhoneNr+")");
        //response.sendRedirect("/servlet/reserved/?show_id="+EventShowId+"&phone="+PhoneNr+"");
        response.sendRedirect("http://www.fasil.dk");
        //RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/servlet/reserved/?show_id="+EventShowId+"&phone="+PhoneNr+"");
        //dispatcher.forward(req, res);       
      }

   
      stmt.close();
      con.close();
Avatar billede decrypto Nybegynder
10. december 2003 - 23:03 #10
Ja i en servlet
Avatar billede decrypto Nybegynder
10. december 2003 - 23:05 #11
response.sendRedirect giver fejlen
cannot resolve symbol
Avatar billede decrypto Nybegynder
10. december 2003 - 23:06 #12
Håber det ikke er begyndt at blive for kryptisk
Avatar billede arne_v Ekspert
10. december 2003 - 23:07 #13
Hedder andet argument til doGet/doPost faktisk response ?
Avatar billede arne_v Ekspert
10. december 2003 - 23:08 #14
rs = stmt.executeQuery("INSERT INTO seat_reservation VALUES ("+EventShowId+","+SeatId+",1,"+PhoneNr+")");

skal nok være:

stmt.executeUpdate("INSERT INTO seat_reservation VALUES ("+EventShowId+","+SeatId+",1,"+PhoneNr+")");
Avatar billede decrypto Nybegynder
10. december 2003 - 23:09 #15
Ander det ikke...
Avatar billede arne_v Ekspert
10. december 2003 - 23:10 #16
rs.next() returnerer true hvis der er records eller false, så din
if else er god nok.

I tilfælde af SQL syntax fejl får du en SQLException.
Avatar billede arne_v Ekspert
10. december 2003 - 23:10 #17
Kan du ikke poste hele metoden eller ihvetfald metode erklæringen
hvori ovenstående kode er ?
Avatar billede decrypto Nybegynder
10. december 2003 - 23:11 #18
Værsgo'
Avatar billede decrypto Nybegynder
10. december 2003 - 23:12 #19
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

public class reserve extends HttpServlet{
  public void doGet(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException{

      String username = "XXXXXXX";
    String password = "XXXXXXX";
    String url = "jdbc:mysql://mysql.xxx.dk/";

    int EventShowId = 1;
    //String SeatId = "B28;B26;B24" Dont delete this
    int SeatId = 57;
    int PhoneNr = 25853309;

    ServletOutputStream out = res.getOutputStream();


    //res.setContentType("text/html");

    try{

      Class.forName("org.gjt.mm.mysql.Driver");//.newInstance();


      Connection con = DriverManager.getConnection(url, username, password);

      Statement stmt = con.createStatement();
      ResultSet rs;

      rs = stmt.executeQuery("SELECT EVENTSHOW_ID, SEAT_ID, STATUS_ID, CUSTOMER_PHONE FROM seat_reservation WHERE EVENTSHOW_ID = "+EventShowId+" AND SEAT_ID="+SeatId+"");
      ResultSetMetaData meta = rs.getMetaData();

      if(rs.next()) {
        //out.println("This seat is reserved<br>");
        response.sendRedirect("/servlet/reservation/");
        response.sendRedirect("http://www.hotmail.com");
        //RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/servlet/reservation/");
        //dispatcher.forward( req, res);
      }
      else{
        rs = stmt.executeQuery("INSERT INTO seat_reservation VALUES ("+EventShowId+","+SeatId+",1,"+PhoneNr+")");
        //response.sendRedirect("/servlet/reserved/?show_id="+EventShowId+"&phone="+PhoneNr+"");
        response.sendRedirect("http://www.fasil.dk");
        //RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/servlet/reserved/?show_id="+EventShowId+"&phone="+PhoneNr+"");
        //dispatcher.forward(req, res);       
      }

   
      stmt.close();
      con.close();
    }
    catch(Exception e)
      {out.println(e.getMessage());
      }
  }
}
Avatar billede arne_v Ekspert
10. december 2003 - 23:15 #20
Dit andet argument hedder res, så:

res.sendRedirect
Avatar billede decrypto Nybegynder
10. december 2003 - 23:16 #21
prøver...
Avatar billede decrypto Nybegynder
10. december 2003 - 23:16 #22
hmmm hvordan er det lige det skal stå?
Avatar billede decrypto Nybegynder
10. december 2003 - 23:17 #23
JUhu
Avatar billede decrypto Nybegynder
10. december 2003 - 23:17 #24
Det funger... Prøver lige det andet
Avatar billede decrypto Nybegynder
10. december 2003 - 23:19 #25
hmmm det fungerede til eksterne men til ->
res.sendRedirect("/servlet/reservation/"); :(
Avatar billede decrypto Nybegynder
10. december 2003 - 23:19 #26
vent jeg kom lige i tanke om....
Avatar billede decrypto Nybegynder
10. december 2003 - 23:23 #27
Det funker nu. min url var ikke hel rigtigt.
Avatar billede arne_v Ekspert
10. december 2003 - 23:25 #28
:-)
Avatar billede decrypto Nybegynder
10. december 2003 - 23:27 #29
Jeg stiller dig nok flere spørgsmål imorgen. :o)
Avatar billede arne_v Ekspert
10. december 2003 - 23:29 #30
Servlets og JDBC er jeg på hjemmebane  !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester