webForumDet fria alternativet

System i Java istället för ex. PHP

Javaur Java

8 svar · 690 visningar · startad av sailsoft

sailsoftMedlem sedan juli 2001225 inlägg
#1

Jag har en fundering rent allmännt om att utnyttja ett system mer effektivt, och den frågan gäller Java vs PHP.

Jag har ett antal annonssajter som på sikt kommer att bli väldigt stora (jag förutsätter det). Vi kör PHP, mysql och Apache idag och jag har sneglat på dom störra aktörerna som kör javabaserade system.

Jag förstår att skillnaden med java är att det blir ett snabbare system. Ett php-skript behöver ju kompileras varje gång när det körs. Som jag förstår så behöver bara java kompileras en gång och sen körs det binärt varje gång.

Vad finns det för fördelar och nackdelar med java, kommer det bli svårare att ändra systemet? Om man exempelvis skall förändra en webbsida, måste delar av javasystemet kompileras om då eller kan man lägga designen separat?

Någon som har erfarenhet av detta och som vill dela med sig?

K@llenMedlem sedan mars 20032 667 inlägg
#2

Som jag förstår så behöver bara java kompileras en gång och sen körs det binärt varje gång.

I korthet kompileras en Servlet första gången den körs, sedan varje gång den blivit ändrad. En JSP-sida görs om till en Servlet varje gång den efterfrågas. J2EE är stort, vad hade du tänkt använda dig av?

Den stora fördelen i jämförelse med PHP är enligt mig Javas stora klassbibliotek som du kan använda dig av. Att du sedan kan använda dig av JSP, Servlets, JavaBeans osv gör att du på sikt enklare kan ändra i systemet. Skalbarhet kallar en del det för.

Vad finns det för fördelar och nackdelar med java, kommer det bli svårare att ändra systemet?

Nej. Det beror på den som utvecklar systemet. Bygger du upp systemet på ett smart sätt, då blandar du inte de olika delarna. Läs vidare om MVC (Model View Control) arkitekturen.

Sök här på forumet, diskussionen har varit uppe förr. ;)

sailsoftMedlem sedan juli 2001225 inlägg
#3

Om man tänker så att systemet inte kommer förändras så mycket, det skall endast driftas effektivt, utnyttja servern till max då är servlets att föredra som jag förstår din diskussion?

Vad är det för skillnad på servlets och javabeans då?

K@llenMedlem sedan mars 20032 667 inlägg
#4

En Servlet är en Java-klass med ett speciellt utseende som körs på en HTTP-webbserver. En JSP-sida görs om till en Servlet när sidan exekveras.

Kort kan man säga att en JSP-sida är en "HTML-sida" med Java-kod inkluderat som resulterar i enbart Java-kod (servlet) som i sin tur returnerar en anpassad HTML-sida, medan en Servlet är Java-kod som resulterar i en anpassad HTML-sida.

En enkel Servlet:

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

public class MyServlet extends HttpServlet {

    public void doGet(HttpServletRequest, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        String text = "Hello World!";

         out.println("<html><body>");
         out.println("<p>" + text + "</p>");
         out.println("</body></html>");
         out.close();

    }
}

En enkel JSP-sida:

<html>
<body>
<%
out.println("<p>Hello world</p>");
 %>
</body>
</html>

Båda skriver ut samma sak. Vad jag vill visa är att man väljer JSP-sida eller servlet beroende på vad man ska göra. Att göra en servlet för att skriva ut Hello World är lite overkill.

En Javaböna är en kompilerad Javafil som du kan använda dig av från flera olika platser. Den måste dock använda get/set-metoder för att komma åt egenskaper, samt stödja Java 1.1. Tanken är göra applicationen mindre statisk, dvs mer flexibel. Man kan säga att en Javaböna är en helt vanlig klass som implementerar gränssnittet java.io.serializible och använder set/get-metoder för att komma åt egenskaper.

sailsoftMedlem sedan juli 2001225 inlägg
#5

Ok, då förstår jag. Jag är dock ute efter egenskapen med systemet att det skall vara snabbt, om man har ett system, exempelvis ett community som hela tiden arbetar emot en databs och bearbetar text (i korthet) kan man då säga att man skall använda en javaböna då?

Kan man jämföra det med sql, att använda en lagrad procedur måste vara snabbare än att ange ett direkt sql-kommando till databasen?

K@llenMedlem sedan mars 20032 667 inlägg
#6

Du använder Javabönor som ett komplement till exempelvis en JSP-sida. Låt säga att du har något som ska utföras likadant på flera olika platser i ditt system, då kan du göra en javaböna som utför uppgiften. Sedan använder du dig av din javaböna från de platser du behöver. Istället för att bygga samma kod som utför samma uppgift på alla platser där det behövs.

andreascarlssonMedlem sedan feb. 2003202 inlägg
#7

Man kan inte jämföra SQL och en javaböna. Det är två skillda saker. En javabean kan du betrakta som en transportbehållare som lämpar sig bra för att skyffla data mellan olika lager. SQL är ett språk som används för att selektera ut data från en databas.

När det gäller ditt system så bör du nog först fundera på vad det är du verkligen vill ha. Först när du gjort detta är det dags att undersöka vilka språk/tekniker som bäst tillgodoser dina krav.

På dina frågor känns det mer som att du nästan bestämt dig för att använda java, men inte riktigt vet vad du skall ha det till?

Fördelen med att använda Java/J2EE (som jag ser det) är att du kan få ett snabbt system som skalar bra och är lätt att underhålla. Detta förutsätter naturligtvis att du följer principerna för OO och MVC när du utvecklar systemet. Lyckas du med detta är sannolikheten väldigt stor att du får ett system som är enkelt att vidareutveckla och underhålla.

sailsoftMedlem sedan juli 2001225 inlägg
#8

Det jag menade med sql är att lagrade procedurer redan är "körklara", en ren sql måste kontrolleras varje gång, förstår du skillnaden?

GunnarDMedlem sedan juni 20014 290 inlägg
#9

Ett enkelt sätt att snabba upp PHP skript utan att behöva byta språk är att använda PHP Accelerators http://se.php.net/links.php

Det dessa gör är att i princip lagar den kompilerade PHP koden och använda den istället om inte PHP koden är ändrad, ungefär som en java-servlet.

Jag har testat "Turck MMCache for PHP" och visst sidan laddaes lite snabbare, men eftersom man måste hålla den i sync (kompilera om) när man uppgraderar PHP så i någon uppgradering så orkade jag göra det utan tog bort det, har inte så många besökare så det var lönt att använda den. :)

135 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)