Servlets - aplicatii practice folosind
JBOSS IDE 2.0
Trimiterea de alt continut decit HTML
Crearea unui Dynamic Web Project: File -> New -> Other -> Dynamic Web Project
Adaugarea proiectului la serverul curent: click cu butonul drept al mouse-ului pe
server si se alege Add/Remove
Projectsdin
meniu. Eventual se alege Publish..,
daca aceasta actiune nu se efectueaza automat.
Crearea unui servlet: File
-> New -> Other ->Servlet
- Se specifica javax.servlet.http.HttpServlet ca clasa de baza
- Se bifeaza generarea metodelor doPost
si doGet, eventual init si destroy pentru crearea/distrugerea resurselor alocate
Eventual corpul uneia dintre metodele doGet sau doPost se
completeaza cu o referinta spre cealalta (ex.: in doGet se scrie doPost(request,response);)
Adaugarea in directorul WEB-INF/lib
a JAR-urile necesare pentru generarea de continut diferit de HTML (de
exemplu: acme-gifencoder-2003-03-20.jar
pentru a genera imagini GIF)
In cadrul metodei doPost
(sau doGet, dupa preferinta):
Se seteaza content type-ul potrivit (de ex: response.setContentType("image/gif");)
Daca acest content-type este unul de tip text se va scrie
raspunsul in PrintWriter out =
response.getWriter();
Daca raspunsul este binar, va fi scris in ServletOutputStream out =
res.getOutputStream();
Se va scrie raspunsul folosind metode specifice fiecarui tip
de raspuns in parte (de exemplu folosirea unui obiect Image pe care se deseneaza si apoi
codificarea sa folosind un obiect GifEncoder)
Trimiterea de email-uri
Crearea unui Dynamic Web Project: File -> New -> Other -> Dynamic Web Project
Adaugarea proiectului la serverul curent: click cu butonul drept al mouse-ului pe
server si se alege Add/Remove
Projectsdin
meniu. Eventual se alege Publish..,
daca aceasta actiune nu se efectueaza automat.
Crearea unui servlet: File
-> New -> Other ->Servlet
- Se specifica javax.servlet.http.HttpServlet ca clasa de baza
- Se bifeaza generarea metodelor doPost
si doGet, eventual init si destroy pentru crearea/distrugerea resurselor alocate
Eventual corpul uneia dintre metodele doGet sau doPost se
completeaza cu o referinta spre cealalta (ex.: in doGet se scrie doPost(request,response);)
Apelarea codului pentru trimiterea de email (se recomanda a se
scrie intr-o metoda sau o clasa aparte) si afisarea rezultatelor in mod
normal, ca in orice servlet
Pentru a trimite email folosind JavaMail:
Se creeaza un obiect javax.mail.Session: Session session =
Session.getDefaultInstance(p, null);
Se creeaza un mesaj javax.mail.internet.MimeMessage: MimeMessage message = new
MimeMessage(session);
Se seteaza cimpul from: message.setFrom(new
InternetAddress(from));
Se adauga cimpuri TO, CC, BCC folosind metoda addRecipient a lui message: message.addRecipient(Message.RecipientType.TO,
new InternetAddress(to));
Se seteaza subiectul: message.setSubject(subject);
Se seteaza header-ele Mime-Version, Content-Type si Content-Transfer-Encoding
la valorile necesare. De exemplu: message.setHeader("Mime-Version","1.0");
message.setHeader("Content-Type","text/html;
charset=\"ISO-8859-1\";");
message.setHeader("Content-Transfer-Encoding","7bit");
Se seteaza textul mesajului, cu codificarea corespunzatoare
lui content-type si content-transfer-encoding: message.setText(msgtext);
Se trimite mesajul: Transport.send(message);
Crearea unei cereri HTTP dintr-o
metoda Java
(pentru a forta incarcarea unui servlet, de exemplu)
Crearea unui obiect URL: java.net.URL url = new
java.net.URL(PROTOCOL,HOST,PORT,FILE);
Crearea unei conexiuni pe baza obiectului URL: HttpURLConnection m_con =
(HttpURLConnection)url.openConnection();
Setarea metodei: m_con.setMethod("POST");
Setarea proprietatilor conexiunii: m_con.setRequestProperty("Accept","text/html");
// any other properties here
m_con.setDoInput(true);
m_con.setDoOutput(true);
Scrierea cererii pe conexiune: m_con.getOutputStream().write();
Obtinerea raspunsului de la server (doar codul de status)
folosind getResponseMessage sau getResponseCode: int i = m_con.getResponseCode();
String resp = m_con.getResponseMessage();
Pentru a citi raspunsul trimis de server se poate folosi m_con.getInputStream();
Document Info
Accesari:
1515
Apreciat:
Comenteaza documentul:
Nu esti inregistrat Trebuie sa fii utilizator inregistrat pentru a putea comenta