Archief - [PROG] Crash course web applicaties mbv JSP & Servlets? - goede IDE?

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

.Acku.

Legacy Member
PS: let ook op case-sensitivity, al zal dat misschien geen probleem zijn bij URL params, voor vele andere zaken wel

Good luck ;) Blij dat ik niet met pure JSP moet werken

eniac

Legacy Member
Ook gezien dat mijn loggedin var niet case-consequent was, dat heb ik al aangepast.

Als er nog problemen komen... Jullie zullen het hier wel merken ;)

eniac

Legacy Member
Nog eentje zie: hoe een href laten verwijzen naar functionaliteit in een servlet of klasse?

Bvb een logoutlink maken of een link die een bepaald artikel moet verwijderen (met als argument dan artikelID ofzo).

.Acku.

Legacy Member
Je verwijst naar de servlet en filtered dan de actie uit parameters die je meegeeft. Of je maakt een servlet per actie en geeft enkel de id als actie bvb:

/mainServlet?action=delete&id=1254
if (getParamater.equals("delete") blabla
of
/deleteServlet?id=1254

Allez ja, dat is de eenvoudige manier

Bubbling Zombie

Legacy Member
goh, goei vraag. ben ook zojuist begonnen met jsp, dus .acku. ofzo, correct me if i'm wrong

voorbeeld: artikel.jsp?artikel=banaan

en dan via de doGet methode er iets mee doen

.Acku.

Legacy Member
Bubbling Zombie zei:
goh, goei vraag. ben ook zojuist begonnen met jsp, dus .acku. ofzo, correct me if i'm wrong

voorbeeld: artikel.jsp&artikel=banaan

en dan via de doGet methode er iets mee doen

Een ganse nacht en halve dag erbij om te antwoorden, en dan dat op exact hetzelfde moment doen ;)

eniac

Legacy Member
Bon, zo ongeveer 1 van de laatste vraagjes denk ik.

Ik werk met een attribuut "pagemode" in de sessie die bijhoudt welke includes er moeten gebruiken. Ik werk dus altijd in de pagina index.jsp. Als pagemode dan 1 is, include ik bvb articles.jsp ; als pagemode 2 is include ik addarticle.jsp, etc.

Nu, die pagemodes zouden moeten veranderen als ik op een link binnen de pagina klik.
Bijvoorbeeld, als ik in pagemode 1 zit en ik klik op een link "artikel toevoegen" zou ik moeten opnieuw de index.jsp zien, maar zou pagemode 2 moeten zijn en bijgevolg index.jsp er anders uitzien.

Hoe gaat dit dan?

eniac

Legacy Member
Ik heb het voorlopig opgelost door de link te laten verwijzen naar een PageModeServlet die dan de gewenste parameter aan de sessie toevoegt, maar ik heb zo het idee dat dat nogal vuil en omslachtig programmeren is... Of kan het niet anders?

En dan nog een vraagje: als ik een servlet gebruik en die linkt terug naar de index.jsp ofzo, dan krijg ik in het adresveld van m'n browser http://localhost:8084/appnaam/ServletNaam
ipv de gewenste
http://localhost:8084/appnaam/index.jsp

Is dit normaal?

Is er tenslotte ook een mogelijkheid om hrefs die verwijzen naar een servlet, indirect te laten verwijzen ofzo? Zodat uit de link niet meer op te maken valt waar de servlets zitten en hoe die heten?

Ollie

Legacy Member
eniac zei:
Ik heb het voorlopig opgelost door de link te laten verwijzen naar een PageModeServlet die dan de gewenste parameter aan de sessie toevoegt, maar ik heb zo het idee dat dat nogal vuil en omslachtig programmeren is... Of kan het niet anders?

Waarom articles.jsp includen in index.jsp en niet gewoon redirecten/forwarden naar die pagina?

eniac zei:
En dan nog een vraagje: als ik een servlet gebruik en die linkt terug naar de index.jsp ofzo, dan krijg ik in het adresveld van m'n browser http://localhost:8084/appnaam/ServletNaam
ipv de gewenste
http://localhost:8084/appnaam/index.jsp

Is dit normaal?

Je doet een forward in de servlet ipv een redirect. Een forward gebeurt aan de serverkant dus kan je brower niet weten dat er een andere pagina werd aangevraagd. Gebruik response.sendRedirect("index.jsp") ;

eniac zei:
Is er tenslotte ook een mogelijkheid om hrefs die verwijzen naar een servlet, indirect te laten verwijzen ofzo? Zodat uit de link niet meer op te maken valt waar de servlets zitten en hoe die heten?

Ja, in de web.xml moet je in de servlet-mapping sectie een url-pattern meegeven. Bvb:

Code:
<servlet>
   <servlet-name>AddArticleServlet</servlet-name>
   <servlet-class>mywebapp.controller.AddArticleServlet</servlet-class>
</servlet>

<servlet-mapping>
   <servlet-name>AddArticleServlet</servlet-name>
   <url-pattern>/AddArticle</url-pattern>
</servlet-mapping>

Maar dit is vrij standaard dus ik weet niet of je dit wel bedoelt. Wat je ook kunt doen is alle requests laten toekomen bij één servlet (de dispatcher) en een hidden parameter "action" meegeven in elke request. Aan de hand van die action waarde forward de dispatcher het request naar de juiste servlet.

eniac

Legacy Member
Ollie zei:
Waarom articles.jsp includen in index.jsp en niet gewoon redirecten/forwarden naar die pagina?

Wel, omdat bepaalde delen van de pagina steeds hetzelfde blijven. Index.jsp gaat dan afhankelijk van de pagemode bepaalde variabele delen includen.

Je doet een forward in de servlet ipv een redirect. Een forward gebeurt aan de serverkant dus kan je brower niet weten dat er een andere pagina werd aangevraagd. Gebruik response.sendRedirect("index.jsp") ;

Okee bedankt, ga ik vanavond proberen.



Ja, in de web.xml moet je in de servlet-mapping sectie een url-pattern meegeven. Bvb:
Maar dit is vrij standaard dus ik weet niet of je dit wel bedoelt.

Het gaat erom dat de gebruiker niet zomaar een URL van de Servlet kan intikken om zelf functies aan te roepen. Ik valideer telkens wel in m'n Servlets, maar wat extra veiligheid lijkt me geen kwaad te kunnen :)

Wat je ook kunt doen is alle requests laten toekomen bij één servlet (de dispatcher) en een hidden parameter "action" meegeven in elke request. Aan de hand van die action waarde forward de dispatcher het request naar de juiste servlet.

Kan ik ook eens mee experimenteren. Bedankt.

Ollie

Legacy Member
eniac zei:
Wel, omdat bepaalde delen van de pagina steeds hetzelfde blijven. Index.jsp gaat dan afhankelijk van de pagemode bepaalde variabele delen includen.

Als je de stukken die hetzelfde blijven nu eens in afzonderlijke jsp's zet en die include in de articles.jsp en alle andere jsp's die ze nodig hebben.

eniac

Legacy Member
Ollie zei:
Als je de stukken die hetzelfde blijven nu eens in afzonderlijke jsp's zet en die include in de articles.jsp en alle andere jsp's die ze nodig hebben.

That's another way of working... Maar het lijkt me niet echt concrete voordelen te hebben?

Nu bouw ik een skelet in index.jsp en vul op naarmate ik andere jsp's nodig heb, in jouw geval zou ik in elke andere jsp het skelet bouwen en daar dan de vaste jsp's insteken. Het lijkt me meer codeerwerk?

Ollie

Legacy Member
eniac zei:
That's another way of working... Maar het lijkt me niet echt concrete voordelen te hebben?

Nu bouw ik een skelet in index.jsp en vul op naarmate ik andere jsp's nodig heb, in jouw geval zou ik in elke andere jsp het skelet bouwen en daar dan de vaste jsp's insteken. Het lijkt me meer codeerwerk?

Het skelet is in "mijn" geval ook altijd hetzelfde en hoeft slechts gekopieerd te worden (het zou toch echt maar om enkele lijnen mogen gaan). Het voordeel is dat je geen code moet schrijven om het juiste jsp fragment te openen in die index.jsp en je kan rechtstreeks naar die pagina's surfen ipv door een hele flow te gaan (mocht dat toegelaten zijn natuurlijk).

Komt er nog bij dat er in uw geval logica in de jsp moet zitten om het juiste jsp fragment te openen en dat is strict genomen verboten in jsp's.

EDIT: ik zou je aanraden om eens wat informatie op te zoeken over het Struts/Tiles framework.

eniac

Legacy Member
Geen tijd meer om informatie op te zoeken, deadline ligt op dinsdag ;)

Bedankt voor de hulp, als ik nog eens een dergelijk projectje heb zal ik die informatie grondig bekijken.

Dat er geen logica in de jsp's mag zitten wist ik trouwens niet...

Bubbling Zombie

Legacy Member
Ahja, ik weet niet goed waar ik het moet posten, dus doe ik het hier maar. Op de sunsite (http://java.sun.com) kan je gratis und voor niks (na registratie in SDN, wat gratis is en vrij handig) Java studio creator, Java studio enterprise en Sun Studio kan downloaden.

't is maar dat je't weet :D
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan