2013-05-16, 10:17
  #1
Medlem
Håller på att skapa en hemsida med hjälp av HTML och JSP, och jag har nu lagt till en funktion som ska skicka mail till användarna varje gång någonting av intresse händer på hemsidan.

Eftersom att jag ännu inte har några direkta händelser att rapportera om så har jag bara lagt in koden vid sidan för registrering, och låter denna skicka mail varje gång någon registrerar sig på sidan. Men i framtiden kommer ju denna kod att användas i princip överallt eftersom att den kommer att maila om diverse olika saker som händer på hemsidan.

Darför så vill jag göra koden mer generell och göra så att jag inte behöver repetera den på varje sida på hemsidan. Och sedan vill jag bara kunna anropa koden när jag behöver använda den. Hur gör jag? Jag utgår från att jag först och främst måste bryta ut koden och placera den i en egen jsp-fil, exempelvis mail.jsp, men sen då?

Tack på förhand!
Citera
2013-05-16, 11:14
  #2
Moderator
Protons avatar
Citat:
Ursprungligen postat av Jontzohr
Håller på att skapa en hemsida med hjälp av HTML och JSP, och jag har nu lagt till en funktion som ska skicka mail till användarna varje gång någonting av intresse händer på hemsidan.

Eftersom att jag ännu inte har några direkta händelser att rapportera om så har jag bara lagt in koden vid sidan för registrering, och låter denna skicka mail varje gång någon registrerar sig på sidan. Men i framtiden kommer ju denna kod att användas i princip överallt eftersom att den kommer att maila om diverse olika saker som händer på hemsidan.

Darför så vill jag göra koden mer generell och göra så att jag inte behöver repetera den på varje sida på hemsidan. Och sedan vill jag bara kunna anropa koden när jag behöver använda den. Hur gör jag? Jag utgår från att jag först och främst måste bryta ut koden och placera den i en egen jsp-fil, exempelvis mail.jsp, men sen då?

Tack på förhand!
Det är en god designidé att hålla din JSP-sida så ren från ALL logik som möjligt och låta den istället ägna sig åt det den gör bäst, dvs rita ut HTML.

Logiken bör du istället lägga i en eller flera servlets som sedan populerar ett antal beans som du kan forwarda till din JSP.

Anledningen till detta är flera, men den mest framstående är ju att du sliper kladda ner dina JSP med logik, för det andra så kan du till skillnad från JSP-sidor kompilera dinaq servlets innan deploy för att därigenom upptäcka syntaxfel på ett betydligt enklare sätt och du kan även låta en och samma servlet populera mer än en JSP-sida med samma logik.
Citera
2013-05-17, 02:27
  #3
Medlem
Citat:
Ursprungligen postat av Proton
Det är en god designidé att hålla din JSP-sida så ren från ALL logik som möjligt och låta den istället ägna sig åt det den gör bäst, dvs rita ut HTML.

Logiken bör du istället lägga i en eller flera servlets som sedan populerar ett antal beans som du kan forwarda till din JSP.

Anledningen till detta är flera, men den mest framstående är ju att du sliper kladda ner dina JSP med logik, för det andra så kan du till skillnad från JSP-sidor kompilera dinaq servlets innan deploy för att därigenom upptäcka syntaxfel på ett betydligt enklare sätt och du kan även låta en och samma servlet populera mer än en JSP-sida med samma logik.
Ska du kunna utveckla detta? Dvs hur man åstadkommer det.
Citera
2013-05-17, 06:53
  #4
Moderator
Protons avatar
Citat:
Ursprungligen postat av Jontzohr
Ska du kunna utveckla detta? Dvs hur man åstadkommer det.
Kedjan ser ju ut såhär:

JSP -> Servlet -> en annan JSP eventuellt.

Anropet från din första JSP tar du emot i en servlet, gör något med och sedan med en RequestDispatcher forwardar du anropet till nästa JSP.

De schyssta med det är att du i din servlet kan i requesten lägga till attribut, till exempel beans som innehåller den information du tänkt rita ut på din andra JSP.

Läs på om servlets och JSP-sidor så ser du ju hur det funkar.

https://www.flashback.org/t1547290 är en tråd som diskuterar den problematiken.
__________________
Senast redigerad av Proton 2013-05-17 kl. 06:59.
Citera
2013-05-20, 16:05
  #5
Medlem
Citat:
Ursprungligen postat av Proton
Kedjan ser ju ut såhär:

JSP -> Servlet -> en annan JSP eventuellt.

Anropet från din första JSP tar du emot i en servlet, gör något med och sedan med en RequestDispatcher forwardar du anropet till nästa JSP.

De schyssta med det är att du i din servlet kan i requesten lägga till attribut, till exempel beans som innehåller den information du tänkt rita ut på din andra JSP.

Läs på om servlets och JSP-sidor så ser du ju hur det funkar.

https://www.flashback.org/t1547290 är en tråd som diskuterar den problematiken.
Har läst på rätt mycket i några dagar nu, men lyckas inte greppa varför man ens ska använda dessa, och förstår fortfarande inte riktigt hur jag ska lägga upp det.

Har skapat en mail-klass som hittills ser ut exakt som den gjorde när den låg på en av hemsidorna och skickade mail varje gång en speciell knapp användes. Självklart ska denna göras om så att den tar emot variabler som skickas med från någon annanstans (hur?). Frågan är vartifrån dessa ska skickas och hur man åstadkommer detta.

Borde jag alltså skicka parametrar från själva hemsidan vid en viss händelse till en servlet och sedan vidare till ytterligare en JSP? Varför behövs isåfall servletten?
Citera
2013-05-20, 16:57
  #6
Moderator
Protons avatar
Citat:
Ursprungligen postat av Jontzohr
Har läst på rätt mycket i några dagar nu, men lyckas inte greppa varför man ens ska använda dessa, och förstår fortfarande inte riktigt hur jag ska lägga upp det.

Har skapat en mail-klass som hittills ser ut exakt som den gjorde när den låg på en av hemsidorna och skickade mail varje gång en speciell knapp användes. Självklart ska denna göras om så att den tar emot variabler som skickas med från någon annanstans (hur?). Frågan är vartifrån dessa ska skickas och hur man åstadkommer detta.

Borde jag alltså skicka parametrar från själva hemsidan vid en viss händelse till en servlet och sedan vidare till ytterligare en JSP? Varför behövs isåfall servletten?
Därför att din jsp kommer gå att läsa utan en massa logik inlagd i den, dessutom kan du kompilera en servlet innan deploy till skillnad från jspsidor som kompileras on-the-fly och därmed är mera error-prone.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in