JSP Insider 5: 在JSP中使用JavaMail---4
發(fā)表時間:2023-07-22 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]第三部分:在JSP中使用JavaMail構(gòu)造JSP現(xiàn)在,將介紹如何把這些對象放到一起,需要用頁面指示語把這些對象導(dǎo)入,這點(diǎn)是很關(guān)鍵的。注意:也要用到j(luò)ava.util.date,因?yàn)閑mail的時戳...
第三部分:在JSP中使用JavaMail
構(gòu)造JSP
現(xiàn)在,將介紹如何把這些對象放到一起,需要用頁面指示語把這些對象導(dǎo)入,這點(diǎn)是很關(guān)鍵的。注意:也要用到j(luò)ava.util.date,因?yàn)閑mail的時戳要用到j(luò)ava.util.date。
<%@ page
import= " javax.mail.*, javax.mail.internet.*,
=>javax.activation.*, java.util.*"
%>
下一步要創(chuàng)建一個特定的信息,表示郵件已經(jīng)被發(fā)送。你可以自己設(shè)定該信息,通常是:“Your mail has been sent!
如何創(chuàng)建和發(fā)送消息
創(chuàng)建Message對象的代碼在第二部分已經(jīng)出現(xiàn)了,F(xiàn)在我們可以處理該消息。很簡單,只要在對象中使用get和 set properties方法即可。使用post過來的信息作為參數(shù),例如request.getParameter()就是個很有用的方法,可以獲取post發(fā)送來的參數(shù)。參見Listing B。
Listing B:
newMessage.setFrom(new InternetAddress(request.getParameter("from")));
newMessage.setRecipient(Message.RecipientType.TO, new
InternetAddress(request.getParameter("to")));
newMessage.setSubject(request.getParameter("subject"));
newMessage.setSentDate(new Date());
newMessage.setText(request.getParameter("text"));
最后就是發(fā)送消息了,JavaMail工具使得這件事變得很簡單:
transport.send(newMessage);
把它們組合在一起
剛才我們介紹的是一個個的分開的組件,現(xiàn)在可以把它們組合在一起,放在一個JSP腳本中。注意,要加入捕捉錯誤并顯示給用戶的腳本語句。JSP腳本請見Listing C。要使用該腳本,只要把腳本拷貝到你的電腦中即可。
Listing C:
<%@ page
import=" javax.mail.*, javax.mail.internet.*, javax.activation.*,java.util.*"
%>
<html>
<head>
<TITLE>JSP meets JavaMail, what a sweet combo.</TITLE>
</HEAD>
<BODY>
<%
try{
Properties props = new Properties();
Session sendMailSession;
Store store;
Transport transport;
sendMailSession = Session.getInstance(props, null);
props.put("mail.smtp.host", "smtp.jspinsider.com");
Message newMessage = new MimeMessage(sendMailSession);
newMessage.setFrom(new InternetAddress(request.getParameter("from")));
newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(request.getParameter("to")));
newMessage.setSubject(request.getParameter("subject"));
newMessage.setSentDate(new Date());
newMessage.setText(request.getParameter("text"));
transport = sendMailSession.getTransport("smtp");
transport.send(newMessage);
%>
<P>Your mail has been sent.</P>
<%
}
catch(MessagingException m)
{
out.println(m.toString());
}
%>
</BODY>
這就行了!如果你打算了解JavaMail所做的一步步的動作,就使用'sendMailSession.setDebug(true);'。
現(xiàn)在你已經(jīng)對JSP 和JavaMail的使用有所入門。如果想了解更多信息,請參見Sun's JavaMail links。
如何做得更好?
最重要的是這個工具能夠運(yùn)行。但我們可以改進(jìn)它。后續(xù)教程將介紹:
為什么不把表單放在JSP中?
客戶端的驗(yàn)證
如何使用beans來代替那些雜亂的不能重用的代碼。
通過JSP,把功能和設(shè)計分開。