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(); } }
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
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; }
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>"));
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> ?
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]
05. januar 2003 - 11:52
#6
nej det kan jeg se :-)
05. januar 2003 - 13:08
#7
SÅ laver du din egen replace.
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(); }
05. januar 2003 - 13:15
#9
Hvor finder jeg JDK 1.4 Jeg farer da vild på suns hjemmeside *lol*
05. januar 2003 - 13:17
#10
05. januar 2003 - 13:20
#11
Jeg er vist ikke for vaks :-)
05. januar 2003 - 13:21
#12
Jeg har fundet ud af det
05. januar 2003 - 13:21
#13
kan jeg bare instalerer det oven i det gamle?
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 !
05. januar 2003 - 13:35
#15
Jeg tror jeg vil kalde et eller andet ovenfor for et svar.
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>");
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"); }
05. januar 2003 - 13:43
#18
Ups. replace er char. Du skal bruge replaceAll for Strings.
05. januar 2003 - 13:43
#19
Altså: String content = rs.getString("content").replaceAll("\n","<BR>");
05. januar 2003 - 13:46
#20
Cool
05. januar 2003 - 13:47
#21
Virker det nu ?
05. januar 2003 - 13:47
#22
Med baggrund og det hele.
05. januar 2003 - 13:49
#23
Det er jeg ikke helt klar over endnu
05. januar 2003 - 13:59
#24
Det virker ikke helt, men det er vel fordi tomcat stadig bruger den gamle 1.3
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.
05. januar 2003 - 14:02
#26
ved du sådan umiddelbart hvordan jeg for tomcat til at bruge 1.4.1
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.
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
05. januar 2003 - 14:26
#29
Det virker vist nok også, men nu virker min DB driver tilgængæld ikke. SUK
05. januar 2003 - 14:28
#30
Hvad. Øh - du har vel ikke kopieret den til et JDK 1.3.1 directory ?
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-
05. januar 2003 - 14:30
#32
nej
05. januar 2003 - 14:33
#33
hov jeg mente nej, jeg har ikke kopieret den til 1.3.1
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 !
05. januar 2003 - 14:37
#35
Så virker det. Endnu en gang tusinde tak for hjælpen
05. januar 2003 - 14:38
#36
Lykken er når det virker !
05. januar 2003 - 14:43
#37
Det er helt sikkert
Kurser inden for grundlæggende programmering