Avatar billede noerdar-dilling Nybegynder
21. november 2004 - 22:24 Der er 42 kommentarer og
1 løsning

Søgefunktion i en servlet

Jeg har fået hjælp til at lave en søgefunktion til en servlet, men problemet ar at når den finder den første fundne viser den kun denne.  F.eks. har jeg en database med en masse bøger. For at gøre det hele nemmerer viser jeg her min kode. Jeg øsnker at for hver bog der bliver fundet med en bestemt titel skal denne sendes til den nævnte jsp side.

Men jeg kan ikke få den til at lede alle bøgerne igennem og sende de forskellige bøger mine bøger har et unikt id, en forfatter, titel, forlag og en beskrivelse.

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 {
           
String isbnIn;   
int isbn;
String forfatter;
String titel;
String forlag;
String beskrivelse;
           
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/bog", "pma", "fpra6712");
Statement stmt = con.createStatement();

/*

isbnIn = request.getParameter("isbn");
isbn = Integer.parseInt(isbnIn);
forfatter = request.getParameter("forfatter");
titel = request.getParameter("titel");
forlag = request.getParameter("forlag");
beskrivelse = request.getParameter("beskrivelse");
*/

/*
if (isbn > 0 && forfatter.length() == 0 && titel.length() == 0 )    {
   
}   

if (forfatter.length() > 0 && titel.length() > 0)    {
}
*/

   
ResultSet rs = stmt.executeQuery("SELECT isbn, forfatter, titel, forlag, beskrivelse FROM boeger WHERE titel = '" + request.getParameter("titel") + "'");         
request.setAttribute("bog", new bog(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5)));
rs.next();
}

rs.close();

stmt.close();

con.close();
     
     
} catch (Exception e) {
        }
        getServletConfig().getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
    }
}

Der skal ses bort fra det udkommenterede

VHer bog pakkes ned i en bean der ser sådan ud.

package test;

public class bog {


private int isbn;
private String forfatter;
private String titel;
private String forlag;
private String beskrivelse;

   
public bog() {

     
isbn = 0;
forfatter = "";
titel = "";
forlag = "";
beskrivelse = "";

}
   
   
    public bog(int isbn, String forfatter, String titel, String forlag, String beskrivelse) {
      this.isbn = isbn;
      this.forfatter = forfatter;
      this.titel = titel;
      this.forlag = forlag;
      this.beskrivelse = beskrivelse;
     
      }

   
    public int getIsbn() {
        return isbn;
    }
    public void setIsbn(int isbn) {
        this.isbn = isbn;
    }
    public String getForfatter() {
        return forfatter;
    }
    public void setForfatter(String forfatter) {
        this.forfatter = forfatter;
    }
   
      public String getTitel() {
        return titel;
    }
    public void setTitel(String titel) {
        this.titel = titel;
    }
   
      public String getForlag() {
        return forlag;
    }
    public void setForlag(String forlag) {
        this.forlag = forlag;
    }
      public String getBeskrivelse() {
        return beskrivelse;
    }
    public void setBeskrivelse(String beskrivelse) {
        this.beskrivelse = beskrivelse;
    }
   
}

Og den jsp side der viser bogen ser sådan ud

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
</head>

<body>


<form method="post" action="searchServlet">
Titel: <input type="text" name="titel" size="20"/>
<br/>
<input type="submit" value="Søg"/>
</form>

<jsp:useBean id="bog" scope="request" class="test.bog"/>
Fundet bog:
<br/>
<br/>
<%=bog.getIsbn()%> <%=bog.getForfatter()%>
<%=bog.getTitel()%> <%=bog.getForlag()%> <%=bog.getBeskrivelse()%>

</body>
</html>
Avatar billede arne_v Ekspert
21. november 2004 - 22:26 #1
I stedetfor at gemme et Bog objekt kan du gemme en ArrayList af Bog objekter.
Avatar billede arne_v Ekspert
21. november 2004 - 22:28 #2
ResultSet rs = stmt.executeQuery("SELECT isbn, forfatter, titel, forlag, beskrivelse FROM boeger WHERE titel = '" + request.getParameter("titel") + "'");       
ArrayList boger = new ArrayList();
while(rs.next()) {
    boger.add(new bog(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5)));
}
request.setAttribute("boger", boger);
Avatar billede arne_v Ekspert
21. november 2004 - 22:31 #3
<jsp:useBean id="boger" scope="request" class="java.util.ArrayList"/>
...
<%
for(int i = 0; i < boger.size(); i++) {
  test.bog bog = (test.bog)boger.get(i);
%>
<%=bog.getIsbn()%>
<%=bog.getForfatter()%>
<%=bog.getTitel()%>
<%=bog.getForlag()%>
<%=bog.getBeskrivelse()%>
<%
}
%>
Avatar billede noerdar-dilling Nybegynder
21. november 2004 - 22:31 #4
ahh mange tak gør rs, next at den leder efter den næste forekomne
Avatar billede arne_v Ekspert
21. november 2004 - 22:31 #5
Utestet - men logikken må være til at gennemskue
Avatar billede arne_v Ekspert
21. november 2004 - 22:31 #6
Ja
Avatar billede noerdar-dilling Nybegynder
21. november 2004 - 22:32 #7
Hey arne ved du hvordan man f.eks. skriver et SQL stement hvor man i en beskrivelse tekst leder efter et bestemt ord f.eks. "rød" i et søgefelt også finder den alle de bøger hvor ordet indgår i beskrivelsen.
Avatar billede arne_v Ekspert
21. november 2004 - 22:35 #8
Er det

ResultSet rs = stmt.executeQuery("SELECT isbn, forfatter, titel, forlag, beskrivelse FROM boeger WHERE titel LIKE '%" + request.getParameter("titel") + "%'");

du leder efter ?

Den finder alle hvor søge ordet findes i !
Avatar billede noerdar-dilling Nybegynder
21. november 2004 - 22:37 #9
ja f.eks. har jeg mange bøger der hver indeholder en beskrivelse, så skal man kunne indtaste rød i søgefeltet også skal den finde alle de bøger hvor rød indgår i beksrivelsen
Avatar billede noerdar-dilling Nybegynder
21. november 2004 - 22:38 #10
Prøver lige det du sendte et øjeblik
Avatar billede noerdar-dilling Nybegynder
21. november 2004 - 22:44 #11
Det virker Tak for det men forstå du hvad jeg mener med det der SQL statement
Avatar billede noerdar-dilling Nybegynder
21. november 2004 - 22:48 #12
Like virker ikke kun på varchar og det er jo en stor tekst jeg har for hver bog
Avatar billede noerdar-dilling Nybegynder
21. november 2004 - 22:53 #13
Ok bare svar når du engang får tid
Avatar billede arne_v Ekspert
21. november 2004 - 22:53 #14
Du kan vist kun bruge LIKE på VARCHAR og ikke på TEXT.

Og det er meget fornuftigt ellers ville performance gå i bund.

Hvis du skal søge i større tekster så skal du kigge på nogle database
specifikke full text search muligheder.
Avatar billede arne_v Ekspert
21. november 2004 - 22:54 #15
kommer her
Avatar billede noerdar-dilling Nybegynder
21. november 2004 - 22:57 #16
Det kan f.eks også være en sætning der søges efter som en string eller noget
Avatar billede noerdar-dilling Nybegynder
21. november 2004 - 22:57 #17
ok prøver det
Avatar billede noerdar-dilling Nybegynder
21. november 2004 - 22:58 #18
Har du meget forstand på XML fordi det kan godt være jegf skal bruge noget hjælp imogen på et tidspunkt. Der er bare ikke ret mange der bruger Java/JSP så det er svært at få hjælp. Håber ikke det er til for meget besvær.
Avatar billede arne_v Ekspert
21. november 2004 - 23:03 #19
Jeg har da skrevet et par artikler om Java og XML, så lidt ved jeg.

J2EE & JSP har faktisk en pæn markeds andel i store ebusiness løsninger
og lignende. Hvad du også kan se, hvis du læse IT job annoncer.

Men de hundrede tusinder der laver deres egen hjemme side som hobby, foretrækker
næsten altid ASP eller PHP.
Avatar billede noerdar-dilling Nybegynder
21. november 2004 - 23:06 #20
Ja og det er jo det der er lidt trist vil jeg sige for JSP og Java sammen er en meget stærk teknik og jeg vil sige at jeg lærer noget hver dag lige pt, meget sjovt at komme igang med det. Men jeg laver bare mine beskrivelse om til Vaechar på en maks længde. Jeg skal udfra det hele have lavet en webshop, så hvis du kende nogle der har noget liggende eller hvis du selv har noget liggende angående kode som du vil bidrage med må du meget gerne sende det til christian@noerdar.dk ellers vender jeg nok tilbage når jeg engang går igang.
Avatar billede noerdar-dilling Nybegynder
21. november 2004 - 23:07 #21
Mange tak for denne gang.
Avatar billede arne_v Ekspert
21. november 2004 - 23:12 #22
Java web applikationer er et meget stort område.

Man starter med:

servlets
JSP side med embedded kode
bean klasser

Så går man videre med:

container managed security
database connection pool
JSTL
Expression Language
egne taglibs

Og kan fortsætte med:

Struts
WebWork
JSF

Og eventuelt supplere med EJB's på et tidspunkt.
Avatar billede noerdar-dilling Nybegynder
21. november 2004 - 23:17 #23
OK mange tak. Lgie et sidste spørgsmål hvis nu jeg vil teste på om der befinder sig nooget i et arrayet kan jeg vel skrive

if(boger.size()==0) så skal den skrive "Der blev ikke fundet nogle bøger ellers skal den gøre

<%
for(int i = 0; i < boger.size(); i++) {
  test.bog bog = (test.bog)boger.get(i);
%>
<br/>
<br/>
<%=bog.getIsbn()%>
<br/>
<%=bog.getForfatter()%>
<br/>
<%=bog.getTitel()%>
<br/>
<%=bog.getForlag()%>
<br/>
<%=bog.getBeskrivelse()%>
<br/>
<%
}

%>

Kan bare ikke få syntaxen stillet rigtig op ,den siger hele tiden der er fejl
Avatar billede noerdar-dilling Nybegynder
21. november 2004 - 23:20 #24
Burde det her virke

<%
if(boger.size()==0)    {
%>
Der blev ikke fundet nogle bøger
<%
}
%>

<%else {

for(int i = 0; i < boger.size(); i++) {
  test.bog bog = (test.bog)boger.get(i);
%>
<br/>
<br/>
<%=bog.getIsbn()%>
<br/>
<%=bog.getForfatter()%>
<br/>
<%=bog.getTitel()%>
<br/>
<%=bog.getForlag()%>
<br/>
<%=bog.getBeskrivelse()%>
<br/>
<%
}

}
%>
Avatar billede arne_v Ekspert
21. november 2004 - 23:20 #25
<%
if(boger.size()==0) {
%>
Der blev ikke fundet nogle bøger
<%
}
for(int i = 0; i < boger.size(); i++) {
  test.bog bog = (test.bog)boger.get(i);
%>
<br/>
<br/>
<%=bog.getIsbn()%>
<br/>
<%=bog.getForfatter()%>
<br/>
<%=bog.getTitel()%>
<br/>
<%=bog.getForlag()%>
<br/>
<%=bog.getBeskrivelse()%>
<br/>
<%
}
%>

ser rigtigt ud
Avatar billede arne_v Ekspert
21. november 2004 - 23:20 #26
Din ser også ok ud.
Avatar billede noerdar-dilling Nybegynder
21. november 2004 - 23:22 #27
Min virker ikke
Avatar billede arne_v Ekspert
21. november 2004 - 23:24 #28
Avatar billede arne_v Ekspert
21. november 2004 - 23:25 #29
Hvad fejl får du ?
Avatar billede noerdar-dilling Nybegynder
21. november 2004 - 23:26 #30
Ja ved det men er kun lige på begynder stadiget men det er rart at du gider hjælpe engang imellem. Problemet med med din kode er at den skrive ingen fundne bøger inden man  har nået at søge men det er bare en formalitet.
Avatar billede arne_v Ekspert
21. november 2004 - 23:29 #31
Så skal du måske lade servletten sætte er flag for at markere om der er søgt eller ej.
Avatar billede noerdar-dilling Nybegynder
21. november 2004 - 23:31 #32
Hvad skal det sige?
Avatar billede arne_v Ekspert
21. november 2004 - 23:35 #33
Hvis servletten laver en:

request.setAttribute("search", "done");

så kan du jo teste på:

<jsp:useBean id="search" scope="request" class="java.lang.String"/>

og

if(search.equals("done")) {
Avatar billede noerdar-dilling Nybegynder
21. november 2004 - 23:39 #34
Sådan her

<%if(search.equals("done")) {
%>
<%
if(boger.size()==0) {
%>
Der blev ikke fundet nogle bøger
<%
}
for(int i = 0; i < boger.size(); i++) {
  test.bog bog = (test.bog)boger.get(i);
%>
<br/>
<table cellspacing="2" cellpadding="2" border="0">
<tr>
    <td>Forfatter:</td>
    <td><%=bog.getForfatter()%></td>
</tr>
<tr>
    <td>Titel:</td>
    <td><%=bog.getTitel()%></td>
</tr>
<tr>
    <td>Forlag:</td>
    <td><%=bog.getForlag()%></td>
</tr>
<tr>
    <td>Beskrivelse:</td>
    <td><%=bog.getBeskrivelse()%></td>
</tr>
<tr>
    <td>ISBN</td>
    <td><%=bog.getIsbn()%></td>
</tr>
</table>
<%
}
%>
<%
}
%>
Avatar billede noerdar-dilling Nybegynder
21. november 2004 - 23:40 #35
Så her gang en af mine søge funktioner har kørt f.eks. så medfølger

dette.

if (isbn > 0 && forfatter.length() == 0 && titel.length() == 0 && forlag.length() == 0 && beskrivelse.length() == 0)    {

ResultSet rs = stmt.executeQuery("SELECT isbn, forfatter, titel, forlag, beskrivelse FROM boeger WHERE isbn = 'isbnIn'");     

ArrayList boger = new ArrayList();

while(rs.next()) {
   
boger.add(new bog(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5)));

}
request.setAttribute("search", "done");
    }
Avatar billede noerdar-dilling Nybegynder
21. november 2004 - 23:46 #36
Jeg får denne fejlmeddelse

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 49 in the jsp file: /index.jsp
Generated servlet error:
C:\www\Tomcat5\work\Catalina\localhost\bog\org\apache\jsp\index_jsp.java:98: cannot find symbol
symbol  : variable search
location: class org.apache.jsp.index_jsp
if(search.equals("done")) {
  ^
1 error



    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:332)
    org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:412)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
Avatar billede arne_v Ekspert
21. november 2004 - 23:57 #37
Har du fået sat

<jsp:useBean id="search" scope="request" class="java.lang.String"/>

ind ?
Avatar billede noerdar-dilling Nybegynder
21. november 2004 - 23:59 #38
Nej kan jeg godt bare indsætte det er det ikke en selvstændig bean jeg så skal lave eller hvad
Avatar billede noerdar-dilling Nybegynder
22. november 2004 - 00:01 #39
Du får lige min kode så kan du vise mig hvor det skal være

JSP siden siden index.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Avanceret Søgning</title>
</head>

<body>

<strong>Søg Avanceret</strong>
<br/>
<br/>
<form method="post" action="searchServlet">

<table cellspacing="2" cellpadding="2" border="0">
<tr>
    <td>Forfatter:</td>
    <td><input type="text" name="forfatter" size="20"/></td>
</tr>
<tr>
    <td>Titel:</td>
    <td><input type="text" name="titel" size="20"/></td>
</tr>
<tr>
    <td>Forlag:</td>
    <td><input type="text" name="forlag" size="20"/></td>
</tr>
<tr>
    <td>Beskrivelse:</td>
    <td><input type="text" name="beskrivelse" size="20"/></td>
</tr>
<tr>
    <td>ISBN</td>
    <td><input type="text" name="isbn" size="20"/></td>
</tr>
</table>

<br/>
<input type="submit" value="Søg"/>
</form>
<br/>


<jsp:useBean id="boger" scope="request" class="java.util.ArrayList"/>

Fundne bøger:
<br/>
<br/>

<%
if(boger.size()==0) {
%>
Der blev ikke fundet nogle bøger
<%
}
for(int i = 0; i < boger.size(); i++) {
  test.bog bog = (test.bog)boger.get(i);
%>
<br/>
<table cellspacing="2" cellpadding="2" border="0">
<tr>
    <td>Forfatter:</td>
    <td><%=bog.getForfatter()%></td>
</tr>
<tr>
    <td>Titel:</td>
    <td><%=bog.getTitel()%></td>
</tr>
<tr>
    <td>Forlag:</td>
    <td><%=bog.getForlag()%></td>
</tr>
<tr>
    <td>Beskrivelse:</td>
    <td><%=bog.getBeskrivelse()%></td>
</tr>
<tr>
    <td>ISBN</td>
    <td><%=bog.getIsbn()%></td>
</tr>
</table>
<%
}
%>


</body>
</html>

Servletten

package test;

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

public class searchServlet extends HttpServlet {
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     
     
     
     
        try {
           
String isbnIn;   
int isbn;
String forfatter;
String titel;
String forlag;
String beskrivelse;
           
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/bog", "pma", "fpra6712");
Statement stmt = con.createStatement();


isbnIn = request.getParameter("isbn");
forfatter = request.getParameter("forfatter");
titel = request.getParameter("titel");
forlag = request.getParameter("forlag");
beskrivelse = request.getParameter("beskrivelse");



if (isbnIn.length() > 0 && forfatter.length() == 0 && titel.length() == 0 && forlag.length() == 0 && beskrivelse.length() == 0)    {

ResultSet rs = stmt.executeQuery("SELECT isbn, forfatter, titel, forlag, beskrivelse FROM boeger WHERE isbn = '" + isbnIn + "'");     

ArrayList boger = new ArrayList();

while(rs.next()) {
   
boger.add(new bog(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5)));

}

request.setAttribute("boger", boger);

rs.close();

stmt.close();

    }   


con.close();     
     
} catch (Exception e) {
        }
        getServletConfig().getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
    }
}


Beanen

package test;

public class bog {


private int isbn;
private String forfatter;
private String titel;
private String forlag;
private String beskrivelse;

   
public bog() {

     
isbn = 0;
forfatter = "";
titel = "";
forlag = "";
beskrivelse = "";

}
   
   
    public bog(int isbn, String forfatter, String titel, String forlag, String beskrivelse) {
      this.isbn = isbn;
      this.forfatter = forfatter;
      this.titel = titel;
      this.forlag = forlag;
      this.beskrivelse = beskrivelse;
     
      }

   
    public int getIsbn() {
        return isbn;
    }
    public void setIsbn(int isbn) {
        this.isbn = isbn;
    }
    public String getForfatter() {
        return forfatter;
    }
    public void setForfatter(String forfatter) {
        this.forfatter = forfatter;
    }
   
      public String getTitel() {
        return titel;
    }
    public void setTitel(String titel) {
        this.titel = titel;
    }
   
      public String getForlag() {
        return forlag;
    }
    public void setForlag(String forlag) {
        this.forlag = forlag;
    }
      public String getBeskrivelse() {
        return beskrivelse;
    }
    public void setBeskrivelse(String beskrivelse) {
        this.beskrivelse = beskrivelse;
    }
   
}
Avatar billede arne_v Ekspert
22. november 2004 - 00:03 #40
request.setAttribute("boger", boger);

->

request.setAttribute("boger", boger);
request.setAttribute("search", "done");
Avatar billede noerdar-dilling Nybegynder
22. november 2004 - 00:04 #41
ok det virker fandt lige ud af det. Nå det var nok det sidste tak for hjælpen Arne. Sov godt når du når så langt nu vil jeg hoppe i seng. Tales ved.

Hilsen Christian
Avatar billede arne_v Ekspert
22. november 2004 - 00:05 #42
<jsp:useBean id="boger" scope="request" class="java.util.ArrayList"/>

Fundne bøger:
<br/>
<br/>

<%
if(boger.size()==0) {
%>
Der blev ikke fundet nogle bøger
<%
}
for(int i = 0; i < boger.size(); i++) {
  test.bog bog = (test.bog)boger.get(i);
%>
<br/>
<table cellspacing="2" cellpadding="2" border="0">
<tr>
    <td>Forfatter:</td>
    <td><%=bog.getForfatter()%></td>
</tr>
<tr>
    <td>Titel:</td>
    <td><%=bog.getTitel()%></td>
</tr>
<tr>
    <td>Forlag:</td>
    <td><%=bog.getForlag()%></td>
</tr>
<tr>
    <td>Beskrivelse:</td>
    <td><%=bog.getBeskrivelse()%></td>
</tr>
<tr>
    <td>ISBN</td>
    <td><%=bog.getIsbn()%></td>
</tr>
</table>
<%
}
%>

->

<jsp:useBean id="boger" scope="request" class="java.util.ArrayList"/>
<jsp:useBean id="search" scope="request" class="java.lang.String"/>
<%
if(search.equals("done")) {
%>
Fundne bøger:
<br/>
<br/>

<%
if(boger.size()==0) {
%>
Der blev ikke fundet nogle bøger
<%
}
for(int i = 0; i < boger.size(); i++) {
  test.bog bog = (test.bog)boger.get(i);
%>
<br/>
<table cellspacing="2" cellpadding="2" border="0">
<tr>
    <td>Forfatter:</td>
    <td><%=bog.getForfatter()%></td>
</tr>
<tr>
    <td>Titel:</td>
    <td><%=bog.getTitel()%></td>
</tr>
<tr>
    <td>Forlag:</td>
    <td><%=bog.getForlag()%></td>
</tr>
<tr>
    <td>Beskrivelse:</td>
    <td><%=bog.getBeskrivelse()%></td>
</tr>
<tr>
    <td>ISBN</td>
    <td><%=bog.getIsbn()%></td>
</tr>
</table>
<%
}
}
%>
Avatar billede noerdar-dilling Nybegynder
22. november 2004 - 00:18 #43
Mange Tak
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