Avatar billede miver40 Nybegynder
13. september 2011 - 12:11 Der er 11 kommentarer og
1 løsning

Tidlig kørsel af servlet

Hej Alle. Der er noget omkring virkemåden af servletten som jeg ikke helt forstår.

når jeg på min webside trykker på noget, så vil jeg eksekvere denne metode:


<script type="text/javascript">
function getblog()           

{
document.getElementById("area42").innerHTML="blogblogblog";
document.getElementById("area43").innerHTML="<%

RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/ServletCall");
request.setAttribute("state", "offline");
dispatcher.include(request,response);

%>";
}
</script>


men den servlet som der skal kaldes ved tryk, den kaldes allerede så snart at jeg åbner websiden og det servletten sender tilbage placerer sig ikke i "area43" tagget.

Altså den eksekverer koden til servletten før at jeg vil have den til den, kan nogen fortælle mig hvorfor ?
Avatar billede arne_v Ekspert
13. september 2011 - 14:28 #1
Servletten koeres server side i forbindelse med at JS output genereres til browser.

Du skal bruge AJAX (XmlHttpRequest) og lade den kalde servlet.
Avatar billede miver40 Nybegynder
13. september 2011 - 14:46 #2
Selvfølgelig. Det giver god mening nu du siger det. Det er derfor at der bliver genereret en komplet html side i det eksempel jeg har fået kald af servlet koden fra.

tusind tak. du kan lige give et svar
Avatar billede arne_v Ekspert
13. september 2011 - 16:41 #3
svar
Avatar billede arne_v Ekspert
14. september 2011 - 01:52 #4
Bemaerk at der findes visse AJAX libs til java web apps som goer det nemmer at lave den slags.

Rigtigt meget til JSF, men ogsa enkelte til simpel JSP.
Avatar billede miver40 Nybegynder
14. september 2011 - 13:35 #5
Jo tusind tak Arne. Men jeg fik på ingen tid sat et Ajax kald op. Servletten er defineret i web.xml, så url'en Ajax kaldet bruger, var bare servlettens navn i web.xml. Og i sevletten blev doGet metoden automatisk kaldt.

Har meget lidt kendskab til JSF, er det noget man bør sætte sig ind i ?
Avatar billede arne_v Ekspert
15. september 2011 - 01:10 #6
Hvis du kender AJAX, saa er dt jo ikke svaert at lave i haanden.
Avatar billede arne_v Ekspert
15. september 2011 - 01:11 #7
JSF er vel den officielle maade at lave Java web apps paa idag.

Lidt kompliceret men ogsaa ret kraftfuldt.
Avatar billede arne_v Ekspert
15. september 2011 - 01:12 #8
Hvis du goer meget i AJAX kan du ogsa kigge paa JAX-RS som goer det nemt at returnere data til JS i XML eller JSON.
Avatar billede miver40 Nybegynder
16. september 2011 - 20:57 #9
Okay tak. Indtil videre bliver hverken JSON eller XML nødvendigt. Men vil prøve at kigge på JSF, det lyder interessant.

For eksempel så er jquery nyt for mig og er blevet overrasket hvor nemt det får tingene til at virke. Hvorimod opsætningen af en servlet med tilhørende xml-fil virker meget gammeldags. Det kan nok ikke helt sammenlignes, men synes stadig at man føler, at man springer en nogle trin over ved fx at bruge jquery. Så nyere teknologier er jeg åben for
Avatar billede arne_v Ekspert
17. september 2011 - 23:23 #10
Hvis du er til det simple, saa er JSF nok ikke noget for dig.

JSF bestaar af:
- managed beans
- UI komponenter
- 2 valg muligheder for view teknologi: JSP og Facelet
- et ret komplekst flow
Avatar billede arne_v Ekspert
17. september 2011 - 23:24 #11
Dem der vil lave simple web apps i Java vaelger frameworks som Wicket og Grails.
Avatar billede arne_v Ekspert
17. september 2011 - 23:44 #12
Hvis du bare er traet af web.xml, saa er den ikke laengere noedvendig i Java EE 6 & Servlet 3.0.

package test;

import java.io.IOException;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(name="NewServlet",urlPatterns={"/NewServlet"})
public class NewServlet extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        resp.getWriter().println("It works");
    }
}

klarer det uden web.xml!
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