Avatar billede mik28 Seniormester
06. juni 2005 - 12:19 Der er 20 kommentarer og
1 løsning

try catch

Kan man ikke have en try catch i en try catch ?

try {

try {

} catch (SQLException s) {
            System.out.println("<h3>Start.jsp SQL fejl: " + s.toString() + " "
            + s.getErrorCode() + " " + s.getSQLState() + "</h3>");
        }
} catch (SQLException s) {
            System.out.println("<h3>Start.jsp SQL fejl: " + s.toString() + " "
            + s.getErrorCode() + " " + s.getSQLState() + "</h3>");
        }
Avatar billede erikjacobsen Ekspert
06. juni 2005 - 12:23 #1
Hvad skulle formålet være ?
Avatar billede mik28 Seniormester
06. juni 2005 - 12:25 #2
Det er fordi at jeg først skal finde ud af om en fil skal includes. I den fil ligger et databasecheck (login) som også indeholder en try catch
Avatar billede arne_v Ekspert
06. juni 2005 - 12:28 #3
det kan du sagtens
Avatar billede mik28 Seniormester
06. juni 2005 - 12:32 #4
Så forstår jeg ikke at det ikke virker :-(
Avatar billede arne_v Ekspert
06. juni 2005 - 12:34 #5
hvilken fejl får du ?
Avatar billede mik28 Seniormester
06. juni 2005 - 12:39 #6
java.lang.IllegalStateException
    org.apache.coyote.tomcat5.CoyoteResponseFacade.sendRedirect(CoyoteResponseFacade.java:352)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:137)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
Avatar billede arne_v Ekspert
06. juni 2005 - 12:45 #7
det plejer at betyde at du har outputtet noget til browseren inden du laver
redirect

og det må man ikke

det har intet med try catch at gøre
Avatar billede mik28 Seniormester
06. juni 2005 - 12:48 #8
okay :-)
Avatar billede mik28 Seniormester
06. juni 2005 - 12:49 #9
Det kan jeg bare ikke lige se
Avatar billede arne_v Ekspert
06. juni 2005 - 12:50 #10
JSP sider har meget nemt ved at outputte noget inden man er kommet langt
i sin logik.

Prøv selv og check den genererede java kode i Tomcat's temp dir (hvis du bruger Tomcat).
Avatar billede mik28 Seniormester
06. juni 2005 - 12:51 #11
Det er når jeg trykker på knappen login at det går galt

<%
if (request.getParameter("login")!=null && request.getParameter("login").equals("login")){

        String user      = request.getParameter ("user");
        String pass      = request.getParameter ("pass");
       
            try {
       
           
            Vector vilogin = new Vector();
            vilogin.addElement(user);
            vilogin.addElement(pass);
           
            ResultSet rslogin    = d.select("SQL", vilogin);
 
         
    //hvis brugeren findes i databasen
           
            if(rslogin.next()){
           
            session.setMaxInactiveInterval(600);
            session.setAttribute("name", user);
            session.setAttribute("loggetind", session.getId().toString());
           
            response.sendRedirect("./");
            }
       
            //hvis brugeren ikke findes
            else
            {
            response.sendRedirect("./modules/errors/error.jsp?error=Wrong username or password");       
        }
           
        } catch (SQLException s) {
            System.out.println("<h3>Start.jsp SQL fejl: " + s.toString() + " "
            + s.getErrorCode() + " " + s.getSQLState() + "</h3>");
        }
} //if slut

%>

<!-- test om sessionvariablen loggetind er sat for at afgøre om brugeren er logget ind -->
<%       
String loggetind = (String)session.getAttribute("loggetind");
    if (loggetind==null || !loggetind.equals(session.getId().toString()) ){
    %>
    <table style="border:ridge;border-width:thin;height:100px;width:175px;">

    <tr>
    <td style="text-align:center">Login</td>
    </tr>

    <tr>
    <td>
    <form method="post" name="form" action="./">
    <input type="hidden" name="login" value="" />   
    <table>
    <tr><td>User</td><td><input type="text" name="user" value="" size="10"></td></tr>
    <tr><td>Pass</td><td><input type="password" name="pass" value="" size="10"></td></tr>
    <tr><td colspan="2" style="text-align:right;">
    <button type="submit" name="loginknap" onclick="this.form.login.value='login';">Login</button>
    </td></tr>
    </form>
    </table>
    </td></tr>
    </table>
    <%
    }
    else
    {
    %>
    <table style="border:ridge;border-width:thin;height:100px;width:175px;">
    <tr><td style="text-align:center;">
    Welcome <%= (String)session.getAttribute("name") %>
    </td></tr>
    </table>

    <%
    }
%>
Avatar billede arne_v Ekspert
06. juni 2005 - 12:52 #12
ideer til alternativer:

1)  bruger container managed security

2)  brug et filter til at styre security

3)  request servlet og lad den forwarde til den ene eller den anden JSP side
Avatar billede mik28 Seniormester
06. juni 2005 - 12:56 #13
Jeg kan jo se at det er her det går galt

response.sendRedirect("./");
Avatar billede mik28 Seniormester
06. juni 2005 - 12:59 #14
Det bliver nok forslag 3 som jeg vil benytte
Avatar billede mik28 Seniormester
06. juni 2005 - 17:16 #15
Jeg har nu lavet en servlet som afgører om en bruger er gyldig. Jeg vil jo i den forbindelse gerne sætte nogle sessionvariable, men hvordan gør jeg det?

        //hvis brugeren findes i databasen
           
            if(rslogin.next()){
           
    //        session.setMaxInactiveInterval(600);
    //        session.setAttribute("name", user);
    //        session.setAttribute("loggetind", session.getId().toString());
           
            response.sendRedirect("./");
            }
Avatar billede mik28 Seniormester
06. juni 2005 - 17:48 #16
Faktisk vil jeg jo gerne have fat i den session som allerede er oprettet
Avatar billede mik28 Seniormester
06. juni 2005 - 18:03 #17
HttpSession session = request.getSession();
Avatar billede arne_v Ekspert
06. juni 2005 - 18:05 #18
Hvis det er JSP kan du bare bruge session - den sørger JSP selv for at holde styr på !
Avatar billede mik28 Seniormester
06. juni 2005 - 22:25 #19
Jeg ville have den session som bliver oprettet automatisk over i en servlet, så jeg i forbindelse med at en bruger bliver valideret op imod databasen også kan sætte nogle sessionvariable. Det var såmendt det hele. HttpSession session = request.getSession(); syntes at klare tricket :-)
Avatar billede arne_v Ekspert
06. juni 2005 - 22:35 #20
den bør du også kunne få bare med session
Avatar billede mik28 Seniormester
06. september 2005 - 07:47 #21
Jeg rydder lidt op i gamle spørgsmål :-)
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