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>"); }
Annonceindlæg fra Computerworld it-jobbank
Mød 3.500+ it-talenter på IT-DAY 2026
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Hvad skulle formålet være ?
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
Så forstår jeg ikke at det ikke virker :-(
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)
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
Det kan jeg bare ikke lige se
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).
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> <% } %>
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
06. juni 2005 - 12:56
#13
Jeg kan jo se at det er her det går galt response.sendRedirect("./");
06. juni 2005 - 12:59
#14
Det bliver nok forslag 3 som jeg vil benytte
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("./"); }
06. juni 2005 - 17:48
#16
Faktisk vil jeg jo gerne have fat i den session som allerede er oprettet
06. juni 2005 - 18:03
#17
HttpSession session = request.getSession();
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å !
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 :-)
06. juni 2005 - 22:35
#20
den bør du også kunne få bare med session
06. september 2005 - 07:47
#21
Jeg rydder lidt op i gamle spørgsmål :-)
Kurser inden for grundlæggende programmering