Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 21:13 Der er 39 kommentarer og
1 løsning

servlets

Jeg har lavet en servlet som henter en tekst fra min database. Den tekst den henter er lagt ned via et textfield. Mit problem er at når jeg vil vise den på skærmen er alle returns glemt. Mit spørgsmål er hvordan jeg kommer ud over det ? Eller med andre ord, kan jeg på en eller anden måde gemme returns i DB'en
Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 21:15 #1
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

public class Editpage extends HttpServlet
    {
       
        public void doGet (HttpServletRequest request,
                      HttpServletResponse response)
        throws ServletException, IOException
        {
       
        PrintWriter        out;
          out = response.getWriter();
       
        response.setContentType("text/html");
           
        Databaseforbindelsemysql d = new Databaseforbindelsemysql("jdbc:mysql://URL/DB?user=USER&password=PASS","org.gjt.mm.mysql.Driver");
         
          try {
          ResultSet rs    = d.select("SELECT content FROM pages WHERE name = 'start'");
          if (rs.next())
          {
             
              String content  = rs.getString("content");
   
            out.println("<HTML><HEAD><TITLE></TITLE>");
            out.println("<link rel='stylesheet' type='text/css' href='../style/styles.css'>");
            out.println("</head>");
            out.println("<BODY>");
            out.println("<form method='post' name='form' action='../servlet/Edit'>");
            out.println("<textarea name='content' cols='40' rows='4'>");
            out.println(content);
            out.println("</textarea><br>");
            out.println("<input type='submit' class='button1' name='Update' value='Send'>");
            out.println("</form>");
            out.println("</BODY></HTML>");
        }
       
        else
        {
        System.out.println("No records in resultset");
        }
       
        } catch (SQLException s) {
                out.println("<h3>SQL fejl: " + s.toString() + " "
                + s.getErrorCode() + " " + s.getSQLState() + "</h3>");
        }
   
        out.close();
        d.close();
        }
   
            public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
        {
        }
}
Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 21:22 #2
Spørgsmålet er altså om man kan lavet det sådan at hvergang der bliver tastet return så bliver der lagt <BR> ind
Avatar billede arne_v Ekspert
04. januar 2003 - 21:24 #3
HTML formaterer ikke efter linie-skift i HTML koden.

Prøv først med:

out.println("<textarea name='content' cols='40' rows='4'>");
out.println("<pre>");
out.println(content);
out.println("</pre>");
out.println("</textarea><br>");

for at se om det løser problemet !
Avatar billede arne_v Ekspert
04. januar 2003 - 21:25 #4
Hvis din content indeholder linie-skift, så kunne du
erstatte disse linie-skift med <BR>.

Men prøv lige med <PRE></PRE> først, fordi det burde
også løse problemet (hvis linie-skiftene faktisk er der).
Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 21:25 #5
hvad er <pre>
Avatar billede arne_v Ekspert
04. januar 2003 - 21:26 #6
Det er dog muligt at du vil foretrække <BR> indsætning, fordi
<PRE></PRE> ofte får browseren til at vælge en tude-grim font.
Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 21:28 #7
Lad mig vise dig problemet
Avatar billede medions Nybegynder
04. januar 2003 - 21:28 #8
arne_v> Nu ved jeg ikke hvordan man gør i Java, men i ASP/VBScript gør man sådan her:

Replace(content,"<br>",vbCrLf)

//>Rune
Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 21:28 #9
Avatar billede arne_v Ekspert
04. januar 2003 - 21:29 #10
Hvis du bruger JDK 1.4.1 så er det ekstremt nemt at
laver den erstat:

out.println(content.replace("\n","<BR>"));

(forudsætter at linie-skift er gemt som \n i databasen)
Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 21:29 #11
Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 21:31 #12
Bare prøv at skrive en tekst ind
Avatar billede arne_v Ekspert
04. januar 2003 - 21:32 #13
Den første har linie-skift men bruger ikke <PRE></PRE>.

Den anden virker ikke.
Avatar billede arne_v Ekspert
04. januar 2003 - 21:32 #14
type Status report

message /Edit

description The requested resource (/Edit) is not available.
Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 21:33 #15
Jeg er bange for at jeg ikke forstår
Avatar billede arne_v Ekspert
04. januar 2003 - 21:35 #16
Det første link virker men bruger hverken <PRE></PRE>
eller <BR> indsæt.

Det andet link virker ikke - giver ovenstående fejl.
Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 21:35 #17
Avatar billede arne_v Ekspert
04. januar 2003 - 21:37 #18
Linket virker men resultatet er gabende tomt.
Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 21:40 #19
prøv igen
Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 21:41 #20
det skal være Editpage til sidst *LOL*
Avatar billede arne_v Ekspert
04. januar 2003 - 21:44 #21
Når jeg submitter får jeg:

-ERROR-(404):  no such file or directory
Requested method: GET
Requested URL:    /mortallovetest
HTTP protocol:    HTTP/1.1
Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 21:46 #22
Avatar billede arne_v Ekspert
04. januar 2003 - 21:47 #23
Ja.
Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 21:48 #24
har du ikke skrevet "dette er en test"
Avatar billede arne_v Ekspert
04. januar 2003 - 21:49 #25
Jo.

Så har den sikkert gemt godt nok.

Men lavet en forward/redirect til en invalid URL !
Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 21:50 #26
Det er okay
Avatar billede arne_v Ekspert
04. januar 2003 - 21:50 #27
Prøv lige og se nu !!
Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 21:50 #28
Det er ikke det som er problemet
Avatar billede arne_v Ekspert
04. januar 2003 - 21:51 #29
Men jeg synes jo ikke at du skal have <PRE></PRE> i
hverken form eller database.

Du bør nøjes med at outputte dem på "vis data" siden.
Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 21:51 #30
Det har du jo ret i *LOL*
Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 21:53 #31
Mit problem er at jeg ikke ved hvordan jeg gør det
Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 21:55 #32
Avatar billede arne_v Ekspert
04. januar 2003 - 21:55 #33
Piece of cake.

Erstat:

out.println("<textarea name='content' cols='40' rows='4'>");
out.println(content);
out.println("</textarea><br>");

med:

out.println("<textarea name='content' cols='40' rows='4'>");
out.println("<pre>");
out.println(content);
out.println("</pre>");
out.println("</textarea><br>");

i din "vis" servlet !
Avatar billede arne_v Ekspert
04. januar 2003 - 21:58 #34
Undskyld - det er mig som har misledt dig.

Jeg troede at den kod edu oprindeligt postede var "vis"
servletten. Nu kan jeg se, at det er "ret" servletten.

Fjern de <PRE></PRE> fra "vis" servletten og sæt dem ind
omkring content i "vis" servletten.
Avatar billede arne_v Ekspert
04. januar 2003 - 21:59 #35
Så ignorer mine kode fragmenter og sæt de rigtige linier
ind i de linier ind de rigtige steder i Start.java, fjern dem
fra Editpage.java.

Og jeg undskylder igen forvirringen.
Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 21:59 #36
tak for det
Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 22:00 #37
Hey du er lidt for COOOLLL
Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 22:01 #38
Pr'v og se om det ikke virker
Avatar billede arne_v Ekspert
04. januar 2003 - 22:02 #39
Det ser nydeligt ud nu !
Avatar billede mikmakmuk Nybegynder
04. januar 2003 - 22:03 #40
tak for det
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