﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-罗比特</title><link>http://www.blogjava.net/qazwindy/</link><description>学习笔记</description><language>zh-cn</language><lastBuildDate>Fri, 17 Apr 2026 21:09:49 GMT</lastBuildDate><pubDate>Fri, 17 Apr 2026 21:09:49 GMT</pubDate><ttl>60</ttl><item><title>Java Mail</title><link>http://www.blogjava.net/qazwindy/archive/2008/07/20/216128.html</link><dc:creator>罗比特</dc:creator><author>罗比特</author><pubDate>Sat, 19 Jul 2008 21:06:00 GMT</pubDate><guid>http://www.blogjava.net/qazwindy/archive/2008/07/20/216128.html</guid><wfw:comment>http://www.blogjava.net/qazwindy/comments/216128.html</wfw:comment><comments>http://www.blogjava.net/qazwindy/archive/2008/07/20/216128.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qazwindy/comments/commentRss/216128.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qazwindy/services/trackbacks/216128.html</trackback:ping><description><![CDATA[<p>这里先介绍用Java Mail 类实现发送邮件，然后再介绍Commons Email组件实现发送简单邮件和带附件的邮件</p>
首先到官网上下载 Java Mail 1.4.1<br />
http://java.sun.com/products/javamail/index.html<br />
添加mail.jar到用户库中, 然后构建邮件并发送<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">impoet&nbsp;javax.mail.</span><span style="color: #000000">*</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Properties&nbsp;props</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Properties();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Session&nbsp;session</span><span style="color: #000000">=</span><span style="color: #000000">Session.getInstance(props,</span><span style="color: #0000ff">null</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />props.put(</span><span style="color: #000000">"</span><span style="color: #000000">mail.host</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">127.0.0.1</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />props.put(</span><span style="color: #000000">"</span><span style="color: #000000">mail.transport.protocol</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">smtp</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Message&nbsp;message</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MimeMessage(session);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">message构建邮件内容，因为Message是抽象类，所以这里用它的子类MimeMessage</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">message.setForm(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;InternetAddress(</span><span style="color: #000000">"</span><span style="color: #000000">abc@163.com</span><span style="color: #000000">"</span><span style="color: #000000">));<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />message.setRecipient(Message.RecipientType.To,</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;InternetAddress(</span><span style="color: #000000">"</span><span style="color: #000000">123@163.com</span><span style="color: #000000">"</span><span style="color: #000000">));<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />message.setSubject(</span><span style="color: #000000">"</span><span style="color: #000000">Hello</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />message.setText(</span><span style="color: #000000">"</span><span style="color: #000000">I&nbsp;love&nbsp;java</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Transport.send(message);</span></div>
<br />
Commons Email组件很好的封装了Java Mail 类，用起来更加方便，功能更强大<br />
下载该组件，把commons-email-1.1.jar 加载到该应用中<br />
用Servlet处理发邮件，在doPost()方法中添加如下代码：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">request.setCharacterEnconding(</span><span style="color: #000000">"</span><span style="color: #000000">UTF-8</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
SimpleEmail&nbsp;email</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;SimpleEmail();<br />
email.setHostName(</span><span style="color: #000000">"</span><span style="color: #000000">smtp.sina.com</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
email.setAuthentication(</span><span style="color: #000000">"</span><span style="color: #000000">username</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">password</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008000">//</span><span style="color: #008000">这里设定一下邮件内容编码格式</span><span style="color: #008000"><br />
</span><span style="color: #000000">email.setCharset(</span><span style="color: #000000">"</span><span style="color: #000000">UTF-8</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008000">//</span><span style="color: #008000">request.getParameter()从提交的表单中获取信息</span><span style="color: #008000"><br />
</span><span style="color: #000000">email.setFrom(request.getParameter(</span><span style="color: #000000">"</span><span style="color: #000000">from</span><span style="color: #000000">"</span><span style="color: #000000">));<br />
email.addTo(request.getParameter(</span><span style="color: #000000">"</span><span style="color: #000000">to</span><span style="color: #000000">"</span><span style="color: #000000">));<br />
email.setSubjet(request.getPatameter(</span><span style="color: #000000">"</span><span style="color: #000000">subject</span><span style="color: #000000">"</span><span style="color: #000000">));<br />
email.setMsg(request.getParameter(</span><span style="color: #000000">"</span><span style="color: #000000">content</span><span style="color: #000000">"</span><span style="color: #000000">));<br />
email.send();<br />
</span></div>
<br />
下面介绍带附件的邮件如何编写，实际上就是把上述两部分结合。<br />
首先，表单里要有"file"域，在表单标签里添加　&lt;Form enctype="multipart/form-data"&gt;<br />
写一个方法getFile()，返回file类型，具体的内容请参加File Upload 那篇文章，先把文件存在web server的一个目录上，然后再发送<br />
所不同的是，这次，构建一个MultiPartEmail email=new MultiPartEmail();<br />
然后按上述代码添加好主题，内容等,需要注意的是，在getFile()中获取文件的时候，已经获取了表单域的信息，把这些信息存在一个HashMap中，然后通过email对象的方法添加这些信息时，直接从HashMap中获得即可<br />
通过getFile()获得文件，然后<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">if</span><span style="color: #000000">(file</span><span style="color: #000000">!=</span><span style="color: #0000ff">null</span><span style="color: #000000">)<br />
{<br />
&nbsp;&nbsp;EmailAttachment&nbsp;att</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;EmailAttachment();<br />
&nbsp;&nbsp;att.setPath(file.getPath());<br />
&nbsp;&nbsp;att.setDisposition(EmailAttachment.ATTACHMENT);</span><span style="color: #008000">//</span><span style="color: #008000">这里是附件的类型</span><span style="color: #008000"><br />
</span><span style="color: #000000">　att.setName(file.getName());<br />
&nbsp;&nbsp;email.addattach(att);<br />
}</span></div>
<br />
<img src ="http://www.blogjava.net/qazwindy/aggbug/216128.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qazwindy/" target="_blank">罗比特</a> 2008-07-20 05:06 <a href="http://www.blogjava.net/qazwindy/archive/2008/07/20/216128.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>文件上传 File Upload</title><link>http://www.blogjava.net/qazwindy/archive/2008/07/20/216125.html</link><dc:creator>罗比特</dc:creator><author>罗比特</author><pubDate>Sat, 19 Jul 2008 20:30:00 GMT</pubDate><guid>http://www.blogjava.net/qazwindy/archive/2008/07/20/216125.html</guid><wfw:comment>http://www.blogjava.net/qazwindy/comments/216125.html</wfw:comment><comments>http://www.blogjava.net/qazwindy/archive/2008/07/20/216125.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qazwindy/comments/commentRss/216125.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qazwindy/services/trackbacks/216125.html</trackback:ping><description><![CDATA[&nbsp; 在Web应用中，实现文件上传，可以用这个组件：Commons FileUpload<br />
&nbsp; 先到Apache官网下载这个组件，并将Commons-Fileupload.jar 和 Commons-io.jar加到用户库中，并添加到本应用中。<br />
&nbsp;<br />
&nbsp;&nbsp;在Servlet 添加一个Init（）方法，用来接收一些初始参数，代码如下：<br />
&nbsp;
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;ServletContext&nbsp;sc;<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;savePath;<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;init(ServletConfig&nbsp;config)<br />
{<br />
&nbsp;&nbsp;config.getInitParameter(</span><span style="color: #000000">"</span><span style="color: #000000">savePath</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;sc</span><span style="color: #000000">=</span><span style="color: #000000">config.getServletContext();<br />
}</span></div>
&nbsp;&nbsp; 在doPost（）方法中，添加代码：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">DiskFileItemFactory&nbsp;factoty</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DiskFileItemFactory();<br />
ServletFileUpload&nbsp;upload</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ServletFileUpload(factory);<br />
以下需要try</span><span style="color: #000000">-</span><span style="color: #000000">catch一下<br />
List&nbsp;Items</span><span style="color: #000000">=</span><span style="color: #000000">upload.parseRequest(request);<br />
Iterator&nbsp;it</span><span style="color: #000000">=</span><span style="color: #000000">items.iterator();<br />
</span><span style="color: #0000ff">while</span><span style="color: #000000">(it.hasNext())<br />
{<br />
&nbsp;&nbsp;FileItem&nbsp;item</span><span style="color: #000000">=</span><span style="color: #000000">(FileItem)it.next();<br />
&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(item.isFormField())<br />
&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;item.getFiledName();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;item.getString(</span><span style="color: #000000">"</span><span style="color: #000000">UTF-8</span><span style="color: #000000">"</span><span style="color: #000000">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(item.getName()</span><span style="color: #000000">!=</span><span style="color: #0000ff">null</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">item.getName().equals(</span><span style="color: #000000">""</span><span style="color: #000000">))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;temp</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;File(item.getName());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;file</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;File(sc.getRealPath(</span><span style="color: #000000">"</span><span style="color: #000000">/</span><span style="color: #000000">"</span><span style="color: #000000">)</span><span style="color: #000000">+</span><span style="color: #000000">savePath,temp.getName());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;item.write(file);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
</span></div>
<img src ="http://www.blogjava.net/qazwindy/aggbug/216125.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qazwindy/" target="_blank">罗比特</a> 2008-07-20 04:30 <a href="http://www.blogjava.net/qazwindy/archive/2008/07/20/216125.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FCKEditor</title><link>http://www.blogjava.net/qazwindy/articles/215052.html</link><dc:creator>罗比特</dc:creator><author>罗比特</author><pubDate>Tue, 15 Jul 2008 12:01:00 GMT</pubDate><guid>http://www.blogjava.net/qazwindy/articles/215052.html</guid><wfw:comment>http://www.blogjava.net/qazwindy/comments/215052.html</wfw:comment><comments>http://www.blogjava.net/qazwindy/articles/215052.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qazwindy/comments/commentRss/215052.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qazwindy/services/trackbacks/215052.html</trackback:ping><description><![CDATA[　FCKEditor之一款类似插件的东西，一般Web开发中，需要留言的地方，经常会使用该插件。功能很强大<br />
　首先要下载FCKEditor, <a href="http://www.fckeditor.net/">http://www.fckeditor.net/</a>　，并拷到当前自己的Web 应用当中<br />
　　
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;</span><span style="color: #000000">script&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/javascript</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;src</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">fckeditor/fckeditor.js</span><span style="color: #000000">"</span><span style="color: #000000">&gt;&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">script&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/javascript</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;oFCKeditor&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FCKeditor(</span><span style="color: #000000">'</span><span style="color: #000000">FCKeditor1</span><span style="color: #000000">'</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;oFCKeditor.BasePath&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">/webproject12/fckeditor/</span><span style="color: #000000">'</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;sSkin;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;sSkin&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">office2003</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;sSkinPath&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;oFCKeditor.BasePath&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">editor/skins/</span><span style="color: #000000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;sSkin&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">/</span><span style="color: #000000">'</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;oFCKeditor.Config[</span><span style="color: #000000">'</span><span style="color: #000000">SkinPath</span><span style="color: #000000">'</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sSkinPath;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;oFCKeditor.Config[</span><span style="color: #000000">'</span><span style="color: #000000">PreloadImages</span><span style="color: #000000">'</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sSkinPath&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">images/toolbar.start.gif</span><span style="color: #000000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">;</span><span style="color: #000000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sSkinPath&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">images/toolbar.end.gif</span><span style="color: #000000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">;</span><span style="color: #000000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sSkinPath&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">images/toolbar.bg.gif</span><span style="color: #000000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">;</span><span style="color: #000000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sSkinPath&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">images/toolbar.buttonarrow.gif</span><span style="color: #000000">'</span><span style="color: #000000">&nbsp;;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;oFCKeditor.Create();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span></div>
<br />
　上述代码引自他人博客，罗比特实在是懒得打了，又发现写的如此工整的代码，嘿嘿，特此说明一下。
<img src ="http://www.blogjava.net/qazwindy/aggbug/215052.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qazwindy/" target="_blank">罗比特</a> 2008-07-15 20:01 <a href="http://www.blogjava.net/qazwindy/articles/215052.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Servlet 过滤器</title><link>http://www.blogjava.net/qazwindy/articles/215050.html</link><dc:creator>罗比特</dc:creator><author>罗比特</author><pubDate>Tue, 15 Jul 2008 11:55:00 GMT</pubDate><guid>http://www.blogjava.net/qazwindy/articles/215050.html</guid><wfw:comment>http://www.blogjava.net/qazwindy/comments/215050.html</wfw:comment><comments>http://www.blogjava.net/qazwindy/articles/215050.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qazwindy/comments/commentRss/215050.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qazwindy/services/trackbacks/215050.html</trackback:ping><description><![CDATA[&nbsp; Servlet过滤器可以过滤浏览器和Servlet之间的内容。 主要用途有：<br />
&nbsp;1.用户认证和授权管理<br />
&nbsp;2.统计Web的访问量<br />
&nbsp;3.实现Web应用的日志的功能<br />
&nbsp;4.数据压缩和加密<br />
&nbsp;5.Xml文件转换到XSLT文件<br />
<br />
实现过滤器的方法就是实现一个Java类，这个Java类要是实现javax.servlet.Filter接口，并配置web.xml文件<br />
在Java类中要实现doFilter() 和 init() 方法。<br />
<br />
在web.xml中添加以下配置：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">&lt;</span><span style="color: #000000">filter</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000">EncodingFilter</span><span style="color: #000000">&lt;/</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #0000ff">class</span><span style="color: #000000">&gt;</span><span style="color: #000000">com.tutu.EncodingFilter</span><span style="color: #000000">&lt;</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #0000ff">class</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #008000">/*</span><span style="color: #008000">这里可以添加初始参数，在Init（）方法里通过config对象得到，例如：程序应转向的页面</span><span style="color: #008000">*/</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">init</span><span style="color: #000000">-</span><span style="color: #000000">parma</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">parma</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000">url</span><span style="color: #000000">&lt;</span><span style="color: #000000">parma</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">parma</span><span style="color: #000000">-</span><span style="color: #000000">value</span><span style="color: #000000">&gt;</span><span style="color: #000000">login.jsp</span><span style="color: #000000">&lt;</span><span style="color: #000000">parma</span><span style="color: #000000">-</span><span style="color: #000000">value</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">init</span><span style="color: #000000">-</span><span style="color: #000000">parma</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">filter</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #000000">mapping</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000">EncodingFilter</span><span style="color: #000000">&lt;/</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">这里指需要被过滤得页面</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">url</span><span style="color: #000000">-</span><span style="color: #000000">pattern</span><span style="color: #000000">&gt;/</span><span style="color: #000000">admin</span><span style="color: #000000">/</span><span style="color: #000000">secure</span><span style="color: #000000">&lt;/</span><span style="color: #000000">url</span><span style="color: #000000">-</span><span style="color: #000000">pattern</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #000000">mapping</span><span style="color: #000000">&gt;</span></div>
<img src ="http://www.blogjava.net/qazwindy/aggbug/215050.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qazwindy/" target="_blank">罗比特</a> 2008-07-15 19:55 <a href="http://www.blogjava.net/qazwindy/articles/215050.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Common DbUtils</title><link>http://www.blogjava.net/qazwindy/articles/214825.html</link><dc:creator>罗比特</dc:creator><author>罗比特</author><pubDate>Mon, 14 Jul 2008 13:39:00 GMT</pubDate><guid>http://www.blogjava.net/qazwindy/articles/214825.html</guid><wfw:comment>http://www.blogjava.net/qazwindy/comments/214825.html</wfw:comment><comments>http://www.blogjava.net/qazwindy/articles/214825.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qazwindy/comments/commentRss/214825.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qazwindy/services/trackbacks/214825.html</trackback:ping><description><![CDATA[<p>　这是Apache公司出的一个工具集，用于方便Ｗｅｂ开发中关于数据库的操作。最大的好处就是，在SQL查询的时候，可以返回一个MapList 或者BeanList对象。<br />
　首先到官网下载相关包　<a href="http://commons.apache.org/downloads/download_dbutils.cgi">http://commons.apache.org/downloads/download_dbutils.cgi</a>&nbsp;　下载后，引用commons-dbutils.jar 包到项目中<br />
<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">String&nbsp;url</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">jdbc:oracle:thin:@192.168.1.101:1521:ora9</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />String&nbsp;sql</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">select&nbsp;id,name,phone,email&nbsp;from&nbsp;guestbook&nbsp;order&nbsp;by&nbsp;id&nbsp;desc</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />DbUtils.loadDriver(</span><span style="color: #000000">"</span><span style="color: #000000">oracle.jdbc.driver.OracleDriver</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">try</span><span style="color: #000000"><br />
<img id="Codehighlighter1_189_377_Open_Image" style="display: inline" onclick="this.style.display='none'; Codehighlighter1_189_377_Open_Text.style.display='none'; Codehighlighter1_189_377_Closed_Image.style.display='inline'; Codehighlighter1_189_377_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_189_377_Closed_Image" style="display: none; width: 11px; height: 16px" onclick="this.style.display='none'; Codehighlighter1_189_377_Closed_Text.style.display='none'; Codehighlighter1_189_377_Open_Image.style.display='inline'; Codehighlighter1_189_377_Open_Text.style.display='inline';" height="16" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" width="11" align="top"  alt="" />&nbsp;</span><span id="Codehighlighter1_189_377_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_189_377_Open_Text" style="display: inline"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection&nbsp;conn</span><span style="color: #000000">=</span><span style="color: #000000">DriverManager.getConnection(url,</span><span style="color: #000000">"</span><span style="color: #000000">scott</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">tiger</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QueryRunner&nbsp;qr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;QueryRunner();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; List&nbsp;result</span><span style="color: #000000">=</span><span style="color: #000000">(List)qr.query(conn,sql,</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MapListHandler());<br />
<img style="width: 11px; height: 17px" height="17" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" width="11" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DbUtils.close(conn);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;}</span></span></div>
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp; 在qr.query()这个函数中，还可以选择一个BeanList 对象　<br />
　
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">List&nbsp;results</span><span style="color: #000000">=</span><span style="color: #000000">(List)qr.query(conn,sql,</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BeanListHandler(Guestbook.</span><span style="color: #0000ff">class</span><span style="color: #000000">));</span></div>
<br />
&nbsp;&nbsp;&nbsp; 这样的好处是可以直接得到javaBean 的对象，把它直接保存在request 对象中，方便显示层的jsp 页面调用<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">request.setAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">BeanName</span><span style="color: #000000">"</span><span style="color: #000000">,BeanList)</span></div>
<br />
&nbsp;&nbsp;&nbsp; 同时，这里也可以用数据连结池实现数据库的连接<br />
&nbsp;
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">String&nbsp;sql</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">insert&nbsp;into&nbsp;guestbook(id,name,email)&nbsp;values&nbsp;(gb_seq.nextval,?,?)</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img id="Codehighlighter1_96_116_Open_Image" onclick="this.style.display='none'; Codehighlighter1_96_116_Open_Text.style.display='none'; Codehighlighter1_96_116_Closed_Image.style.display='inline'; Codehighlighter1_96_116_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_96_116_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_96_116_Closed_Text.style.display='none'; Codehighlighter1_96_116_Open_Image.style.display='inline'; Codehighlighter1_96_116_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />String[]&nbsp;param&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_96_116_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_96_116_Open_Text"><span style="color: #000000">{</span><span style="color: #000000">"</span><span style="color: #000000">abc</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">abc@163.com</span><span style="color: #000000">"</span><span style="color: #000000">}</span></span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Context&nbsp;context&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;InitialContext();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />DataSource&nbsp;ds&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;context.lookup(</span><span style="color: #000000">"</span><span style="color: #000000">java:/comp/env/jdbc/oracleds</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />QueryRunner&nbsp;qr</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;QueryRunner(ds);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />qr.update(sql,param);</span></div>
&nbsp;&nbsp; 
 <img src ="http://www.blogjava.net/qazwindy/aggbug/214825.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qazwindy/" target="_blank">罗比特</a> 2008-07-14 21:39 <a href="http://www.blogjava.net/qazwindy/articles/214825.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>