Avatar billede mikmakmuk Nybegynder
20. december 2002 - 21:21 Der er 7 kommentarer og
1 løsning

problem med servlet

Hej Alle eksperter :-)

Jeg sidder og arbejder på en servlet, men der syntes at ske ting jeg ikke helt forstår :-( Er der nogen som kan fortælle mig hvad jeg gør forkert? DB forbindelse virker som den skal. Det jeg ikke forstår er.
1. hvad er der galt med mit frameset.
2. Hvorfor gør den det som står i (!result)


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

public class Login extends HttpServlet
    {
   
          public void doPost (HttpServletRequest request,
                      HttpServletResponse response)
        throws ServletException, IOException
        {
        PrintWriter        out;
       
                   
        String        title = "Log in";

   
            response.setContentType("text/html");
           
           
            String res = request.getParameter ("navn");
            String res2 = request.getParameter ("pass");
                out = response.getWriter();
       
        Databaseforbindelsemysql d = new Databaseforbindelsemysql("jdbc:mysql:URL/DBNAVN?user=&password=","org.gjt.mm.mysql.Driver");
       
     
        try {
            /*
            ResultSet rs = sqltest.executeQuery("SELECT * FROM person"); */
           
            out.println("<HTML><HEAD><TITLE>");
            out.println(title);
            out.println("</TITLE></HEAD>");
           
           
            ResultSet rs = d.select("SELECT * FROM users");
            boolean result=false;
           
            while(rs.next()) {
           
               
                String navn = rs.getString(2);
                String pass = rs.getString(3);
                if(res.equals(navn) && res2.equals(pass))
                {
               
                    result=true;
                    HttpSession session = request.getSession(true);
                    Variabler va = new Variabler();
                   
                    va.setNavn(res);
                    va.setPassword(res2);
                    va.setNavfarve();
                   
                    session.setAttribute("navn",va);
                    session.setAttribute("password",va);
                    session.setAttribute("navfarve",va);

                   
                    System.out.println(session);
                }
            }
            if(result) {
           
                out.println("<FRAMESET border=0 frameSpacing=0 rows='130,*.*>");
                out.println("<FRAME name='nav' margin Width=0 marginHeight=0 src='Navi' frameBorder=NO noResize scrolling=no>");
                out.println("<FRAME name='cont' src='Start' frameBorder=NO noResize>");
                out.println("</FRAMESET>");
                out.println("</HTML>");
                d.close();
               
            }
           
            else if(!result)
                out.println("<body>");
                out.println("<form action='URL' method='get'>");
                out.println("<center><h1>Wrong username or password</h1>");
                out.println("<input type='submit' value='Try again'>");
                out.println("</center></form>");
                out.println("</body></html>");
                d.close();
           
           
            } catch (SQLException s) {
                out.println("<h3>SQL fejl: " + s.toString() + " "
                + s.getErrorCode() + " " + s.getSQLState() + "</h3>");
        }
       
            out.close();
        }
       
        public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
        {
        }
}
Avatar billede mikmakmuk Nybegynder
20. december 2002 - 21:24 #1
1. var bare en ' som manglede. Underligt at man har siddet og kigget på det i timer og så skriver man her inde og kan pludeselig se det :-)
Avatar billede mikmakmuk Nybegynder
20. december 2002 - 21:26 #2
men hvorfor søren skriver den
  else if(!result)
                out.println("<body>");
                out.println("<form action='URL' method='get'>");
                out.println("<center><h1>Wrong username or password</h1>");
                out.println("<input type='submit' value='Try again'>");
                out.println("</center></form>");
                out.println("</body></html>");
                d.close();
når result skulle være true ?
Avatar billede arne_v Ekspert
20. december 2002 - 21:30 #3
else if(!result)
                out.println("<body>");
                out.println("<form action='URL' method='get'>");
                out.println("<center><h1>Wrong username or password</h1>");
                out.println("<input type='submit' value='Try again'>");
                out.println("</center></form>");
                out.println("</body></html>");
                d.close();

Der er ingen {}, så din else gælder kun for 1 statement !

Resten udføres altid.
Avatar billede arne_v Ekspert
20. december 2002 - 21:31 #4
Du mener nok:

        else if(!result) {
                out.println("<body>");
                out.println("<form action='URL' method='get'>");
                out.println("<center><h1>Wrong username or password</h1>");
                out.println("<input type='submit' value='Try again'>");
                out.println("</center></form>");
                out.println("</body></html>");
                d.close();
      }
Avatar billede mikmakmuk Nybegynder
20. december 2002 - 21:34 #5
jeg prøver lige :-)
Avatar billede mikmakmuk Nybegynder
20. december 2002 - 21:37 #6
tak for det
Avatar billede arne_v Ekspert
20. december 2002 - 21:39 #7
Iøvrigt kunne du nøjes med:
  else {
i stedetfor:
  else if(!result) {
fordi !result er altid true hvsi result er false.

Det har ingen funktionel betydning og er kun for at gøre
koden pænere.
Avatar billede mikmakmuk Nybegynder
20. december 2002 - 21:42 #8
jeg er ingen ørn til at kode så tak for tippet
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