Εισαγωγή Παραμέτρων από φόρμα ή URL από Java Servlets σε κωδικοποίηση UTF-8

Πολλάκις έχουμε χρειαστεί να εισάγουμε μια φόρμα με δεδομένα. Αποτελεί εδώ και δεκαετίες πλέον ένα αναπόσπαστο μέρος του web, έτσω και για τις βασικές πληροφορίες login ακόμα και σε administration επίπεδο. Οι δημοφιλέστεροι τρόποι για να λαμβάνουμε δεδομένα είναι ή μέσω GET ή μέσω POST.
Σημείωση:
Αν δεν ξέρετε πως να κάνετε servlets μπορείτε να δείτε τα παρακάτω άρθρα:

Όπως και σε αυτό το άρθρο .

Για την μέθοδο GET πρέπει να υλοποιήσετε αυτήν την μέθοδο:

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

Ενώ για την μέθοδο POST την παρακάτω μέθοδο:


public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException

Εφόσον υλοποιήσαμε τις μεθόδους εντός αυτές πρέπει να καλέσετε την εξής μέθοδο προκειμένου να πάρετε το αποτέλεσμα:
Συνέχεια

Δημιουργία web εφαρμογών σε java (servlet) με Maven

Έχουμε δει το πως να στήνεις σε πολύ απλά τον tomcat σε ubuntu και τα τρέχεις ένα αρχείο .war σε αυτόν (βλ. εδώ) και πως σε maven να κάνεις μια απλή java εφαρμογή (βλ. εδώ). Σήμερα θα δούμε την web πλευρά της java και πως μπορείς σχετικά εύκολα να κάνεις servlets με maven.

Συνέχεια

Kids και 50 Shades of Gray

Σήμερα στο facebook είδα κάποιος να αναρτά αυτό το άρθρο που σε απλά Ελληνικά μια κοπέλα 12-13 χρονών πέθανε επειδή θεώρησαν φαεινή ιδέα ένα αγόρι από την παρέα της να αναπαραστήσουν ότι κάνουν στο 50 Shades of Grey (Που είναι τσόντα – υπερπαραγωγή, μια ποιο ακριβή version με σενάριο της ταινίας της Τζούλιας με λίγο μαστίγωμα παραπάνω, sugarcoated με ρομαντισμό για να αρέσει στις γυναίκες).

Και η πρώτη σκέψη που μου πέρασε στο μυαλό είναι, το αγόρι θα την κατέβασε πειρατικά και θα την είδε, δεν νομίζω ότι θα υπήρχε κάποιο σινεμά που να επιτρέπει σε άτομα κάτω των 18 να  δουν τέτοιου είδους ταινία. Και γι αυτό το θέμα λέω, έχεις ένα παιδί σε pc και λόγο, τυπικέ Έλληνα γονέα, ότι δεν έχεις ιδέα από υπολογιστές αφήνεις το παιδί να κάνει ότι του καπνίσει, μέχρι να κατεβάζει τσόντες, και δεν λες να βάλεις το pc κάπου που να έχεις άμεση οπτική επαφή με την οθόνη του από μια απόσταση μερικών μέτρων έτσι να ελέγχεις τι στο καλό κάνει  το παιδί όταν χρησιμοποιεί τον υπολογιστή.

Του πούστη αν το pc είναι σε κοινόχρηστο χώρο θα δείς αν το παιδί βλέπει τσόντες η όχι και ειδικά αν είναι κάπου κοινόχρηστα αποθαρρύνεις το παιδί να δει τσόντα ειδικά στην ευαίσθητη ηλικία 12-13 που αρχίζει να μεταβαίνει στην ενηλικίωση και είναι ποιο επηρεπείς σε σεξουαλικές παροτρύνσεις, λόγο ορμονών. Δεν χρειάζεται πυρινική φυσική απλά λίγο μυαλό, κοινή λογική και στην χειρότερη περίπτωση λίγη εφευρετικότητα, και δεν είναι ανάγκη να είσαι και top master και με 12 Ph.D για να ελέγχεις ένα pc και το βλέπει το παιδί σου σε αυτό.

Και έτσι είπα  2-3 λόγια από κάτω και το άτομο που έβαλε το link αυτό μου είπε ότι υπάρχουν περιπτώσεις που βλέπουν παιδιά την ταινία στο Σινεμά με την ΣΥΝΕΝΕΣΗ ΤΩΝ ΓΟΝΕΩΝ παρόλο που οι υπάλληλοι του κινηματογράφου λένε ότι το παιδί ΔΕΝ ΜΠΟΡΕΙ ΝΑ ΔΕΙ ΤΗΝ ΤΑΙΝΙΑ και ΣΥΝΕΝΕΣΕ ΝΑ ΤΗΝ ΔΕΙ και να πω ότι δεν ήξερες του πούστη έχει βουήξει ο τόπος για την Εν λόγο ταινία. Έστω και να μην έχεις ακούσει τίποτα από την στιγμή που ο ίδιος κινηματογράφος σου λέει ότι το παιδί ΔΕΝ μπορεί να δει την ταινία δεν σου κόβει λίγο ΓΙΑΤΙ ΔΕΝ ΠΡΕΠΕΙ ΝΑ ΤΗΝ ΔΕΙ.

Και ΟΚ πες ότι πας τον Γιο η την Κόρη να δει τέτοιου είδους ταινίες για «Σεξουαλική Διαπεδαγώγηση», μάγκες εκεί σας βγάζω την κόκκινη κάρτα, το πως να βάζεις την γυναίκα κάτω να βγάζεις την μαλαπέρδα σου και χωρίς να νοιάζεσαι για τα συναισθήματα σας να το κάνουν όπως στο Discovery Channel δεν είναι αντικείμενο σεξουαλικής διαπαιδαγώγησης.

Σεξουαλική διαπαιδαγώγηση είναι να μαθαίνουν το πως γίνονται τα παιδιά και το πως να μαζεύουν την «μαλαπέρδα» του η την «σπηλιά» της μην πάθει κάποιο νόσημα, καθώς και τα σεξουαλικά νοσήματα που μπορεί να πάθει με την αχαλίνωτο τρόπο ικανοποίησης. Σεξουαλική διαπαιδαγώγηση είναι το παιδί να καταλάβει ότι η «μαλαπέρδα» είναι για λίγες και εκλεκτές και όχι ότι η «σπηλιά» είναι αντικαταστάτης της Μαριάς Παλάμη και ούτε μια καλύτερη version αυτής, ομοίως η γυναίκες αντίστοιχα πρέπει να μάθουν ότι η «σπηλιά» είναι για λίγους και όχι δημόσια περιουσία και ούτε χωράφι προς πώληση.

Παίδες νομίζω έχω την εντύπωση πως ο κόσμος έχε πουτανέψει. Δεν είπαμε να κράζουμε την κοπέλα σαν ιερόδουλη λόγο ότι έχει την φούστα λίγο πάνω από το γόνατο, αλλά όχι και να θεωρούμε τις γυναίκες υποκατάστατο της Μαριάς Παλάμης. Ναι όλοι έχουμε ορμές αλλά το πως το αντιλαμβανόμαστε κάθε φορά που έχουμε ορμή το τι είναι και να λέμε «σταμάτα», εκεί είναι το μεγαλύτερο παιχνίδι. Και να το πω χύμα όποιος μπορεί και μαζεύει καλύτερα το πουλί του αυτός είναι νικητής.

Lamp Stack (Linux Apaxhe Mysql php) και Virtual Hosts σε Centos 6.6

Εφόσον είδαμε πως να στήσουμε Lamp Stack σε Ubuntu και Debian και πως στήσαμε VirtualHosts σε αυτό ήρθε η ώρα να σας δείξουμε πως να το κάνετε και σε Centos 6.6 (Αν και βγήκε η έκδοση 7, λόγο ότι βγαίνει μόνο σε 64 bit και δεν έχω το κατάλληλο hardware για 64 bit VMs το έκανα σε 6.6).

Εγκατάσταση Apache Mysql php

Κατ’ αρχάς εγκαθιστούμε τον http server, την mysql, την php και κάποια php modules, χρήσιμα για ένα μέσο site, με την εντολή:

yum install httpd mysql php php-devel php-mysql php-pdo php-xml php-imap php-pear.noarch php-gd php-pear

Και μετά για δοκιμή δίνουμε:

echo "<?php phpinfo(); ?>" > /var/www/http/info.php

Και μπορούμε να δούμε αν παίζει δίνοντας στον browser http://^server_address^/info.php ή http://localhost/info.php αν στήνουμε τον server στο ίδιο μηχάνημα.

Ακόμη κάποια site θέλουν το Plugin Imagemagick που εγκαθιστάτε με τις εντολές:

yum install ImageMagick ImageMagick-devel gcc
pecl install imagick
echo "extension=imagick.so" > /etc/php.d/imagick.ini
sudo service httpd restart

 Δημιουργία VirtualHost

Για να ελέγχεται αν το configuration του apache έχει κάποιο λάθος ,που ενδεχομένως να κάνατε εσείς, κατα την διάρκεια εκτέλεσης του οδηγού δίνουμε:

sudo httpd -t

Ο τρόπος που θα δημιουργούμε τα virtualhost είναι ο ίδιος που χρησιμοποιεί το Debian/Ubuntu μόνο που θα τον στήσουμε εμείς Εξ’ αρχής.

Γι αυτό κατ’ αρχάς θα κάνουμε 2 φακέλους, έναν που θα περιέχει όλα τα vhosts και έναν που θα έχει τα «ενεργά» vhosts:

sudo mkdir -p /etc/httpd/vhosts-enabled
sudo mkdir -p /etc/httpd/vhosts-available

Στο folder /etc/httpd/vhosts/vhosts-enabled θα υπάρχουν τα virtual hosts που θα θέλουμε να σερβίρουμε και θα είναι Symbolic Links των αρχείων που θα περιγράφουν τα Vhost που θα βρίσκονται στον φάκελο /etc/httpd/vhosts/vhosts-available και θα είναι αρχεία υπό μορφή *.conf

Και για να «ενεργοποιήσουμε» ανοίγουμε με τον αγαπημένο μας editor:

sudo nano /etc/httpd/conf/httpd.conf

Αν δεν έχετε τον nano μπορείτε ή να το κάνετε με vi η να τον εγκαταστήσετε με την εντολή:

sudo yum install nano

Κάνουμε uncomment (αφαιρούμε το # από μπροστά) την γραμμή που λέει

# NameVirtualHost *:80

Και προσθέτουμε στο τέλος του αρχείου τα παρακάτω:

Include vhosts-enabled/*.conf

Και με Ctrl+O αποθηκεύουμε και με Ctrl+X βγαίνουμε από τον Editor

Και δημιουργούμε έναν φάκελο φιλοξενίας των virtual host:

sudo mkdir vhosts

Τώρα αν θέλουμε να δημιουργήσουμε ένα virtual Host δημιουργούμε έναν φάκελο στο /var/www/vhosts που θα περιέχει έναν φάκελο για τα αρχεία του site και έναν φάκελο για τα logs. Αυτό είναι δυνατόν να γίνουν με τις εντολές:


cd /var/www/vhosts
sudo mkdir ^όνομα_vhost^
sudo mkdir ^όνομα_vhost^/htdocs #Φάκελος φιλοξενίας site
sudo mkdir ^όνομα_vhost^/logs #Φάκελος logs

Όπου το ^όνομα_vhost^ ένα χαρακτηριστικό όνομα για το site σας (πχ. το url του)

Μέτα πηγαίνετε στον φάκελο /etc/httpd/vhosts-enabled με την εντολή:

cd /etc/httpd/vhosts-enabled

Με τον αγαπημένο σας editor δημιουργείτε ένα αρχείο που το όνομα θα έχει την μορφή ^όνομα_vhost^.conf

sudo nano ^όνομα_vhost^.conf

Και βάζουμε περιεχόμενο της μορφής:


<Virtualhost *:80>
ServerName ^domain_or_ip^

DocumentRoot  ^path_που_περιεχει_τα_αρχεία_του_σιτε^

DirectoryIndex index.php home.php index.html index.htm

ErrorLog ^Path_για_logs_σφαλμάτων^
CustomLog ^path_για_άλλου_είδους_logs^ combined
</Virtualhost>

Όπου:

  • ^domain_or_ip^: To domain ή η IP που θέλουμε το site να σερβίρετε.
  • ^path_που_περιεχει_τα_αρχεία_του_σιτε^: Εκεί που έχουμε τα αρχεία του site μας (στην περίπτωσή μας /var/www/vhosts/^όνομα_vhost^/htdocs )
  • ^Path_για_logs_σφαλμάτων^: Path που θα καταγράφονται ότι error υπάρχει. (συγκεκριμένη τιμή /var/www/vhosts/^όνομα_vhost^/logs/error.log)
  • ^path_για_άλλου_είδους_logs^: Path που καταγράφονται logs για το ποια IP επισκέπτεται το site. (συγκεκριμένή τιμή /var/www/vhosts/^όνομα_vhost^/logs/custom.log)

Το virtualhost το ενεργοποιούμε με τις εντολές:

sudo ln -s `pwd`/^όνομα_vhost^.conf ../vhosts-enabled/^όνομα_vhost^.conf

ή εναλλακτικά

sudo ln -s /etc/httpd/vhosts-available/^όνομα_vhost^.conf /etc/httpd/vhosts-enabled/^όνομα_vhost^.conf

Και μετά δίνεις

sudo service httpd restart

και δίνοντας http://^site_url^ στον browser σας μπορείτε να επισκεφτείτε το site σας. (Αρκεί στο /var/www/vhosts/^όνομα_vhost^/htdocs να έχετε βάλει καποιο περιεχόμενο 😉 )
 

Δημιουργία και τρέξιμο web εφαρμογών μέσω Maven και Tomcat σε Ubuntu (Quick ‘n’ Dirty)

Mε την Java μπορείς να κάνεις εφαρμογές που είτε τρέχουν μέσω του Browser (αν και λόγο ότι προσφέρει πολλά κενά ασφαλείας αυτή η μέθοδος δεν χρησιμοποιείται και καλό είναι να έχετε ΑΠΕΝΕΡΓΟΠΟΙΗΜΕΝΑ τα applet από τον Browser σας) είτε μέσω του επονομαζόμενου application server.

Υπάρχουν πολλές επιλογές, σε ubuntu linux μέσω αποθετηρίων μπορείτε να βάλετε έναν από τους 2:

  1. Jboss
  2. Tomcat

Εμείς σε αυτό το άρθρο θα ασχοληθούμε το πως να στήσετε τον tomcat και να τρέχετε εφαρμογές με την χρήση war αρχείων. (Αντίστοιχά των αρχείων .jar αλλά για web εφαρμογές)

Κατ’ αρχάς εγκαθιστούμε τον tomcat

sudo apt-get install tomcat7 tomcat7-admin

Και μπορούμε να την ξεκινήσουμε με την εντολή:

sudo service tomcat7 start

Ομοίως τον σταματάμε με την εντολή:

sudo service tomcat7 stop

Μετά θα δημιουργήσουμε έναν χρήστη με τον οποίο θα μπορούμε να ανεβάσουμε την εφαρμογή μας:
Κατ’ αρχάς ανοίγουμε με τον αγαπημένο μας editor το αρχείο /etc/tomcat7/tomcat-users.xml για το παράδειγμά μας θα χρησιμοποιήσουμε τον nano:

sudo nano /etc/tomcat7/tomcat-users.xml

Και στο αρχείο που θα μας ανοίξει ανάμεσα Στο βάζουμε μια εγραφή της εξής μορφής:

 <user username="%username%" password="%password%" roles="manager-gui,admin-gui" />

Όπου %username% (χωρίς τα %) ένα usernane και %password% (χωρίς τα %) ένα password (Που ΔΕΝ κρυπτογραφείτε από τον tomcat).

Μετά δίνουμε:

sudo service tomcat7 force-reload

Μετά ανοιγουμε έναν browser και δίνουμε http://127.0.0.1:8080/manager ή http://<url_server&gt;:8080/manager αν τον έχουμε εγκαταστήσει σε έναν server με url <url_server>

Θα σας βγάλει ένα παράθυρο που θα σας πει ότι πρέπει να δώσετε ένα username και ένα password. Εσείς δώστε το username και το password που βάλατε στο /etc/tomcat7/tomcat-users.xml και θα σας βγάλει σε μια οθόνη που θα μοιάζει έτσι:
Στιγμιότυπο από 2015-02-28 17:38:32

Εμάς μας ενδιαφέρει η φόρμα που θα είναι όπως αυτή στην παρακάτω εικόνα:
upload_war

Που θέλει ένα αρχείο .war που το βάζουμε εκεί και το κάνουμε Upload και αυτό στην συνέχεια τρέχει την εφαρμογή μας.

Εναλλακτικά τα αρχεία .war μπορείτε να τα βάλετε και στο /var/lib/tomcat7/webapps για να τρέξουν.

Αν έχετε την εφαρμογή σε αρχείο .war τότε δεν χρειάζεται τα παρακάτω.

Για να κάνουμε ένα αρχείο .war θα χρησιμοποιήσουμε το maven. Έχουμε κάνει γι αυτό ένα άρθρο λίιιγο παλαιότερα από τότε που γράφτηκε αυτό το άρθρο.

Τα βήματα είναι τα ίδια με το άρθρο στο προηγούμενο link την εξαίρεση ότι το application αρχικοποιείται με την εντολή (Απλά αν εκτελέσετε την εντολή θα το έχετε έτοιμο δεν χρειάζεται τίποτε παραπάνω):


mvn -B archetype:generate  -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=<basiko package>  -DartifactId=<onoma project>

Όπου <basiko package>,<onoma project> είναι ότι εξηγεί και το άρθρο για το maven. Ίσως ασχοληθούμε αργότερα, σε άλλο άρθρο για το πως θα κάνουμε την δικιά μας web εφαρμογή σε tomcat.

Εφόσον εκτελέσαμε την εντολή με την εντολή:

cd <onoma project> 

Πάμε στον φάκελο του project που κάναμε και με τη εντολή

mvn package

Κάνουμε ένα αρχείο .war που θα βρίσκεται στο path: <onoma project>/target/<onoma project>.war

Αυτό το αρχείο το επιλέγουμε και το κάνουμε upload στην φόρμα αυτή. (Αν το έχουμε ήδη κάνει upload μπορούμε είτε να του αλλάξουμε όνομα είτε να κάνουμε unload το εν λόγο αρχείο και Ξανά upload)

Μετά μπορούμε να δούμε την εφαρμογή μας να τρέχει στο url: http://:8080/<onoma project> ή στο http://localhost:8080/<onoma project> αν το τρέχουμε τοπικά.

Χριστοπαναγίες

ee161f2f1cc48632

Στην καθομιλουμένη έχει καθιερωθεί μαζί με την λέξη «γαμώ» να συνοδεύεται με σημαντικές προσωπικότητες της Ορθοδοξίας συγκεκριμένα ο Χρίστος και η Παναγία. Και ρε φίλε που μόλις έβρισες θέλω να σε ρωτήσω «ΤΙ ΣΟΥ ΦΤΑΙΕΙ Ο ΧΡΙΣΤΟΣ ΚΑΙ Η ΠΑΝΑΓΙΑ;» δηλαδή τι το  τόσο άσχημο σου έχει κάνει;

Πίστεψέ με στάνταρτ δεν φταίει ούτε ο Χριστός ούτε η Παναγία, που μόλις δεν έβαλε το γκόλ η ομάδα ή δεν νίκησε αυτήν την Κυριακή, ούτε και που δεν μπορείς να δεις το φωτάκι που έχει ανάψει στην πόρτα στην τράπεζα, ούτε επειδή σου κάηκε ο τραχανάς, ούτε και που δεν μπορεί «ο μαλάκας» όπως τον αποκαλείς να κάνει ένα aliased domain. Και σίγουρα δεν φταίει για οτιδήποτε άλλο σου συμβαίνει.

Γι αυτό ΣΤΑΜΑΤΑ ΝΑ ΒΡΙΖΕΙΣ δεν σπάς μόνο τα νεύρα η κάτι χειρότερο αλλά προσβάλλεις και εμένα ταυτόχρονα. Διότι δεν έχεις κάθε δικαίωμα να βρίζεις κάτι που εγώ και όχι μόνο θεωρώ ιερό. Όπως εγώ δεν μπορώ να βρίσω κάτι που θεωρείς εσύ ιερό είτε είναι Ο Θεός είναι είναι ο Αλάχ είτε ο Βούδας είτε η μάνα σου είτε ο Μουζουράκης καβάλα σε Πτεροδάχτυλο playstation 3 (insired and used first from mikieus),  είτε you name it. Το ίδιο ισχύει και για μένα είναι αμφίδρομή η σχέση ΣΕΒΑΣΜΟΥ.

Και στο φινάλε φινάλε, για να γίνει ποιο κατανοητό, αν δεν γουστάρεις Χριστό, Παναγία  δικαίωμα σου, αλλά εξίσου δικαίωμά μου να γουστάρω και να τα θεωρώ ιερά, γκε γκε, γι αυτό ράψτο με ντίζα (used by mikeius first) και μην ξαναβρίσεις. Άντε μπράβο.

Αποκτήστε πρόσβαση σε .mdb (MS Access) βάσεις σε Ubuntu Linux μέσω ODBC

Αν και σπάνιο σενάριο υπάρχουν περιπτώσεις που θέλουμε μέσω ODBC  να έχουμε πρόσβαση σε βάσεις δεδομένων .mdb (γνωστές και σαν βάσεις JET ) που παράγονται μέσω MSAcess ειδικά αν θέλετε να κάνετε migrate από πλατφόρμα Windows σε Linux.

Γι αυτό κατ’ ευθείας στο ψητό ανοίγουμε το καλό μας τερματικό και δίνουμε:


sudo apt-get install libmyodbc
sudo apt-get install odbc-mdbtools

Εφόσον ολοκληρωθεί η εγκατάσταση δίνουμε:


sudo nano /etc/odbcinst.ini

Συνέχεια