.do 是不是Struts的东东。
你没有改变源代码,或大量代码相同应该算侵权。

解决方案 »

  1.   

    to zhangbin_zhang(cat)谈谈你研究的心得好吗?不是你的义务,是你的权利。作者好像不出新版本了
      

  2.   

    1、getClass().getResourceAsStream("/lightningboard.properties");
    这种语法请问是怎么用的?
    答:是读取配置文件的内容,文件里写的....=.....的东西,可以根据键值对应读取配置。2、.do是怎么用的?我看了好像配置文件里有个filter和此有关
    答:是的,好像是servlet2.2还是2.3提供的新特性,就象Servlet的功能差不多,但不用写dispatch方法。也是以web.xml进行的配置,指定所有的.do请求都经过filter处理。3.notifyAll();不是类中定义的方法吗?我手头上找不到源码了。
      

  3.   

    总的来说,所有的.do请求都要过filter,在filter里面得到URI,根据相应的uri实例化相应的Action类,每个Action类都实了Action接口,实现了接口中的execute方法,执行相应的操作。在Action类中使用了Factory设计模式,得到相应的DAO实例,再执行DAO的execute()方法,进行数据库操作,并将结果存入bean类中,返回给Action的execute()方法,再将bean类使用request.setAttribute()方法存入request,最后将页面跳转的链接返回,由Filter返回相应的页面,并在页面中得到存有数据的bean,显示页面。
      

  4.   

    如果不想使用Struts的话,参考一下lightningboard中的模式还是比较好的,lightningboard写得比较小巧,而且非常简明易懂。
    但是如果项目大了,用struts还是首先啊。
      

  5.   

    我有源码,但是没有看见notifyAll()的方法定义。
      

  6.   

    里面用到了ejb的实体bean了吗?
    ‘并将结果存入bean类’,每次操作都这样吗?没有用实体bean保存住结果吗?
      

  7.   

    不是用的ejb,是普通的javabean啊。
    <jsp:useBean id="test" scope="request" class="le.test" />不就是用的普通的javabean吗。
      

  8.   

    本身带的tamcat版本很低,我想移到高版本上,或者移动到jrun或resin上,请问,除了它的包lightningboard.jar外,另外有lightningboard.properties配置文件,再就是几个jsp文件,除了这些,还需要(当然需要)配置server.xml,这些好像还不够,还要什么?
      

  9.   

    1、getClass().getResourceAsStream("/lightningboard.properties");
    这种语法请问是怎么用的?
    答:这是创建一个InputStream的方法,这样可以读配置文件2、.do是怎么用的?我看了好像配置文件里有个filter和此有关
    答:.do其实是在web.xml里的url映射,你想的话,可以改成.xxx3、连接池管理DBConnectionManager.java中
            public synchronized void freeConnection(Connection con) {
                freeConnections.addElement(con);
                connNumb--;
                notifyAll();
            }
    此方法中的 notifyALL();是哪里的方法?
    答:notifyAll()涉及多线程,看看相关的书籍
      

  10.   

    我看文件好像没有引入线程包啊package lightningboard.db;import java.util.Vector;
    import java.sql.DriverManager;
    import java.sql.Connection;
    import java.sql.SQLException;
    import lightningboard.Configuration;/**
     * Database Connection Manager
     */
    public class DBConnectionManager {
      private final static  DBConnectionManager instance=new DBConnectionManager();
      private DBConnectionPool pool;  public static DBConnectionManager getInstance() {
        return instance;
      }  public Connection getConnection() throws SQLException{
        return pool.getConnection();
      }  public void freeConnection(Connection con)  throws SQLException{
        pool.freeConnection(con);  }
      private DBConnectionManager() {
        init();
      }
      private void init() {
        Configuration cfg=Configuration.getInstance();
        String db_driver=cfg.getValue("DB.DRIVER");
        String db_url=cfg.getValue("DB.URL");
        String db_user=cfg.getValue("DB.USER");
        String db_password=cfg.getValue("DB.PASSWORD");
        int db_maxConn=Integer.parseInt(cfg.getValue("DB.MAX_CONNECTIONS"));
        try {
          Class.forName(db_driver);
        }
        catch (ClassNotFoundException ex) {
          System.out.println(ex);
        }
        pool = new DBConnectionPool(db_url,db_user,db_password,db_maxConn);
      }
      class DBConnectionPool {  private Vector freeConnections = new Vector();
      private int maxConn;
      private int connNumb;  private String URL;
      private String password;
      private String user;        public DBConnectionPool(String URL, String user, String password,int maxConn) {
                this.URL = URL;
                this.user = user;
                this.password = password;
                this.maxConn = maxConn;
            }        public synchronized void freeConnection(Connection con) {
                freeConnections.addElement(con);
                connNumb--;
                notifyAll();
            }        public synchronized Connection getConnection() throws SQLException{
                Connection con = null;
                if (freeConnections.size() > 0) {
                    con = (Connection) freeConnections.firstElement();
                    freeConnections.removeElementAt(0);
                    try {
                        if (con.isClosed()) {
                            con = getConnection();
                        }
                    }
                    catch (SQLException e) {
                          con = getConnection();
                    }
                }
                else if (maxConn == 0 || connNumb < maxConn) {
                    con = newConnection();
                }
                if (con != null) {
                    connNumb++;
                }
                return con;
            }        private Connection newConnection() throws SQLException{
                Connection con =DriverManager.getConnection(URL,user, password);
                return con;
            }
        }
    }
      

  11.   

    notifyAll();
    将所有wait();的线程都唤醒。
      

  12.   

    我加了access数据库 加了sqlserver数据库 在sqlserver下运行时会报一个sql的limit出错,不知道其他人有没有碰到啊我把limit去掉了,应该侵权了把
      

  13.   

    limit是mysql里的语法,当然要去掉,sqlserver中换作top我想你不当成你的东西出售,应该没有侵权问题吧
      

  14.   

    这个filter,用.do有什么作用?直接用.jsp不好吗
      

  15.   

    当然可以用.jsp了,我想使用.do可能是因为习惯吧,因为struts就用的.do。
      

  16.   

    to zhangbin_zhang(cat):你看了他的数据库连接池吗?是否和我们通常的不一样?我记得通常的是定义一个最大连接数,生成几个连接放在连接池里,有连接请求就拿一个来用,用完放回连接池,但是我记得好像同一个连接还可以供几个请求共用是吗?此例子中是不是这样呢?我看好像不一样。如果你没有源代码了,可以看我上面贴出来的,就是他的连接管理类。
      

  17.   

    <A href="home.do">高手能告诉我这句话链到哪里去了吗?
      

  18.   

    前面不是有人说过了吗?用filter,执行action目录下的bean
      

  19.   

    haha, I am the author.
      

  20.   

    xiaoboliu,能不能提供开发文档?!这对学习者可是太重要了!!!我先代表大家感谢你!
      

  21.   

    还有,notifyAll就是通知所有休眠的线程运行。
    这个方法在java.lang.Thread中,不用显示包含,编译时自动包含的。
    相关的方法还有:notify():通知下一个,yield():降低优先级...
    在默认情况下,消息的发出者就是当前运行的线程