罗比特

学习笔记

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  2 随笔 :: 3 文章 :: 0 评论 :: 0 Trackbacks

2008年7月20日 #

这里先介绍用Java Mail 类实现发送邮件,然后再介绍Commons Email组件实现发送简单邮件和带附件的邮件

首先到官网上下载 Java Mail 1.4.1
http://java.sun.com/products/javamail/index.html
添加mail.jar到用户库中, 然后构建邮件并发送
impoet javax.mail.*;
Properties props
=new Properties();
Session session
=Session.getInstance(props,null);
props.put(
"mail.host","127.0.0.1");
props.put(
"mail.transport.protocol","smtp");
Message message
=new MimeMessage(session);
//message构建邮件内容,因为Message是抽象类,所以这里用它的子类MimeMessage
message.setForm(new InternetAddress("abc@163.com"));
message.setRecipient(Message.RecipientType.To,
new InternetAddress("123@163.com"));
message.setSubject(
"Hello");
message.setText(
"I love java");
Transport.send(message);

Commons Email组件很好的封装了Java Mail 类,用起来更加方便,功能更强大
下载该组件,把commons-email-1.1.jar 加载到该应用中
用Servlet处理发邮件,在doPost()方法中添加如下代码:
request.setCharacterEnconding("UTF-8");
SimpleEmail email
=new SimpleEmail();
email.setHostName(
"smtp.sina.com");
email.setAuthentication(
"username","password");
//这里设定一下邮件内容编码格式
email.setCharset("UTF-8");
//request.getParameter()从提交的表单中获取信息
email.setFrom(request.getParameter("from"));
email.addTo(request.getParameter(
"to"));
email.setSubjet(request.getPatameter(
"subject"));
email.setMsg(request.getParameter(
"content"));
email.send();

下面介绍带附件的邮件如何编写,实际上就是把上述两部分结合。
首先,表单里要有"file"域,在表单标签里添加 <Form enctype="multipart/form-data">
写一个方法getFile(),返回file类型,具体的内容请参加File Upload 那篇文章,先把文件存在web server的一个目录上,然后再发送
所不同的是,这次,构建一个MultiPartEmail email=new MultiPartEmail();
然后按上述代码添加好主题,内容等,需要注意的是,在getFile()中获取文件的时候,已经获取了表单域的信息,把这些信息存在一个HashMap中,然后通过email对象的方法添加这些信息时,直接从HashMap中获得即可
通过getFile()获得文件,然后
if(file!=null)
{
  EmailAttachment att
=new EmailAttachment();
  att.setPath(file.getPath());
  att.setDisposition(EmailAttachment.ATTACHMENT);
//这里是附件的类型
 att.setName(file.getName());
  email.addattach(att);
}

posted @ 2008-07-20 05:06 罗比特 阅读(159) | 评论 (0)编辑 收藏

  在Web应用中,实现文件上传,可以用这个组件:Commons FileUpload
  先到Apache官网下载这个组件,并将Commons-Fileupload.jar 和 Commons-io.jar加到用户库中,并添加到本应用中。
 
  在Servlet 添加一个Init()方法,用来接收一些初始参数,代码如下:
 
public ServletContext sc;
public String savePath;
public void init(ServletConfig config)
{
  config.getInitParameter(
"savePath");
  sc
=config.getServletContext();
}
   在doPost()方法中,添加代码:
DiskFileItemFactory factoty=new DiskFileItemFactory();
ServletFileUpload upload
=new ServletFileUpload(factory);
以下需要try
-catch一下
List Items
=upload.parseRequest(request);
Iterator it
=items.iterator();
while(it.hasNext())
{
  FileItem item
=(FileItem)it.next();
  
if(item.isFormField())
    {  
      item.getFiledName();
      item.getString(
"UTF-8")
    }
  
else
    {
       
if(item.getName()!=null&&item.getName().equals(""))
         {
           File temp
=new File(item.getName());
           File file
=new File(sc.getRealPath("/")+savePath,temp.getName());
           item.write(file);
         }
        
    }
}
posted @ 2008-07-20 04:30 罗比特 阅读(103) | 评论 (0)编辑 收藏

2008年7月15日 #

 FCKEditor之一款类似插件的东西,一般Web开发中,需要留言的地方,经常会使用该插件。功能很强大
 首先要下载FCKEditor, http://www.fckeditor.net/ ,并拷到当前自己的Web 应用当中
  
<script type="text/javascript" src="fckeditor/fckeditor.js"></script>

<script type="text/javascript">
    var oFCKeditor 
= new FCKeditor('FCKeditor1');
    oFCKeditor.BasePath    
= '/webproject12/fckeditor/';
    var sSkin;
    sSkin 
= "office2003";
    var sSkinPath 
= oFCKeditor.BasePath + 'editor/skins/' + sSkin + '/';
            
    oFCKeditor.Config[
'SkinPath'= sSkinPath;

    oFCKeditor.Config[
'PreloadImages'=
                
        sSkinPath 
+ 'images/toolbar.start.gif' + ';' +
                        sSkinPath 
+ 'images/toolbar.end.gif' + ';' +
                        sSkinPath 
+ 'images/toolbar.bg.gif' + ';' +
                        sSkinPath 
+ 'images/toolbar.buttonarrow.gif' ;
            
    oFCKeditor.Create();
</script>

 上述代码引自他人博客,罗比特实在是懒得打了,又发现写的如此工整的代码,嘿嘿,特此说明一下。
posted @ 2008-07-15 20:01 罗比特 阅读(106) | 评论 (0)编辑 收藏

  Servlet过滤器可以过滤浏览器和Servlet之间的内容。 主要用途有:
 1.用户认证和授权管理
 2.统计Web的访问量
 3.实现Web应用的日志的功能
 4.数据压缩和加密
 5.Xml文件转换到XSLT文件

实现过滤器的方法就是实现一个Java类,这个Java类要是实现javax.servlet.Filter接口,并配置web.xml文件
在Java类中要实现doFilter() 和 init() 方法。

在web.xml中添加以下配置:
<filter>
  
<filter-name>EncodingFilter</filter-name>
  
<filter-class>com.tutu.EncodingFilter<filter-class>
  
/*这里可以添加初始参数,在Init()方法里通过config对象得到,例如:程序应转向的页面*/
  
<init-parma>
    
<parma-name>url<parma-name>
    
<parma-value>login.jsp<parma-value>
  
</init-parma>
</filter>
<filter-mapping>
  
<filter-name>EncodingFilter</filter-name>
  
//这里指需要被过滤得页面
  <url-pattern>/admin/secure</url-pattern>
</filter-mapping>
posted @ 2008-07-15 19:55 罗比特 阅读(100) | 评论 (0)编辑 收藏

2008年7月14日 #

 这是Apache公司出的一个工具集,用于方便Web开发中关于数据库的操作。最大的好处就是,在SQL查询的时候,可以返回一个MapList 或者BeanList对象。
 首先到官网下载相关包 http://commons.apache.org/downloads/download_dbutils.cgi  下载后,引用commons-dbutils.jar 包到项目中

String url="jdbc:oracle:thin:@192.168.1.101:1521:ora9";
String sql
="select id,name,phone,email from guestbook order by id desc";
DbUtils.loadDriver(
"oracle.jdbc.driver.OracleDriver");
try
 
{
             Connection conn
=DriverManager.getConnection(url,"scott","tiger");
             QueryRunner qr 
= new QueryRunner();
             List result
=(List)qr.query(conn,sql,new MapListHandler());
             DbUtils.close(conn);

 }
   
     在qr.query()这个函数中,还可以选择一个BeanList 对象 
 
List results=(List)qr.query(conn,sql,new BeanListHandler(Guestbook.class));

    这样的好处是可以直接得到javaBean 的对象,把它直接保存在request 对象中,方便显示层的jsp 页面调用
request.setAttribute("BeanName",BeanList)

    同时,这里也可以用数据连结池实现数据库的连接
 
String sql="insert into guestbook(id,name,email) values (gb_seq.nextval,?,?)";
String[] param 
= {"abc","abc@163.com"};

Context context 
= new InitialContext();
DataSource ds 
= context.lookup("java:/comp/env/jdbc/oracleds"); 
QueryRunner qr
=new QueryRunner(ds);
qr.update(sql,param);
  
posted @ 2008-07-14 21:39 罗比特 阅读(725) | 评论 (0)编辑 收藏

仅列出标题