Seasar2入门(一)

Seasar2入门(一)

标签: stringservleteclipseencodingbeanclass

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 forJava 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)使用JavaEE服务器以外的Servlet容器(比如Tomcat)时必须的文件

geronimo-jta_1.1_spec-1.0.jar

 

新建Bean类(DataBean.Java)

  1. package jp.seasar.framework;  
  2.   
  3. import java.util.Date;  
  4.   
  5. public class DataBean {  
  6.     private String title;  
  7.     private java.util.Date time;  
  8.     private String memo;  
  9.   
  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)

  1. package jp.seasar.framework;  
  2.   
  3. import java.util.ArrayList;  
  4.   
  5. public interface TestBean {  
  6.       
  7.     public java.util.ArrayList<DataBean> getDatalist();  
  8.   
  9.     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的实现类 

 

  1. package jp.seasar.framework;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.Date;  
  5.   
  6. public class TestBeanImpl implements TestBean {  
  7.   
  8.     private ArrayList<DataBean> datalist;  
  9.   
  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)

 

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"  
  3.     "http://www.seasar.org/dtd/components24.dtd">  
  4. <components>  
  5.     <component name="mybean" class="jp.seasar.framework.TestBeanImpl" />  
  6. </components>  

  

新建Servlet(Servlet1.java)

  1. package jp.seasar.framework;  
  2.   
  3. import java.io.IOException;  
  4.   
  5. import javax.servlet.ServletException;  
  6. import javax.servlet.annotation.WebServlet;  
  7. import javax.servlet.http.HttpServlet;  
  8. import javax.servlet.http.HttpServletRequest;  
  9. 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

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <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">  
  3.   <display-name>seasar2</display-name>  
  4.   <servlet>  
  5.     <servlet-name>serv1</servlet-name>  
  6.     <servlet-class>jp.seasar.framework.Servlet1</servlet-class>  
  7.   </servlet>  
  8.   <servlet-mapping>  
  9.     <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

 

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

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


 
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值