Avatar billede noerdar-dilling Nybegynder
16. november 2004 - 20:53 Der er 37 kommentarer og
1 løsning

udregnet data fra servlet til specefik jsp side

Jeg ville høre om der er nogle der kan fortælle mig hvordan jeg kan sende et response fra en servlet til en specefik jsp side der skal vise det normale visuelle design, samt den dynamiske data fra servletten.

Jeg ved godt man kan skrive out.println(variabel);

Men øsnekr at sende data til en jsp side der i forvejen er formateret men kun magler de data der kommer fra servletten.

Håber der nogle der forstå min problemstilling.

Har alle mine funktioner i mine servlets og ønsker at sende dem til specefikke jsp sider.

Hilsen Christian
Avatar billede noerdar-dilling Nybegynder
16. november 2004 - 20:56 #1
Man kunne muligvis lave en bean af servletten efter den er kørt og herefter inkluderer den i sin jsp side med usebean actionen, men det ved jeg heller ikke lig ehvordan man klarer.
Avatar billede arne_v Ekspert
16. november 2004 - 20:56 #2
Jeg vil mene at en rimelig standard måde at gøre det på er i servletten at gemme data
i request objektet og så lave en forward til JSP siden.
Avatar billede arne_v Ekspert
16. november 2004 - 20:57 #3
Avatar billede noerdar-dilling Nybegynder
16. november 2004 - 21:00 #4
ok vent lige kigger lige på det
Avatar billede arne_v Ekspert
16. november 2004 - 21:01 #5
Avatar billede noerdar-dilling Nybegynder
16. november 2004 - 21:02 #6
laver man servletten om til en bean? Jeg smutter i seng men håber vi lige kan tales ved imorgen arne vedrørende problematikken med response data fra servlets. Er på kl. 10.00

Godnat.
Avatar billede arne_v Ekspert
16. november 2004 - 21:02 #7
Avatar billede arne_v Ekspert
16. november 2004 - 21:04 #8
Nej.

man gemmer info i en bean (eller en ArrayList af beans)

man gemmer så den bean (eller ArrayList af beans) i requesten

man forwarder til JSP siden

JSP siden fisker beanen (eller ArrayList'en af beans) frem
Avatar billede arne_v Ekspert
16. november 2004 - 21:04 #9
og et svar

(jeg vil være på i morgen formiddag en gang imellem)
Avatar billede noerdar-dilling Nybegynder
17. november 2004 - 09:05 #10
Jeg er ikkehelt med. Du siger at når noget data fra en servlet skal sendes til en specefik jsp side har det ikke noget med en bean at gøre men hvorfor siger dette eksemple så det modsatte, af hvad jeg forstår.

http://www.jguru.com/faq/view.jsp?EID=739
Avatar billede noerdar-dilling Nybegynder
17. november 2004 - 09:35 #11
Kan man ikke sende de data man får fra servletten via en post istedet for en arraylist
Avatar billede arne_v Ekspert
17. november 2004 - 09:44 #12
Servletten laves ikke om til en bean. Servletten bruger en bean eller noget
andet (ArrayList af bean er nok meget typisk) til at opbevare data i.
Avatar billede arne_v Ekspert
17. november 2004 - 09:45 #13
Jeg forstår ikk ehelt hvad du mener med en POST i denne sammenhæng.
Avatar billede noerdar-dilling Nybegynder
17. november 2004 - 09:47 #14
ja normalt i disse eksempler du har givet mig forwarder man data via en arraylist til jsp siden hvor man herefter leder arraylisten igennem
Avatar billede noerdar-dilling Nybegynder
17. november 2004 - 09:48 #15
Kan man ikke sende det som en ren post metode fra servlet til jsp
Avatar billede arne_v Ekspert
17. november 2004 - 09:57 #16
Hvis der er lavet POST til servlet og servlet forwarder til en JSP side, så
vil det fra JSP side ligne en normal POST.

Det er kun hvis JSP siden skal have data fra servletten som ikke er sendt fra
browser, at man skal gemme yderligere information i request strukturen.
Avatar billede noerdar-dilling Nybegynder
17. november 2004 - 10:04 #17
ok når man såløber denne arrayliste igennem hvordan adskiller man så de forskellige elementer hvis man f.eks. ´har flerer forskellige sql quries der skal sende til den bestemte jsp side
Avatar billede arne_v Ekspert
17. november 2004 - 10:19 #18
Ikke forstået.

Lad os sige at du har:

FindByUsernameServlet som laver SELECT * FROM users WHERE username='X' og gemmer
en ArrayList af UserBean og forwarder til showusers.jsp

FindByEmailaddressServlet som laver SELECT * FROM users WHERE emailaddress='X' og gemmer
en ArrayList af UserBean og forwarder til showusers.jsp

showusers.jsp viser så den ArrayList og den er ligeglad med hvilket
kriterie de pågældende brugere er udvalgt efter
Avatar billede noerdar-dilling Nybegynder
17. november 2004 - 10:33 #19
ok jeg prøver tak for det.
Avatar billede noerdar-dilling Nybegynder
17. november 2004 - 12:13 #20
Problemer du kan ikke henvise til et exsempel på hvor det laver en post fra en jsp side og hvor servletten sender det tilbage til den samme jsp side og viser det.
Avatar billede arne_v Ekspert
17. november 2004 - 12:21 #21
Der skulle jeg nok lave et eksempel. Men det kan jeg godt. Dog først senere.

Har du absolut brug for den servlet ?

Det nemmeste er nok at lade JSP siden submitte til sig selv.
Avatar billede noerdar-dilling Nybegynder
17. november 2004 - 12:47 #22
Nej jeg vil heslt lave selve søgefunktionen i en selvstændig servlet der tager imod post data og herefter laver nogle sql quries og sender den nødvendig data tilbage til samme jsp side eller en anden der så viser resultatet.
Avatar billede noerdar-dilling Nybegynder
17. november 2004 - 12:47 #23
ellers bryder jeg den arkitektur jeg skal følge Model Controller og view
Avatar billede noerdar-dilling Nybegynder
17. november 2004 - 12:48 #24
er det noget du kan hjælpe med!
Avatar billede noerdar-dilling Nybegynder
17. november 2004 - 12:50 #25
bare et lille eksempel på en database med tabellen navne, der indeholder navn og cpr nummer hvor søge funktionen via servletten tager imod et navn og sender cpr nummeret til  den bestemte jsp side der skal vise det.
Avatar billede arne_v Ekspert
17. november 2004 - 13:00 #26
MVC !  :-)

Ja - jeg kan godt lave sådan et eksempel.
Avatar billede noerdar-dilling Nybegynder
17. november 2004 - 13:07 #27
jeg laver et nye spørgsmål kig i det For at skrive præcist hvad der menes med det hele ås kan vi få lidt mere styr på det hele. kig i http://www.eksperten.dk/spm/562211
Avatar billede noerdar-dilling Nybegynder
17. november 2004 - 13:08 #28
ok kan du sende det til christian@noerdar.dk ellers skriv bare i det nye spørgsmål fra nu af.
Avatar billede noerdar-dilling Nybegynder
17. november 2004 - 13:11 #29
Hvad tid vil du ca. tro du kigger på et eksempel.
Avatar billede arne_v Ekspert
17. november 2004 - 13:14 #30
Enten inden for den næste time eller efter kl. 16.
Avatar billede noerdar-dilling Nybegynder
17. november 2004 - 13:15 #31
ok bare iorden. poster du det her eller i spg, http://www.eksperten.dk/spm/562211. Jeg er hjemme kl. 15 ca. så er jeg på. Tak for det, det ville rede min dag.
Avatar billede arne_v Ekspert
17. november 2004 - 13:40 #32
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  <servlet>
    <servlet-name>SearchServlet</servlet-name>
    <servlet-class>test.SearchServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>SearchServlet</servlet-name>
    <url-pattern>/SearchServlet</url-pattern>
  </servlet-mapping>
</web-app>
Avatar billede arne_v Ekspert
17. november 2004 - 13:41 #33
package test;

public class Person {
    private String name;
    private String id;
    public Person() {
        name = "";
        id = "";
    }
    public Person(String name, String id) {
        this.name = name;
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
}
Avatar billede arne_v Ekspert
17. november 2004 - 13:41 #34
package test;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.net.*;
import java.sql.*;

public class SearchServlet extends HttpServlet {
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection con = DriverManager.getConnection("jdbc:odbc:;Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\Person.mdb;");
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT Name,ID FROM Person WHERE Name = '" + request.getParameter("name") + "'");
            rs.next();
            request.setAttribute("person", new Person(rs.getString(1), rs.getString(2)));
            rs.close();
            stmt.close();
            con.close();
        } catch (Exception e) {
        }
        getServletConfig().getServletContext().getRequestDispatcher("/show.jsp").forward(request, response);
    }
}
Avatar billede arne_v Ekspert
17. november 2004 - 13:41 #35
<form method="post" action="SearchServlet">
Navn: <input type="text" name="name" size="20"/>
<br/>
<input type="submit" value="Søg"/>
</form>
Avatar billede arne_v Ekspert
17. november 2004 - 13:42 #36
<jsp:useBean id="person" scope="request" class="test.Person"/>
Fundet:
<br/>
<%=person.getName()%> <%=person.getId()%>
Avatar billede arne_v Ekspert
17. november 2004 - 13:42 #37
Der er ingen som helst former for fejl håndtering lagt ind så koden er ikke
production ready.

Men den viser hvordan man kan gemme resultat af query og forwarde.
Avatar billede noerdar-dilling Nybegynder
17. november 2004 - 13:52 #38
ok mange tak. Jeg kigger på det vender tilbage senerer hvis det er så kig endelig hvis der kommer et reply på dette 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