Till förstasidan för privatkunderOm du vill kontakta oss på TeliaSoneraGer dig översikt och hjälper dig hitta på  privatsidornaSök på telia.se

Telia Webbhotell

Webbhotell Enkel

Webbhotell Standard

Webbhotell Avancerad

Funktioner & Tips

Administration

Administration

Snabbguide
Support/Kundtjänst
Om domännamn
Tillgänglighetsgaranti
   


Telia Webbhotell Telia Webbhotell

JSP och Java Servlets (Standard)

1 Hur mycket kostar det?
2 Vad är JSP?
3

Vad är servlets?

4 Ska jag använda servlets eller JSP?
5 Vilka filer finns i mitt konto från början?
6 Hur lägger jag upp servlets och JSP?
7 Vad använder Telia Webbhotell Standard för att köra servlets och JSP?
8 Varför ska jag använda servlets och JSP?
9 Hur anropar jag JSP från WEB-Servern?
10 Hur anropar jag servlets från WEB-Servern?
11 Har jag tillgång till en databas?
12 Hur ansluter jag till min databas?
13 Kan mina JSP och servlets skapa data och log filer?
14 Hur skriver jag till filer med JSP och servlets?
15 Var hittar jag bra webbsajter om servlets och JSP?
16 Hur använder jag mailformulär?
Fråga 1  Hur mycket kostar det?
svar Det kostar inget och det är aktiverat från start.
Fråga 2 Vad är JSP?
Svar JavaServer Pages (JSP) ger utvecklare av webbsidor möjligheten att blanda statisk HTML kod med dynamiskt genererat innehåll med hjälp av JSP kod (scriptlets) eller speciella JSP taggar liknande HTML kod. Du kan läsa mer om JSP på Sun´s JSP site
Fråga 3 Vad är servlets?
Svar Servlets är program skrivna i Java som kompileras och körs på en server, till skillnad från Applets som körs i klienten. Du kan hitta mer information på Sun's Servlet Site
Fråga 4 Ska jag använda servlets eller JSP?
Svar

Om du skriver en websida med JSP kod kompileras den alltid automatiskt av servern till en Servlet som sedan körs. Att använda JSP är ett bra allternativ om din sida består till största delen av HTML-kod. Du kan alltid skriva en Servlet direkt vilket kan vara effektivare om det är mycket Java-kod som behövs. Man blandar ofta användningen av JSP/HTML för själva sidpresentationen samt att den "nyttiga logiken" utgörs av Servlets.

Fråga 5 Vilka filer finns i mitt konto från början?
Svar Följande filer finns i kontot från början och där java[xx] är ett versionsnummer på JSP och Servlet funktionen:
java[xx]/
            META-INF/
                        context.xml
            WEB-INF/
                        classes/
                                    TestMySQL.class
                        lib/
                        web.xml
            helloworld.jsp
            index.jsp
www/

Alla dessa filer och kataloger, utom TestMySQL.class och helloworld.jsp vilka är en test-servlet respektive en test-JSP, måste vara kvar för att allt skall fungera.

  • /java[xx]/META-INF/context.xml innehåller databaskopplingar och är beskriven i fråga 11.
  • I /java[xx]/WEB-INF/ lägger man sina JSP-filer. Hur står beskrivet i fråga 6.
  • I /java[xx]/WEB-INF/classes lägger man sina servlets. Hur står beskrivet i fråga 6.
  • I /java[xx]/WEB-INF/web.xml kan man lägga in sina servletar för att få en kortare anropnings-URL. Hur man gör detta står beskrivet i fråga 9.
Fråga 6 Hur lägger jag upp servlets och JSP?
Svar Så här gör du:
  1. Koppla upp dig med FTP till din FTP-adress:
    tiw-pro.web.internet.telia.com
  2. Här ser du en katalog som heter "java[xx]". Observera att katalogen ska ligga på samma nivå som din www-katalog, dvs utanför din www-area.
  3. Du lägger alla dina JSP-sidor direkt i java[xx]-katalogen medan servlets och övriga class- filer skall läggas i /java[xx]/WEB-INF/classes/
  4. Efter du laddat upp filerna kan det ta upp till 1 minut innan du kan köra dem i webbläsaren.

Se till att ställa din FTP-klient i ASCII läge när du laddar upp JSP-sidor så fungerar det oftast bättre. Glöm dock inte att ställa tillbaka den till BINARY om du skall ladda upp class-filer.

Fråga 7 Vad använder Telia Webbhotell Standard för att köra servlets och JSP?
Svar Vi kör Tomcat 5.5.7 som Java-servlet motor, med stöd för Java2 v1.5, JSP v2.0 och Servlet v2.4 API. Du kan läsa mer om Tomcat på http://jakarta.apache.org
Fråga 8 Varför ska jag använda servlets och JSP?
Svar Med servlets och JSP kan du göra allt som du kan göra med traditionella CGI-script, och mer. JSP och Servlets är kraftfullare och dessutom portabla.
Fråga 9 Hur anropar jag JSP sidor på webservern?
Svar

Dina JSP sidor kör du genom att anropa dem som vanliga HTML sidor:
http://tiw-pro.web.internet.telia.com/~****/java[xx]/helloworld.jsp

Om du har en egen domän kan du anropa via http://www.domän.se/java[xx]/helloworld.jsp

Fråga 10 Hur anropar jag Servlets på webbservern?
Svar För att köra dina servlets (ex: raknare.class) från webbservern skall du skriva:
http://tiw-pro.web.internet.telia.com/~****/java[xx]/servlet/TestMySQL  där **** är det konto-id som du har hos oss. På ditt FTP-inloggnings-konto hittar du en fil som heter tiw-pro.txt, där finns information om ditt konto-id.

Om du har en egen domän kan du anropa via http://www.domän.se/java[xx]/servlet/TestMySQL

Du kan även anropa servleten via
http://tiw-pro.web.internet.telia.com/~****/java[xx]/TestMySQL eller http://www.domän.se/java[xx]/TestMySQL  men då måste du definiera servleten i filen /java[xx]/WEB-INF/web.xml. I filen finns redan ett exempel på hur man gör detta.

Se Exempel TestMySQL

Fråga 11 Har jag tillgång till en databas?
Svar Detta beror på om du har aktiverat den (kontakta kundtjänst). Det finns stöd för både MySQL och Microsoft SQL Server.
Fråga 12 Hur ansluter jag till min databas?
Svar För att ansluta till din databas behöver du först skriva in dina användaruppgifter i filen /java[xx]/META-INF/context.xml

Den filen ser ut ungefär så här:
<Context path="" reloadable="true" crossContext="false">

<!--- För MySQL --->
<Resource name="jdbc/mysqlDB" auth="Container"
   type="javax.sql.DataSource"
   username="ANVÄNDARNAMN"
   password="LÖSENORD"
   driverClassName="com.mysql.jdbc.Driver"
   url="jdbc:mysql://localhost:3306/DATABASNAMN"
   maxActive="8" maxIdle="4"/>

<!--- För Microsoft SQL Server --->
<Resource name="jdbc/mssqlDB" auth="Container"
   type="javax.sql.DataSource"
   username="ANVÄNDARNAMN"
   password="LÖSENORD"
   driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
   url="jdbc:microsoft:sqlserver://localhost:3306/DATABASNAMN"
   maxActive="8" maxIdle="4"/>
</Context>

Där finns ett stycke för MySQL (överst i stycket i exemplet ovan) upplagt och ett för Microsoft SQL Server (nederst i stycket i exemplet ovan). Beroende på vilken det är som du skall använda så skriver du in ditt användarnamn, ditt lösenord samt databasnamnet. Efter man skrivit in sin kontoinformation börjar databasanslutningen att fungera efter att Tomcat har startats om (Detta sker vid kl 09:00, 12:00 och 15:00).

För att sedan använda databasen i din kod gör du t ex så här:
//Hämta ut datakällan
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource)envCtx.lookup("jdbc/mysqlDB");

//Skapa en connection och definera en sql-fråga
Connection conn = ds.getConnection();
String sql = "select * from test";

//Kör frågan och spara resultatet i ett ResultSet
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);

Koden ovan ger dig ett resultat i ett ResultSet som kan användas för att komma åt det som frågan genererade. Om du använder Microsoft SQL Server istället för MySQL byter du ut "mysqlDB" (på den 4:e raden) till "mssqlDB".
Fråga 13 Kan mina JSP och servlets skapa data och log filer?
Svar Ja, du kan skapa, ändra och ta bort filer i din hemkatalog, det vill säga i katalogen där du ser katalogerna "www" och "java[xx]", och alla kataloger du skapar där under.
Fråga 14 Hur skriver jag till filer med JSP och servlets?
Svar I din Javakod så anger du följande sökväg till filen,
t ex: /web/****/java[xx]/olle.dat, där **** är det konto-id som du har hos oss. På ditt FTP-inloggnings-konto hittar du en fil som heter tiw-pro.txt, där finns information om ditt konto-id.

Exampel:
Denna servlet skriver raden "Kan jag skriva till filer?" till filen olle.dat. Glöm inte att ersätta **** i sökvägen för filen med ditt konto-id.
När du sedan kör servleten så ska den returnera raden:

Skrev till filen:  /web/****/java[xx]/olle.dat

Om den inte kunde skriva till filen returneras:

Skrev till filen: null

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

public class SkrivFil extends HttpServlet
{
    public void doGet (HttpServletRequest req,HttpServletResponse res)
                      throws ServletException, IOException
   {
         res.setContentType("text/html");
         PrintWriter pw = res.getWriter();
         URL f_path=null;
        
         try
         {
              File f=new File("/web/****/java[xx]/olle.dat");
              FileWriter fw=new FileWriter(f);
              fw.write("Kan jag skriva till filer?");
              f_path=f.toURL();
              fw.close();
          }
         catch(FileNotFoundException e)
         {
             System.err.println("Filen finns inte...");
          }
          catch(IOException e)
         {
             System.err.println("I/O fel: " + e.getMessage());
          }
      
       pw.println("Skrev till filen: " +f_path );
   }
}

Fråga 15 Var hittar jag bra webbsajter om servlets och JSP?
Svar
Fråga 16  Hur använder jag mig av mailformulär?
Svar Om du vill skapa ett formulär som kan skicka ut mail kan du använda dig av följande fält:

 
Namn Förklaring Krav
from Avsändare Ja
to Mottagare Ja
cc Kopior Nej
bcc Dolda kopior Nej
subject Ämne Nej
message Meddelandetext Nej
redirect Sida vid OK Nej
onErrorPage Sida vid fel Nej
type HTML eller text Nej


 

  • ”from” skall vara avsändarens e-mailadress. Det är ett krav att den innehåller en korrekt e-mailadress för att mailet skall skickas.
  • "to” skall vara en mottagares e-postadress, eller flera mottagares e-mailadresser kommaseparerade. Dessa måste vara korrekta e-mailadresser för att mailet skall skickas.
  • "cc” skall vara en mottagares e-mailadress, eller flera mottagares e-mailadresser kommaseparerade. Denna skickar kopior av e-mailet.
  • "bcc” skall vara en mottagares e-mailadress, eller flera mottagares e-mailadresser kommaseparerade. Denna skickar dolda kopior av e-mailet.
  • ”subject” innehåller titeln på e-mailet.
  • "message” är själva texten i e-mailet.
  • ”redirect” kan man sätta till en URL om man vill att användaren automatiskt skall skickas vidare till en URL om mailet skickades utan problem. Sätter man inte denna stannar användaren vid en text från MailServlet där det står att mailet skickats.
  • ”onErrorPage” är liknande ”redirect”, men istället är detta en URL som användaren skickas till när något gick fel med sändandet av mailet. Sätter man inte denna stannar användaren vid en text från MailServlet där det står en problembeskrivning. Om man har satt ”onErrorPage” så skickas även en variabel med till URL:en som heter ”error”. Om mottagarsidan är ens egen sida kan man då, om man vill, plocka ut felmeddelandet och visa det för användaren.
  • "type" markerar om innehållet i mailet skall betraktas som text eller html. Sätter man inte denna är standard att innehållet betraktas som text.


När man skapar ett formulär och lägger på sin sida så är det brukligt att man inte tillåter användaren själv att få fylla i några fält förutom "subject" och "message". Dessa fält fyller man i med standardvärden och gömmer från användaren (se exemplet nedan). Annars kan anonyma personer använda din hemsida och ditt mailformulär för att skicka skräppost.

Exempelformulär:

 

<html>
<head><title>Send test</title></head>
<body>
<form method="POST" action="http://www.DOMAIN.com/java1/MailServlet">
<table>
<input type="hidden" name="from" value=”avsandare@telia.com”>
<input type="hidden" name="to" value=”mottagare@telia.com”>
<input type="hidden" name="cc" value="kopia1@telia.com,kopia2@telia.com">
<input type="hidden" name="bcc" value="doldkopia@telia.com">
<input type="hidden" name="redirect" value="http://www.telia.com">
<input type="hidden" name="onErrorPage" value="http://www.google.com">
<input type="hidden" name="type" value="text">
<tr>
<th align="center" colspan="2">
Enter The E-mail Message To Be Sent
</th>
</tr><tr>
<th align="right">Subject:</th>
<td align="left">
<input type="text" name="subject" size="60">
</td>
</tr><tr>
<td colspan="2">
<textarea name="message" rows="10" cols="80"></textarea>
</td>
</tr><tr>
<td align="right">
<input type="submit" value="Send">
</td>
<td align="left">
<input type="reset" value="Reset">
</td>
</tr>
</table></form></body></html>
 


De fält som du inte vill ha med från exmeplet och som enligt tabellen inte är krav kan du ta bort. Utöver fälten som är beskrivna behöver formuläret veta var informationen skall skickas. Detta skriver man in i "action" i <form>-taggen. Den korrekta URL:en som skall stå där är: "http://www.DOMAIN.com/java1/MailServlet". Den pekar på Telias egna mailutskickare.