Avatar billede mikmakmuk Nybegynder
05. januar 2003 - 09:55 Der er 36 kommentarer og
1 løsning

Problem med at placererer tekst på skærm

Jeg har lavet en servlet som henter noget data i min database. Mit problem er bare at alle returns går tabt :-(. Det er så blevet løst ved at sætte <pre> udenom. Nu sker der bare mærkelige ting med min baggrund som er sat ind via noget css.

Servleten ser således ud

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

public class Start extends HttpServlet
{
       
        public void doGet (HttpServletRequest request,
                      HttpServletResponse response)
        throws ServletException, IOException
        {
        PrintWriter        out;
       
        response.setContentType("text/html");

        out = response.getWriter();
       
        Databaseforbindelsemysql d = new Databaseforbindelsemysql("jdbc:mysql:URL/DB?user=USER&password=PASS","org.gjt.mm.mysql.Driver");     
           
        try {
       
        ResultSet rs = d.select("select * from pages where name='start'");
       
        while(rs.next()) {
       
        String content = rs.getString("content");   
           
            out.println("<html><head><title>Start</title>");
            out.println("<link rel='stylesheet' type='text/css' href='../style/styles.css'>");
            out.println("</head>");
            out.println("<body>");
            out.println("<pre>");
            out.println(content);
            out.println("</pre>");
            out.println("</body>");
            out.println("</html>");
            out.close();
            }       
        } catch (SQLException s) {
                out.println("<h3>SQL fejl: " + s.toString() + " "
                + s.getErrorCode() + " " + s.getSQLState() + "</h3>");
        }
    d.close();
   
    }
       
}
Avatar billede mikmakmuk Nybegynder
05. januar 2003 - 09:57 #1
Jeg troede egenligt at jeg fik problemet løst her

http://www.eksperten.dk/spm/301000

men det virker ikke som jeg gerne vil have det til :-(
Avatar billede mikmakmuk Nybegynder
05. januar 2003 - 09:59 #2
CSS'en ser sådan ud

body {
    background-image: url(../jpg-filer/basis.jpg);
          background-repeat: no-repeat;
    background-position: top center;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 14px;
          color: #00ffff;
         
          /* top,left,bottom,right */
          margin: 125px 200px 20px 200px;
         
          scrollbar-face-color: #004F83;
    scrollbar-shadow-color: #ffffff;
    scrollbar-highlight-color: #ffffff;
    scrollbar-3dlight-color: #ffffff;
    scrollbar-darkshadow-color: #000000;
    scrollbar-track-color: #ffffff;
    scrollbar-arrow-color: #ffffff;
    }
Avatar billede arne_v Ekspert
05. januar 2003 - 10:22 #3
Laver <PRE></PRE> ged i baggrunden ?

Hmmm.

Så kan du jo prøve eat erstatte alle linie-skift med
<BR>.

Fra den tidligere tråd:

out.println(content.replace("\n","<BR>"));
Avatar billede mikmakmuk Nybegynder
05. januar 2003 - 10:33 #4
Det andet virker i hvert tilfælde ikke rigtigt.
Kan jeg bare skrive det efter

String content = rs.getString("content");

i min kode og så fjerne <pre> ?
Avatar billede arne_v Ekspert
05. januar 2003 - 10:37 #5
Jo det kan du også.

String content = rs.getString("content").replace("\n","<BR>");

[vigtig: replace er en JDK 1.4 ny feature - virker ikke i 1.3]
Avatar billede mikmakmuk Nybegynder
05. januar 2003 - 11:52 #6
nej det kan jeg se :-)
Avatar billede arne_v Ekspert
05. januar 2003 - 13:08 #7
SÅ laver du din egen replace.
Avatar billede arne_v Ekspert
05. januar 2003 - 13:12 #8
out.println(linereplace(content));

private String linereplace(String s) {
  StringBuffer sb = new StringBuffer("");
  for(int i = 0; i < s.length(); i++) {
      if(s.charAt(i)=='\n') {
          sb.append("<BR>");
      } else {
            sb.append(s[i]);
      }
  }
  return sb.toString();
}
Avatar billede mikmakmuk Nybegynder
05. januar 2003 - 13:15 #9
Hvor finder jeg JDK 1.4 Jeg farer da vild på suns hjemmeside *lol*
Avatar billede arne_v Ekspert
05. januar 2003 - 13:17 #10
Avatar billede mikmakmuk Nybegynder
05. januar 2003 - 13:20 #11
Jeg er vist ikke for vaks :-)
Avatar billede mikmakmuk Nybegynder
05. januar 2003 - 13:21 #12
Jeg har fundet ud af det
Avatar billede mikmakmuk Nybegynder
05. januar 2003 - 13:21 #13
kan jeg bare instalerer det oven i det gamle?
Avatar billede arne_v Ekspert
05. januar 2003 - 13:24 #14
Normalt installerer man det ved siden af (hvis du bare bruger
det foreslåede directory, så bliver de placeret i hvert sit
directory).

Og de kan godt sameksistere, hvilket er godt da man sommetider
har en app der kræver 1.3.1 og enanden der kræver 1.4.1 !
Avatar billede arne_v Ekspert
05. januar 2003 - 13:35 #15
Jeg tror jeg vil kalde et eller andet ovenfor for et svar.
Avatar billede mikmakmuk Nybegynder
05. januar 2003 - 13:41 #16
--------------------Configuration: Database - j2sdk1.4.1_01 <Default>--------------------
D:\tomcat4.0\webapps\mortallovetest\WEB-INF\classes\Start.java:27: replace(char,char) in java.lang.String cannot be applied to (java.lang.String,java.lang.String)
        String content = rs.getString("content").replace("\n","<BR>");
Avatar billede mikmakmuk Nybegynder
05. januar 2003 - 13:43 #17
Det kan du roligt gøre.

if (rs.next()) {
       
        String content = rs.getString("content").replace("\n","<BR>");

//        String content = rs.getString("content");   
           
            out.println("<html><head><title>Start</title>");
            out.println("<link rel='stylesheet' type='text/css' href='../style/styles.css'>");
            out.println("</head>");
            out.println("<body>");
            out.println("<div class='margin1'>");
            out.println("<pre>");
            out.println(content);
            out.println("</pre>");
            out.println("</div>");
            out.println("</body>");
            out.println("</html>");
            out.close();
            }       
       
        else
        {
        System.out.println("No records in resultset");
        }
Avatar billede arne_v Ekspert
05. januar 2003 - 13:43 #18
Ups.

replace er char.

Du skal bruge replaceAll for Strings.
Avatar billede arne_v Ekspert
05. januar 2003 - 13:43 #19
Altså:

String content = rs.getString("content").replaceAll("\n","<BR>");
Avatar billede mikmakmuk Nybegynder
05. januar 2003 - 13:46 #20
Cool
Avatar billede arne_v Ekspert
05. januar 2003 - 13:47 #21
Virker det nu ?
Avatar billede arne_v Ekspert
05. januar 2003 - 13:47 #22
Med baggrund og det hele.
Avatar billede mikmakmuk Nybegynder
05. januar 2003 - 13:49 #23
Det er jeg ikke helt klar over endnu
Avatar billede mikmakmuk Nybegynder
05. januar 2003 - 13:59 #24
Det virker ikke helt, men det er vel fordi tomcat stadig bruger den gamle 1.3
Avatar billede arne_v Ekspert
05. januar 2003 - 14:00 #25
Det kunne det godt være.

ENten må du få Tomcat til ay bruge 1.4.1 eller så kan
du bruge den linereplace jeg lavede ovenfor.
Avatar billede mikmakmuk Nybegynder
05. januar 2003 - 14:02 #26
ved du sådan umiddelbart hvordan jeg for tomcat til at bruge 1.4.1
Avatar billede arne_v Ekspert
05. januar 2003 - 14:22 #27
Hvis du bruger WinNT/2000/XP så vil jeg tro, at du bare
sætter JAVA_HOME environment variabel til at pege
på 1.4.1 directoriet.
Avatar billede mikmakmuk Nybegynder
05. januar 2003 - 14:25 #28
jeg bruger w2k. Jeg har været inde i systemvariablene og sætte

CLASSPATH=d:\j2sdk1.4.1_01\lib\

og java_home d:\j2sdk1.4.1_01
Avatar billede mikmakmuk Nybegynder
05. januar 2003 - 14:26 #29
Det virker vist nok også, men nu virker min DB driver tilgængæld ikke. SUK
Avatar billede arne_v Ekspert
05. januar 2003 - 14:28 #30
Hvad.

Øh - du har vel ikke kopieret den til et JDK 1.3.1 directory ?
Avatar billede arne_v Ekspert
05. januar 2003 - 14:29 #31
Hov - jeg så lige at du havde sat CLASSPATH.

Du behøver ikke sætte CLASSPATH til at pege på JDK.

Men du skulle måske sætte den til at pege på din
JDBC driver jar-fil-
Avatar billede mikmakmuk Nybegynder
05. januar 2003 - 14:30 #32
nej
Avatar billede mikmakmuk Nybegynder
05. januar 2003 - 14:33 #33
hov jeg mente nej, jeg har ikke kopieret den til 1.3.1
Avatar billede arne_v Ekspert
05. januar 2003 - 14:35 #34
Men så pegede CLASSPATH måske på den før ?

JAVA_HOME=d:\j2sdk1.4.1_01
CLASSPATH=d:\dir\dinjdbc.jar

bør være vejen frem !
Avatar billede mikmakmuk Nybegynder
05. januar 2003 - 14:37 #35
Så virker det. Endnu en gang tusinde tak for hjælpen
Avatar billede arne_v Ekspert
05. januar 2003 - 14:38 #36
Lykken er når det virker !
Avatar billede mikmakmuk Nybegynder
05. januar 2003 - 14:43 #37
Det er helt sikkert
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