免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2485 | 回复: 0
打印 上一主题 下一主题

Seasar2入门(一) [复制链接]

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-21 08:44 |只看该作者 |倒序浏览

Seasar2(S2Container),简单的说,是比Spring一样提供DI功能的框架,但比Sping轻量级。

比理论来说本人更喜欢实际操作和调试,接下来,就让我们开始Seasar2之旅吧。

首先,先下载和安装JDK,Eclipse,Tomcat

JDK 下载:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html 下载JDK 6 Update 22

Eclipse 下载:http://www.eclipse.org/downloads/ 下载Eclipse IDE for Java EE Developers

Tomcat 下载:http://tomcat.apache.org/download-60.cgi 下载32-bit Windows zip

接下来,下载Seasar2(S2Container)

http://s2container.seasar.org/2.4/ja/downloads.html 下载S2Container

把下载后的S2Container解压缩,主要关注下2个文件夹

「lib」文件夹:包含S2Container以及相关库。

「doc」文件夹:S2Container的相关文档。

接下来,开始用S2Container开发。

使用Eclipse新建项目,「File」⇒「New」⇒「Dynamic Web Project」,项目名叫“seasar”。

 

把下面jar包拷贝到lib目录下,并加入到Build Path里。

(1)使用S2Container必须的文件

s2-framework-2.4.42.jar

commons-logging-1.1.1.jar

javassist-3.4.ga.jar

ognl-2.6.9-patch-20090427.jar

(2)使用S2AOP必须的文件

aopalliance-1.0.jar

(3)使用Java EE服务器以外的Servlet容器(比如Tomcat)时必须的文件

geronimo-jta_1.1_spec-1.0.jar

新建Bean类(DataBean.java)

view plaincopy to clipboardprint?
01.package jp.seasar.framework;  
02. 
03.import java.util.Date;  
04. 
05.public class DataBean {  
06.    private String title;  
07.    private java.util.Date time;  
08.    private String memo;  
09. 
10.    public DataBean() {  
11.    }  
12. 
13.    public DataBean(String title, Date time, String memo) {  
14.        this.title = title;  
15.        this.time = time;  
16.        this.memo = memo;  
17.    }  
18. 
19.    public String getTitle() {  
20.        return title;  
21.    }  
22. 
23.    public void setTitle(String title) {  
24.        this.title = title;  
25.    }  
26. 
27.    public java.util.Date getTime() {  
28.        return time;  
29.    }  
30. 
31.    public void setTime(java.util.Date time) {  
32.        this.time = time;  
33.    }  
34. 
35.    public String getMemo() {  
36.        return memo;  
37.    }  
38. 
39.    public void setMemo(String memo) {  
40.        this.memo = memo;  
41.    }  
42. 
43.    @Override 
44.    public String toString() {  
45.        return "Title:" + title + ",Date:" + time + ",Memo:" + memo;  
46.    }  
47. 
48.} 
 

新建管理Data的接口(TestBean.java)

view plaincopy to clipboardprint?
01.package jp.seasar.framework;  
02. 
03.import java.util.ArrayList;  
04. 
05.public interface TestBean {  
06.      
07.    public java.util.ArrayList<DataBean> getDatalist();  
08. 
09.    public void setDatalist(ArrayList<DataBean> list);  
10. 
11.    public void addData(String title, java.util.Date time, String memo);  
12. 
13.    public void removeData(int i);  
14. 
15.    public String toString();  
16.} 
 

新建管理Data的实现类

 
view plaincopy to clipboardprint?
01.package jp.seasar.framework;  
02. 
03.import java.util.ArrayList;  
04.import java.util.Date;  
05. 
06.public class TestBeanImpl implements TestBean {  
07. 
08.    private ArrayList<DataBean> datalist;  
09. 
10.    public TestBeanImpl() {  
11.        datalist = new ArrayList<DataBean>();  
12.    }  
13. 
14.    @Override 
15.    public ArrayList<DataBean> getDatalist() {  
16.        return datalist;  
17.    }  
18. 
19.    @Override 
20.    public void setDatalist(ArrayList<DataBean> list) {  
21.        datalist = list;  
22. 
23.    }  
24. 
25.    @Override 
26.    public void addData(String title, Date time, String memo) {  
27.        datalist.add(new DataBean(title, time, memo));  
28. 
29.    }  
30. 
31.    @Override 
32.    public void removeData(int i) {  
33.        datalist.remove(i);  
34.    }  
35. 
36.    @Override 
37.    public String toString() {  
38.        String result = "<table border=\"1\">";  
39. 
40.        for (DataBean bean : datalist) {  
41.            result += "<tr>";  
42.            result += "<td>" + bean.getTitle() + "</td>";  
43.            result += "<td>" + bean.getTime().toString() + "</td>";  
44.            result += "<td>" + bean.getMemo() + "</td>";  
45.            result += "</tr>";  
46.        }  
47.        result += "</table>";  
48.        return result;  
49.    }  
50. 
51.} 
 

 新建S2Container的配置文件(app.dicon)

 
view plaincopy to clipboardprint?
01.<?xml version="1.0" encoding="UTF-8"?>  
02.<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN" 
03.    "http://www.seasar.org/dtd/components24.dtd">  
04.<components>  
05.    <component name="mybean" class="jp.seasar.framework.TestBeanImpl" />  
06.</components> 
 

新建Servlet(Servlet1.java)

view plaincopy to clipboardprint?
01.package jp.seasar.framework;  
02. 
03.import java.io.IOException;  
04. 
05.import javax.servlet.ServletException;  
06.import javax.servlet.annotation.WebServlet;  
07.import javax.servlet.http.HttpServlet;  
08.import javax.servlet.http.HttpServletRequest;  
09.import javax.servlet.http.HttpServletResponse;  
10. 
11.import org.seasar.framework.container.S2Container;  
12.import org.seasar.framework.container.factory.S2ContainerFactory;  
13. 
14.@WebServlet("/serv1")  
15.public class Servlet1 extends HttpServlet {  
16. 
17.    private static final long serialVersionUID = 1L;  
18. 
19.    @Override 
20.    protected void doGet(HttpServletRequest req, HttpServletResponse resp)  
21.            throws ServletException, IOException {  
22. 
23.        S2Container container = S2ContainerFactory.create("app.dicon");  
24.        container.init();  
25.        TestBeanImpl bean = (TestBeanImpl) container.getComponent("mybean");  
26. 
27.        bean.addData("1", new java.util.Date(), "This is test.");  
28.        bean.addData("2", new java.util.Date(), "这是测试。");  
29. 
30.        resp.setContentType("text/html; charset=UTF-8");  
31.        resp.setCharacterEncoding("UTF-8");  
32. 
33.        java.io.PrintWriter out = resp.getWriter();  
34.        out.print("<html><head></head>");  
35.        out.print("<body>");  
36.        out.print("<h5>");  
37.        out.print(bean.toString());  
38.        out.print("</h5>");  
39.        out.print("</body></html>");  
40. 
41.    }  
42. 
43.} 
 

配置web.xml

view plaincopy to clipboardprint?
01.<?xml version="1.0" encoding="UTF-8"?>  
02.<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  
03.  <display-name>seasar2</display-name>  
04.  <servlet>  
05.    <servlet-name>serv1</servlet-name>  
06.    <servlet-class>jp.seasar.framework.Servlet1</servlet-class>  
07.  </servlet>  
08.  <servlet-mapping>  
09.    <servlet-name>serv1</servlet-name>  
10.    <url-pattern>/serv1</url-pattern>  
11.  </servlet-mapping>  
12.  <welcome-file-list>  
13.    <welcome-file>index.html</welcome-file>  
14.  </welcome-file-list>  
15.</web-app> 
 

编译发布到Tomcat

==============================================

本文没有写完,还需要修改,不明之处,还请谅解。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/engchina/archive/2010/11/25/6035304.aspx

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP