Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
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
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.