Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ

Podobné prezentace


Prezentace na téma: "VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ"— Transkript prezentace:

1 VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ
Zbyněk Šlajchrt Část 2.

2 Program Vývoj aplikace pro odesílání e-mailu
Základní práce se servletem Zpracování parametrů z HTML formuláře Generování jednoduché odpovědi Řešení problémů z češtinou Seznámení s JavaMail API Konfigurace mail session na serveru Injektáž mail session Sestrojení a odeslání zprávy

3 Vygenerování aplikace
Stáhněte si základ aplikace z alternativně lze použít generátor aplikací v Mavenu z příkazové řádky mvn archetype:generate - DarchetypeCatalog= -catalog.xml Aplikaci nazvěte Client Otevřete projekt v IDE

4 Servlet MailServlet Vytvořte třídu MailServlet
Nastavte dědičnost z javax.servlet.http.HttpServlet Přeřiďte metodu doPost

5 Registrace servletu Otevřete soubor WEB-INF/web.xml
Doplňte prvek deklarace servletu Doplňte prvek pro mapování servletu servlet bude mapován na cestu /sendMail

6 Formulář pro odesílání zprávy
Vytvořte JSP stránku mailForm.jsp page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title> formulář</title></head> <body> <h1>Formulář pro </h1> <form action="sendMail" method="post"> <label for="to">Komu:</label><br/> <input id="to" name="to" type="text"/><br/> <label for="subject">Předmět:</label><br/> <input id="subject" name="subject" type="text"/><br/> <label for="message">Zpráva:</label><br/> <textarea id="message" name="message" rows="20" cols="60"> </textarea><br/> <input type="submit" value="Odeslat"/> </form> </body> </html>

7 Uvítací stránka aplikace
Ve WEB-INF/web.xml nastavte formulář jako uvítací stránku aplikace <welcome-file-list> <welcome-file>mailForm.jsp</welcome-file> </welcome-file-list>

8 Sestavení a nasazení mimo NetBeans
Spusťte server Glassfish Otevřete administrátorskou konzoli V menu vyberte položku Applications Nakonfigurujte novou aplikaci Tlačítko Deploy Změňte Location na Local Packaged File or Directory Vyberte adresář s rozbaleným archivem aplikace <pracovni_adr>/ Cient/target/ Client

9 Spuštění aplikace Zadejte http://localhost:8080/emailClient/
nebo Launch v tabulce aplikací v Admin Consoli

10 Generování odpovědi servletem
@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // nastavíme typ obsahu response.setContentType("text/plain"); // nastavíme znakovou sadu response.setCharacterEncoding("UTF-8"); // získáme writer pro zápis odpovědi PrintWriter output = response.getWriter(); // zápis odpovědi output.println(" odeslán"); output.flush(); }

11 Zpracování parametrů v dotazu
protected void doPost(HttpServletRequest request, @Override HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("UTF-8"); response.setContentType("text/plain"); PrintWriter output = response.getWriter(); // sdělíme kontejneru, v jakém kódování request.setCharacterEncoding("UTF-8"); // očekáváme data od klienta // metoda getParameter(paramName) vrací // hodnotu parametru String subject = request.getParameter("subject"); String to = request.getParameter("to"); String message = request.getParameter("message"); // zavoláme pomocnou metodu - zatím nedělá nic sendMail(to, subject, message); // Odpověď bude obsahovat resumé output.println(" odeslán"); output.println("Komu:" + to); output.println("Zpráva:" + message); output.println("Předmět:" + subject); output.flush(); } private void sendMail(String to, String subject, String msg) {

12 Injektáž javax.mail.Session
Vytvořte privátní pole mailSession javax.mail.Session javax.annotation.Resource Prozatím pouze vypište jeho textové vyjádření v resumé posílaném na klienta

13 Konfigurace JavaMail Session
V administrátorské konzoli klikněte na Resources/JavaMail Sessions Klikněte na New Zadejte JNDI Name - mail/myMailSession Mail Host – adresa mail serveru Default User – závisí na mail serveru Default Return Address – vaše ová adresa

14 Odeslání zprávy – část 1. private void sendMail(String to, String subject, String msg) throws ServletException { try { // Vytvoříme objekt zprávy Message message = new MimeMessage(mailSession); // Zatím nenastavujeme From, použije se default // z konfigurace serveru //message.setFrom(); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false)); // Nastavíme předmět message.setSubject(subject); // Vložíme text zprávy message.setText(msg); // Nastavíme hlavičku indikující mailového klienta message.setHeader("X-Mailer", "My Mailer"); // Nastavíme datum odeslání Date timeStamp = new Date(); message.setSentDate(timeStamp); // Odešleme zprávu Transport.send(message); getServletContext().log("Mail sent to " + to + "."); } catch (MessagingException e) { throw new ServletException(e); }

15 Odeslání zprávy – část 2.

16 Domácí cvičení Nakonfigurovat mail session na Glassfish tak, aby se zprávy odesílaly přes GMail. Návod je na této adrese: via-glassfish-v3.html

17 Dodatek 1: Čeština v servletech
Pro správné fungování češtiny v servletech je třeba provést toto: Nastavit objektu response správné kódování response.setContentType("text/html; charset=utf-8") nebo response.setCharacterEncoding("utf-8") Používat Writer, nikoliv OutputStream response.getWriter() Kompilovat servlety ve správném kódování Čteme-li parametry z dotazu, je třeba kontejneru sdělit, v jakém kódování je očekáváme. request.setCharacterEncoding("utf-8") Odpovídá kódování stránky, ze které byl dotaz odeslán.

18 Dodatek 2: Ladění Glassfish
V administrátorské konzoli nastavit Configuration|JVM Settings|Debug = Enabled Nutný restart serveru V IntelliJ IDEA Select Run/Debug Configuration(kombo na horní liště)|Edit Configuration Add New Configuration (+)|Remote Port = 9009

19 Linky via-glassfish-v3.html


Stáhnout ppt "VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ"

Podobné prezentace


Reklamy Google