Avatar billede jonas82 Nybegynder
14. maj 2006 - 18:31 Der er 7 kommentarer og
1 løsning

Force bruger gennem index.jsp

Har lige 2 spørgsmål:

1)
Kan jeg gøre sådan at man ikke kan komme direkte på andre jsp sider end index.jsp? Altså hvis man skriver domæne.dk/fil.jsp bliver man smidt på domæne.dk/index.jsp i stedet. Nok noget med web.xml? Bruger tomcat.

2)
Hvordan redirecter jeg til en ny side?
<jsp:forward page="?side=test" /> virker umiddelbart, men url´en i browseren ændres ikke.

response.sendRedirect("?side=test") virker slet ikke. Ingen fejl eller noget - der sker bare ingenting.
Avatar billede arne_v Ekspert
14. maj 2006 - 21:57 #1
re 1)

du må sætte noget i session i index.jsp og teste på om det er der i de
andre sider og redirecte til index.jsp hvis det mangler

hvis det er et login system du er ved at lave så kan du angive i
web.xml en login form side som alle henvises til hvis de ikke
er logget ind og serveren sørger selv for redirecte dem til den oprindeligt
ønskede side og du behøver heller ikke skrive noget validerings
kode, men kan nøjes med at konfigurere det i Tomcat server.xml hvilken
database tabel den skal validere bruger i
Avatar billede arne_v Ekspert
14. maj 2006 - 21:58 #2
re 2)

forward er en intern på server transfer og derfor ændres URL ikke

redirect er en rigtig redirect via browser og derfor ændres URL

du skal nok redirecte til index.jsp?side=test for at det virker
Avatar billede jonas82 Nybegynder
14. maj 2006 - 22:04 #3
1) Ok jeg må beskytte dem med noget session.
2) index.jsp?side=test gør ingen forskel. Den ignorerer redirect.
Avatar billede arne_v Ekspert
14. maj 2006 - 22:06 #4
hvordan kan den ignorere den ?

husk på at hvis du har sendt noget output så er det for sent at redirecte !
Avatar billede jonas82 Nybegynder
14. maj 2006 - 22:12 #5
Jeg mener ignorer som i jeg ikke får en fejl. Der sker bare ikke noget.

Jeg har ikke sendt noget output. Jeg har dog hentet et Bruger objekt fra session - ved ikke om det tæller som output?

Ellers ser det sådan ud hvor jsp:forward virker, men vil jo gerne have urlen ændrer sig :)

if(bruger != null) {
    //response.sendRedirect("index.jsp?side=test");
%><jsp:forward page="?side=test" /><%
}
Avatar billede arne_v Ekspert
14. maj 2006 - 22:26 #6
mystisk - jeg har brugt response.sendRedirect i JSP uden problemer
Avatar billede jonas82 Nybegynder
15. maj 2006 - 21:45 #7
Sært, så må jeg lave en fejl et sted :) Men du må gerne svare alligevel. Tak
Avatar billede arne_v Ekspert
16. maj 2006 - 02:49 #8
en simpel redirect.jsp som virker:

<%
if(request.getParameter("p") == null) {
    response.sendRedirect("redirect.jsp?p=0");
}
%>

og et svar
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