Project 4o

Για το τελευταίο project εργάστηκα ως εξής :

Struts

Με το netbeans και με το struts έφτιαξα αρχικά μια login page όπως ακριβώς αναπτύσσεται στο παράδειγμα:

http://netbeans.org/kb/docs/web/quickstart-webapps-struts.html

Επιπλέον βοήθεια πήρα απο τις σελίδες :

http://j2ee.masslight.com/Chapter4.html#othertags

http://www.mkyong.com/struts/configure-the-struts-tag-libraries/

http://www.vaannila.com/struts/struts-example/struts-login-page-example-1.html

Έφτιαξα μια success.jsp οπου εκεί οδηγείται ο χρήστης όταν έχει κάνει σωστά το login και πρόσθεσα μία ακόμα σελίδα την failure.jsp στην περίπτωση που το login του χρήστη είναι λάθος. Και οι δύο αυτές σελίδες βρίσκονται κάτω από τον φάκελο WEB-INF μαζί με τα υπόλοιπα στοιχεία της Struts(tlds  κτλ). Στην συνέχεια έφτιαξα την Struts LoginForm  μέσα από την οποία λαμβάνονται τα στοιχεία που έχει εισάγει ο χρήστης για περαιτέρω επεξεργασία και τέλος πρόσθεσα την  LoginAction όπου εκεί ουσιαστικά γίνονται οι έλεγχοι για το αν τα στοιχεία που εισήγαγε ο χρήστης είναι σωστά και πηγαίνει κατάλληλα σε sucess ή failure σελίδα. Έχω βάλει 2 χρήστες να έχουν την δυνατότητα να κάνουν σωστό login τον χρήστη vania και τον χρήστη texwww .

Γενικά προσπάθησα μιας και είναι το τελευταίο project να βάλω  τα περισσότερα από αυτά που μάθαμε σε μια «αληθοφανή » σελίδα. Ξέρω ότι δεν είναι το πιο λειτουργικό πράγμα να φαίνεται το username με το password  απλά ήθελα να δείξω την πλήρη λειτουργικότητα του struts. Ιδανικά θα έπρεπε να κάνω register να πηγαίνουν τα δεδομένα σε μια database που από εκεί θα ελέγχει για την ορθότητα των δεδομένων. Και να πω την αλήθεια έψαξα αρκετά μήπως και μπορέσω να φτιάξω κάτι τέτοιο με τεχνολογίες που ήδη είχαμε μάθει + struts αλλά δεν βρήκα κάποια κομψή λύση και επίσης ήθελα να αφήσω όσο πιο καθαρό γινόταν το project με τις ζητούμενες τεχνολογίες.

JSTL

Η JSTL με παίδεψε πολύ περισσότερο από το πρώτο μέρος με το Struts. Κατέληξα να χρησιμοποιήσω το core tld που βρίσκεται μέσα στην βιβλιοθήκη JSTL 1.2 . Μετά από πολλές δοκιμές και αρκετές ώρες αναζήτησης στο web για παραδείγματα κατέληξα πως για κάποιος λόγο το c-rt tld δεν δουλεύει με το netbeans . Για την JSTL κατασκεύασα μία σελίδα στην οποία οι χρήστες αφού έχουν διαλέξει ένα userIDname να μπορούν να αφήνουν σχόλια για την quality of service του «ηλεκτρονικού κήπου» . Να αναφέρω πως το κομμάτι με την κατασκευή JavaBean & EL  shopping Cart είναι ακριβώς το ίδιο με το project 3 μόνο που πρόσθεσα άλλα 2 νέα πεδία. Ήθελα να χρησιμοποιήσω και taglib  xml αλλά όσο και να προσπάθησα δεν τα κατάφερα. Ο κώδικας μου έτρεχε κανονικότητα εκτός Struts αλλά προσθέτοντας τον μέσα στο struts δεν δούλευε, όποτε μάλλον μαζί με το Struts δημιουργείται πρόβλημα .

Σελίδες που βασίστηκα :

http://www.roseindia.net/jstl/introduction.shtml

http://www.java-tips.org/java-tutorials/tutorials/introduction-to-jstl-using-netbeans-4.html

http://www.java2s.com/Code/Java/JSTL/SimpleChatApplication.htm

Μιας και ήταν το τελικό project είπα να το φτιάξω πιο «χαριτωμένο» βάζοντας ένα έτοιμο css template

http://www.freecsstemplates.org/preview/lotusflower/

Μέρες απασχόλησης -> 3

P.s Να αναφέρω ένα ακόμα πρόβλημα που προέκυψε κατά το test που έκανα για την ταχύτητα με το YSlow. Με έριχνε ένα βαθμό από Α σε Β επειδή δεν είχα χρησιμοποιήσει το Content Delivery Network (CDN). Πάτησα το προτεινόμενο κουμπάκι για το (CDN) και αυτό αύξησε αμέσως την απόδοση της σελίδας μου. Βέβαια η επιλογή αυτή από browser σε browser δεν παραμένει και επίσης δεν ήξερα με ποιον άλλο τρόπο μέσα από τον κώδικα μου να βελτιώσω την ταχύτητα του site μου.

Advertisements
Posted in Uncategorized | Σχολιάστε

Report 3ου Project

Για το πρώτο μέρος EL & JavaBean εργάστηκα ως εξής:

Αρχικά δημιούργησα μία κλάση την Cart όπου εκεί γίνονται οι τα set και τα get για τα 3 μου προϊόντα.

Στην συνέχεια μέσα στο JavaBeans.jsp έφτιξα 3 αντικείμενα ένα για τον καφέ ένα για την ζάχαρη και ένα για το νερό

Με την εντολή initParam.xxx  πήρα την τιμή κόστους του κάθε προϊόντος, η οποία τιμή βρίσκεται μέσα στο web.xml μου. Την τιμή  αυτή την πολλαπλασίασα με τον αριθμό items που εισήγαγε ο χρήστης και αποθηκεύεται στο  xxxItem.xxx

όπου xxx οι τιμές coffe, sugar, water για τα 3 αντικείμενά μου. Το βιβλίο να πω την αλήθεια δεν με βοήθησε πάρα πολύ μιας και έχει σχετικά μικρή αναφορά για el και javabeans. Βασίστηκα στις παρακάτω σελίδες για να το υλοποιήσω.

http://www.scribd.com/doc/47714826/Rk-Jsp-Session-Cookies

http://docs.oracle.com/javaee/1.3/tutorial/doc/JSPIntro11.html

και κυρίως

http://www.java2s.com/Tutorial/Java/0360__JSP/JSPDummyShoppingCart.htm

http://www.java2s.com/Code/Java/JSP/ShoppingCartBasedOnJsp2.htm

Τέλος τα cookies δημιουργήθηκαν βασικά μέσω του seesion το οποίο κρατάει τιμές και δεν χρειάστηκε να μπλεχτώ με cookies περαιτέρω.

http://www.java2s.com/Code/Java/JSP/JspSessionCart.htm

Για το δεύτερο μέρος Jsp scriptlet εργάστηκα ως εξής:

Τις τιμές των ποσοτήτων τις εισάγει ο χρήστης με την βοήθεια της εντολής application.getInitParameter(«χχχ») όπου χχχ οι τεμές για καφέ, νερό , ζάχαρη. Την τιμή κάθε προιόντος την παίρνω πάλι μέσω του web.xml μέσω της εντολής getValue()  την οποία όμως χρησιμοποιώ σε συνδυασμό με cookies γιατί αυτή την τιμή θέλω να την κρατάω. Για κάθε μία από αυτές τις τιμές έκανα και από ένα cookie.  Τις τιμές αυτές τις πολλαπλασιάζω για να βρώ το total per item και στην συνέχεια τα προσθέτω όλα για το τελικό.

Να πω την αλήθεια τα cookies με παίδεψαν πάρα πολύ και δεν ξέρω κιόλας αν δουλεύουν και καλά. Βασίστηκα στο βιβλίο αλλά σε πάρα μα πάρα πολλές σελίδες που έψαξα για να βρω και να καταλάβω πώς δουλεύουν. Αναφέρω τις παρακάτω ως οδηγό για την υλοποίησή μου.

http://www.roseindia.net/jsp/jspsession/Cookies.shtml

http://www.java2s.com/Code/Java/JSP/SettingandReadingCookies.htm

http://www.roseindia.net/jsp/jspcookies.shtml

http://www.jsptutorial.net/working-with-cookie-in-jsp.aspx

Τα κουμπιά report και download code το δημιούργησα ακριβώς με τον ίδιο τρόπο που τα έφτιαξα στο project 2.

Χρόνος που αφιέρωσα: Πάνω από 50 ώρες!!! Και όλα αυτά για τα cookies γιατί την υπόλοιπη εργασία την είχα τελειώσει από την Κυριακή και έψαχνα 3 μέρες να κάνω τα cookies τα οποία δεν ξέρω καν αν δουλεύουν ικανοποιητικά…

Github : https://github.com/VaniaZ/Project3

Github : download -> https://github.com/VaniaZ/Project3/downloads

Υ.Γ. Να αναφέρω πως έκανα τα 2 projects σε 1 για δική σας ευκολία κυρίως για να μην ψάχνετε να βρείτε τα .jsp αρχεία που αντιστοιχούν σε κάθε περίπτωση. Επίσης τα ένωσα μιας και μοιράζονται κοινά στοιχεία όπως τον listener για το Report το web.xml  και τις εικόνες.

Posted in Uncategorized | Σχολιάστε

Report 2ου Project

Το δεύτερο project δεν ήταν όπως το περίμενα….

Νόμιζα μιας και είχα κάνει τον κύριο κορμό του converter ότι θα τελείωνε γρήγορα όμως πραγματικά μου έφαγε πολύ περισσότερο χρόνο απ όσο νόμιζα..

Συνοπτικά τι έκανα :

1) Το Currency converter δεν τον πείραξα από το προηγούμενο project ότι περιέχει ο κώδικας αυτός αναλύεται στο 1ο  report

2) Το redirect στην σελίδα του blog μου το έκανα ώς εξής:

Δημιούργησα 3 αρχεία class

  • 1ο της κλάσης του report link μου
  • 2ο αρχείο με τον listener
  • 3ο το Servlet μου

Ακολούθησα πιστά τις οδηγίες του βιβλίου μόνο που αντί να επιστρέφει ένα string το δικό μου παράδειγμα με την εντολή

response.sendRedirect(report.getReport());

κάνει redirect και πηγαίνει στην σελίδα που τώρα διαβάζεται!

3) Για το 3ο μέρος με το download επίσης ακολούθησα το αντίστοιχο part του βιβλίου όπου εκεί κατεβάζει ένα .jar αρχείο δοκίμασα να δω αν τρέχει και με αρχείο .rar και είδα πως όντως έτρεχε!

Συμβουλεύτηκα επίσης και το internet μιας και ο κώδικας του βιβλίου περιείχε και κάποιο λάθος . Το λινκ όπου συνέκρινα το κώδικα μπορείτε να το βρείτε εδώ:

 http://www.mkyong.com/servlet/servlet-code-to-download-text-file-from-website-java/

4) Αφού έκανα compile τους κώδικες μου προέκυψαν τα .class αρχεία τα οποία και έβαλα κάτω απο τον φάκελο myproject\WEB-INF\classes

5) Στην συνέχεια έφτιαξα το web.xml όπου εκεί  πρόσθεσα τα servlets μου, τον listener καθώς και μία report_link παράμετρο με την οποία κάνω redirect στο blog μου με την αναφορά.

6) Έκανα shutdown, έκανα restart ξανά τον tomcat μου, πήγα στο localhost μου κάτω από τον φάκελο που έφτιαξα το project και ο converter μου ήταν έτοιμος!

Προβλήματα

Φυσικά τα πράγματα δεν ήταν τόσο απλά όσο περιγράφονται πιο πάνω 🙂

Έφαγα πάνω από μισή μέρα ψάχνοντας πώς να κάνω compile τα 3 συσχετιζόμενα αρχεία με τον listener

έκανα τα πάντα!

Τι javac  *.java  έκανα, τι μετατροπή σε .jar έκανα το αποτέλεσμα της κλάσης Report, γιατί μόνο αυτή έκανε compile και μετά έτρεχα τα άλλα αρχεία βάζοντας στο classpath  το νέο  .jar δεν έλεγε να τρέξει με τίποτα. Και δεν μιλάω για το project αλλά αυτό το παράδειγμα του βιβλίου πραγματικά μου έφαγε 1 ολόκληρη μέρα για να κάνω αυτό το Listen.do να τρέξει!!!

Αφού είδα και απόειδα έβαλα όλα τα αρχεία στο netbeans τα έκανα compile και πήρα έτοιμα τα .class και συνέχισα με το Deploying! έμαθα βέβαια αρκετά μέχρι εκεί όπως πχ όταν έχεις ένα λάθος στο web.xml σου όταν πας να κάνεις deploy το οποίο και βρήκα διαβάζοντας την κονσόλα που ανοίγει ο tomcat ! Μπορώ να πω ότι έδειχνε και την γραμμή ακριβώς με το λάθος μου το οποίο διόρθωσα και όλα πήγαν οκ στην συνέχεια!

Το κωδικά μπορείτε να τον βρείτε και στο Github μου

-> https://github.com/VaniaZ/My-Currency-Converter

Τι δεν έκανα

Δεν μπόρεσα να κάνω να κρατάει στην ίδια σελίδα τα αποτελέσματα. Όπως διάβασα αυτό γίνεται με ajax αλλά ήδη έχουν περάσει οι μέρες και παρόλο που έψαξα δεν βρήκα κάτι για να μπορέσω να το προσαρμόσω στον δικό μου κώδικα κάτι που να το καταλαβαίνω κιόλας, γιατί ajax δεν γνωρίζω .

Περίεργο

Παρόλο που στον localhost μου ο converter τρέχει ΚΑΝΟΝΙΚΟΤΑΤΑ  μόλις το ανεβάσω στο server της σχολής και βάλω έναν τετραψήφιο αριθμό εκεί που παλιά είχε ένα κενό για να για να διαχωρίζει πχ τις χιλιάδες πάει και βάζει τώρα ένα ?

δηλαδή αν πατήσω 1654 παλιά στην μετατροπή έβγαζε 1 654.0 και τώρα πάει και βάζει 1?654.0!!

Σκέφτηκα μήπως είναι το encode έκανα αλλαγές βάζοντας το UTF-8 αλλά το πρόβλημα έγινε χειρότερο οπότε το άφησα έτσι. Στις παρακάτω εικόνες σας δείχνω ότι σε localhost πραγματικά δουλεύει και αν μπορέσετε να βρείτε το λάθος που κάνω θα ήθελα να μου αφήσετε ένα σχόλιο γιατί πραγματικά δεν ξέρω τι πάει στραβά.

Ευχαριστώ!

Posted in Uncategorized | Σχολιάστε

Project_1

Θα προσπαθήσω να δείξω έστω με κάποια pics ότι το project μου δουλεύει. Αυτο το κάνω γιατί δυστύχώς δεν μπόρεσα να βρω static IP. Ελπίζω μόνο να μπορεσω να λύσω το πρόβλημα του port forwording μου ώστε τα επόμενα projects να τρέχουν κανονικά.

Εδώ όπως βλέπετε έχω επιλέξει να μετατρέψω 10,52 euros σε δολάρια Αμερικής. Πατώντας το submit button θα με πάει στην επόμενη σελίδα με την μετατροπή

Σε περίπτωση τώρα που βάλω λάθος δεδομένα όπως ένα string αντί για έναν αριθμό τότε  έχω

και μου βγάζει μήνυμα error

Αυτά και ελπίζω μόνο να βρώ σύντομα κάποια άκρη

Posted in Uncategorized | Σχολιάστε

Homework 2

Το  πως κατάφερα να «σηκώσω» τον apache περιγράφεται στο προηγούμενο άρθρο μου οπότε θα προσθέσω επιπλέον πως έτρεξα το 1ο μου Servlet

1) Μέσα στον tomcat και μέσα στον φάκελο webapps δημιούργησα ένα νέο φάκελο τον HW2 όπου δημιουργησα νέο φάκελο τον WEB-INF

2) Εκει μέσα έβαλα το αρχείο web απο το site του μαθήματος καθώς και έναν νέο φάκελο τον classes όπου εκεί έβαλα τον κώδικα της Java για το Servlet

3) Απο  το  cmd  έκανα compile τον κώδικα της Java χρησιμοποιώντας και την βιβλιοθήκη του tomcat servlet-api.jar . Αυτό έγινε με την εντολή javac -cp  path_of_lib\servlet-api.jar Ch1Servlet.java

4) Μετά άνοιξα τον browser και πληκτρολόγησα τον localhost

http://localhost:1050/HW2/MyFirstServlet

Το αποτέλεσμα φαίνεται παρακάτω :

 

p.s Μπήκα στον πειρασμό και πείραξα λιγάκι τους κώδικες, όπως να αλλάξω το html περιεχόμενο του Servlet και να αλλάξω την port που ακούει ο localhost

Posted in Uncategorized | Σχολιάστε

Installing Apache Tomcat on Windows 7 x64

We’ve learned how to install tomcat 7 on linux and OS X. I will try to make a tutorial for installing tomcat 7 on Windows 7 this time. I’ve  done it and it works fine!

1) Go to http://tomcat.apache.org/download-70.cgi

Under Core tab download .zip

It will be zip file and extract the zip to any directories of your pc.  Suppose you exacted it to desktop.

2) I have also install JDK .  -> http://www.oracle.com/technetwork/java/javase/downloads/jdk-netbeans-jsp-142931.html

3) Open command prompt and go to  that directory .

>  cd C:\………….\Desktop\apache-tomcat-7.0.0

then access bin folder of apache-tomcat-7.0.0

> cd bin

then  just type startup.bat to start tomcat

> startup.bat

Tomcat  will start.  If you get any error message related to environment variable, then set an environment variable named JRE_HOME to the pathname of the directory into which you installed the JRE  or you may also use the full JDK rather than just the JRE. In this case set your JAVA_HOME environment variable to the pathname of the directory into which you installed the JDK.

How to change environment variable ?

  • right click on the «computer» icon
  • -> properties
  • -> Advanced system settings
  • under the tab  Advanced  there is an «environment variable» button ->Press it!
  • On the «User variables …. » tab press edit  -> variable name : JAVA_HOME    and   at Variable Value : select the path where java has been installed on your system  ( in my case C:\Program Files (x86)\Java\jdk1.6.0_29 )
  • Do the same with variable JRE_HOME

4) Open a new cmd window an do step 3 again

5)Now open your browser and type

http://localhost:8080

Then you will see if everything is ok this page:

6) To stop tomcat.. type

>  shutdown.bat

 

P.S. I apologise for any mistakes in my English 🙂

Posted in Uncategorized | Σχολιάστε

Διόρθωση HTML/CSS file

Με βάση ένα HTML/CSS template έχω φτιάξει ένα site στον inf-server στον χώρο που μας διαθέτει η σχολή.

Μέσω του W3C   βρήκα τον HTML Validator. Μπορείτε να το βρείτε στο site:

http://www.w3schools.com/web/web_validate.asp

Έκανα copy paste το link και διαπίστωσα ότι έχω 6 errors.

Τα παραθέτω εδώ:

  1.   Line 16, Column 82: there is no attribute «align»…</h3><img  src="images/rose.png" width="75" height="75" alt=" " align=«right"/>
  2. Line 18, Column 4: end tag for element «p» which is not open
    </p>
  3. Line 32, Column 7: element «u» undefined
    <h3><u>Whats new ?</u></h3><br />
  4.  Line 35, Column 49: there is no attribute "target"
    …ttp://twitter.com/#!/vaniazig" target="_blank"> <img src="images/twitter.png"w…
  5.  Line 35, Column 121: end tag for "img" omitted, but OMITTAG NO was specified
    …t="_blank"> <img src="images/twitter.png"width="65" height="65" alt=" "  > </a>
  6.  Line 69, Column 66: an attribute specification must start with a name or name token
    1. …tp://www.oswd.org/design/preview/id/3614" " target="_blank">Visit oswd.org</a>
      

Είχα επίσης και ένα warning το

  • Line 35, Column 59: start tag was here
…ter.com/#!/vaniazig" target="_blank"> <img src="images/twitter.png"width="65" …

Απ’ότι είδα δεν είναι σημαντικά errors γι’αυτό και άλλωστε δεν υπήρχε πρόβλημα στο να εμφανίζεται κανονικά η ιστοσελίδα. Αφου τα διόρθωσα ξανα έκανα νέο έλεγχο και το αποτελεσμα που είχα ήταν :

 

Ομοίως έκανα και για το CSS file. Από το W3C βρήκα τον αντίστοιχο CSS Validator  έκανα copy paste το link μου πάλι. Αυτή την φορά δεν υπήρχε κανένα λάθος στο CSS αρχείο μου!Πράγμα λογικό μιας και επρόκειτο για ένα έτοιμο CSS template 😛

 

Υ.Γ Μπορώ να πω ότι σχεδόν ενθουσιάστηκα! Δεν ήξερα καν ότι υπάρχει κάτι σαν compiler για HTML και CSS! Εντάξει οι γλώσσες αυτές γνωρίζω πως έχουν ανοχή σε errors . Ωστόσο θυμάμαι πως έχω περάσει αρκετή ώρα προσπαθώντας να λύσω προβλήματα εκεί που λογικά δεν θα έπρεπε να εμφανίζονται!! Πολύ χρήσιμο εργαλείο!

Posted in Uncategorized | Σχολιάστε