明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

JSP Insider 5: 在JSP中使用JavaMail---4

[摘要]第三部分:在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è)計分開。