进度条思想

后台数据处理完成的时候设置一个处理完成的session标志
前台通过发送ajax请求设置成功标志的session的页面,如果session的成功标志为true则数据处理完成,关闭正在处理的进度条图片,否则继续发送ajax请求,显示正在处理的进度条图片,当然也可以通过后台返回数据处理完成的百分比,来制作精确的进度条

posted @ 2007-06-14 23:00 JGAO编程随笔 阅读(207) | 评论 (0)编辑 收藏

动态设置checkbox的checked属性

当我们在做动态生成checkbox和动态设置checkbox的checked属性的时候要注意
只有checkbox在页面生成以后设置checkbox的checked属性才有效,否则是无效的
也就是说不要在create checkbox后就设置checked属性,要等到该checkbox已经append到页面中了在来设置checked属性这样才可以

posted @ 2007-05-22 23:44 JGAO编程随笔 阅读(1515) | 评论 (1)编辑 收藏

response.sendredirect的问题

1) 使用response.sendredirect重定向是没办法通过request.setAttribute来传递对象到另外一个页面的
但我们可以通过转发的方式来实现request.getRequestDispatcher("test2.jsp").forward(request,response)
这也是struts默认的页面跳转方式,这就是为什么我们可以在action里面request.setAttribute然后在页面里request.getAttribute

2) 使用response.sendredirect重定向要记得在后面加上return不然后面的语句还是会继续往下执行的,还有就是response.sendredirect之前最好不要有任何的输出语句包括html不然可能会重定向失败
最近我还遇到一个比较奇怪的问题就是response.sendredirect失败,因为我的端口是通过交换机来转换的所以可能就是在这里重定向不过去了,所以建议以后大家都使用request.getRequestDispatcher("test2.jsp").forward(request,response)这种方式就不会错了,当然也可以用jsp标签的forward

posted @ 2007-05-07 21:47 JGAO编程随笔 阅读(1063) | 评论 (0)编辑 收藏

可定制生命周期的缓存

     摘要: 1) ICache.java 缓存接口 package com.jgao.cache;/** *//** * 缓存接口 * @author jgao * */public interface ICache {      ...  阅读全文

posted @ 2007-04-22 06:18 JGAO编程随笔 阅读(994) | 评论 (0)编辑 收藏

获取第N级的所有节点实现代码

    基本的思想和步骤都在了,主要就是递归

    /**
     * 传入级数返回存放该级数下所有组织列表的列表
     * @param lever int 组织级数
     * @return List<List> 存放组织列表
     */

    public List<List> getTreeLeverNode(int lever) {
        String sqlstr = "select  ID from table1 where PARENT_ID=0";
        Result ret = Dao.executeQuery(sqlstr);
        List<List> list = new Vector<List>();
        List rslist = new Vector();
        List<String> nodeList = new Vector<String>();
        for (int i = 0; i < ret.Length(); i++) {
            rslist = getNextNode(Integer.parseInt(ret[i]
                        .toString()), lever - 1, nodeList);
                list.add(rslist);
        }
        return list;
    }

    /**
     * 返回存放该级数下所有组织的列表
     * @param reqParentid 请求传入的父节点ID
     * @param lever 组织级数
     * @param list 存放该级数下所有组织的列表
     * @return List<String> 存放组织
     */

    public List<String> getNextNode(int reqParentid, int lever, List list) {
        String sqlstr = "select  ID from table1 where PARENT_ID="
                + reqParentid;
        DBResult ret = super.executeQuery(sqlstr);
        List rslist = new Vector();
        lever = lever - 1;
        if (lever > 0) {
           for (int i = 0; i < ret.Length(); i++) {
                 rslist = getNextNode(Integer.parseInt(ret[i]
                        .toString()), lever , nodeList);
                list.add(rslist);
           }
        } else {
            for (int i = 0; i < ret.Length(); ; i++) {
                list.add(ret[i].toString());
            }
        }
        return list;
    }

posted @ 2007-01-15 20:30 JGAO编程随笔 阅读(114) | 评论 (0)编辑 收藏

erwin连接oracle9i数据库

刚使用erwin时在连接oracle9i数据库时的那个连接串我一直用jdbc连接oracle的那个格式,所以一直连都连不上
一直出现“内部错误,hostdef扩展名不存在”,很是郁闷,不知大家有没遇到
后来查了一下,才知道本地的话要进行本地的Net服务名配置
配置工具在开始->oracle->Configuration and Migration Tools->NET CONFIGUATION ASSISTANT
然后选择本地的Net服务名配置,在配置到服务名的时候把你的数据库名称添进去,然后往下到完成就行了

也可以直接编辑tnsnames.ora,如下图:

接下来在erwin进行正向或者反向工程的操作界面,提示连接数据库的那个连接字符串里输入你的那个服务名就行了,当然用户名密码还是要跟之前的一样,如下图:

posted @ 2007-01-14 17:23 JGAO编程随笔 阅读(3365) | 评论 (15)编辑 收藏

获取第N级的所有节点

/**
*临时写的伪代码
*/

//获取第N级的所有节点

public list getTreeLeverNode(int lever)
  rs0 = select id from menu where parentid is null;  //先从数据库取出第一级的所有节点
  if(lever<=1)
  return rs0
  //循环第一级的节点递归取下面的节点
  for(int i=0; i<rs0.length; i++){
   rslist = getNextNode(rs0[i],lever-1);
   list.add(rslist);
  }
  return rs1;
}

public list getNextNode(int reqParentid,int lever){
  rs2 = select id from menu where parentid = reqParentid;
  lever = lever -1;
  if(lever>0){
   for(int i=0; i<rs2.length; i++){
    rs2 = getNextNode(rs2[i],lever);
    list.add(rs2);
   }
  }
  return rs2;
}

posted @ 2007-01-14 16:01 JGAO编程随笔 阅读(157) | 评论 (0)编辑 收藏

数据操作控制

      1.当执行一个功能的时候需要执行多个更新操作,如:插入多个对象,删除多个对象等,就可能存在执行一个更新操作成功之后下一个更新操作失败,那么这个功能的执行就算是失败的,可是却向数据库添加或删除了不完全的相关数据,所以就会出现脏数据
      解决方法:
      1) 通过事物控制让多个执行语句一起提交commit,commit失败的话就回滚rollback,做到事物的原子性原则
      2) 在数据库设置一个操作成功或失败的字段(或者本地临时文件里存放相关的控制数据),通过该字段进行控制,在执行出错后删除所有含有操作失败字段的数据
       
      2.数据库同步访问控制:比如说一条记录有两个以上的用户同时访问,他们读取出来的是相同的数据,但写入时有先后,如果不做控制就会出现后来写入的数据把原来做了更新的数据覆盖,使原来做的更新操作丢失就是无效,因为他们都是在最原始读取出来的数据上做的修改,而不是在别人做了修改后的数据上做修改
      解决方法:
      1) 可以在数据库多设置一个版本字段来控制该数据的历史版本号(或者本地临时文件里存放相关的控制数据),就是没个人做了修改以后都要更新一下这个版本字段,同时更新之前也要做一下版本的比较,如果现在的版本和之前取出来的数据的版本不一样,那么就要从新读取数据再写入,这样就可以保证不会丢失修改
     

posted @ 2007-01-14 12:00 JGAO编程随笔 阅读(170) | 评论 (0)编辑 收藏

tomcat下jsf移到weblogic8下出错

错误如下:Servlet: "Faces" failed to preload on startup in Web application
我的方法是修改web.xml如下:
<?xml version="1.0" encoding="gb2312"?>
<web-app xmlns="
http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 <context-param>
  <param-name>javax.faces.CONFIG_FILES</param-name>
  <param-value>/WEB-INF/faces-config.xml</param-value>
 </context-param>
 
  //listener节点是新加的
 <listener>
  <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
 </listener>
 
 <servlet>
  <servlet-name>Faces Servlet</servlet-name>
  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  <load-on-startup>-1</load-on-startup>//本来是0先在改为-1
 </servlet>
 
 <servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>*.faces</url-pattern>
 </servlet-mapping>
</web-app>

posted @ 2006-12-07 17:45 JGAO编程随笔 阅读(779) | 评论 (3)编辑 收藏

tomcat 同时开多个端口

tomcat要同时开多个端口只要配置conf文件夹下面的server.xml增加Service节点就可以了,如下我多开了个8083端口,同时我把Catalina文件夹多拷贝了一份另存为Catalina2
<Server port="8005" shutdown="SHUTDOWN" debug="0">


  <!-- Comment out these entries to disable JMX MBeans support -->
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"
            debug="0"/>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
            debug="0"/>

  <!-- Global JNDI resources -->
  <GlobalNamingResources>

    <!-- Test entry for demonstration purposes -->
    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>

    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users -->
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
       description="User database that can be updated and saved">
    </Resource>
    <ResourceParams name="UserDatabase">
      <parameter>
        <name>factory</name>
        <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
      </parameter>
      <parameter>
        <name>pathname</name>
        <value>conf/tomcat-users.xml</value>
      </parameter>
    </ResourceParams>

  </GlobalNamingResources>

  <!-- Define the Tomcat Stand-Alone Service -->
  <Service name="Catalina">

    <!-- Define a non-SSL Coyote HTTP/1.1 Connector on the port specified
         during installation -->
    <Connector
port="8081"               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               debug="0" connectionTimeout="20000"
               disableUploadTimeout="true" />

    <!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
    <Connector port="8009"
               enableLookups="false" redirectPort="8443" debug="0"
               protocol="AJP/1.3" />
        
    <!-- Define the top level container in our container hierarchy -->
    <Engine name="Catalina" defaultHost="localhost" debug="0">
      <!--
      <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
      -->

      <!-- Global logger unless overridden at lower levels -->
      <Logger className="org.apache.catalina.logger.FileLogger"
              prefix="catalina_log." suffix=".txt"
              timestamp="true"/>


      <!-- This Realm uses the UserDatabase configured in the global JNDI
           resources under the key "UserDatabase".  Any edits
           that are performed against this UserDatabase are immediately
           available for use by the Realm.  -->
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                 debug="0" resourceName="UserDatabase"/>

      <!-- Define the default virtual host -->
      <Host name="localhost" debug="0" appBase="webapps"
       unpackWARs="true" autoDeploy="true">


        <Logger className="org.apache.catalina.logger.FileLogger"
                 directory="logs"  prefix="localhost_log." suffix=".txt"
            timestamp="true"/>

        <!--
          <Context path="" docBase="ROOT" debug="0">
        -->
      </Host>

    </Engine>

  </Service>
 
    <Service name="Catalina2">

    <Connector
port="8083"               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               debug="0" connectionTimeout="20000"
               disableUploadTimeout="true" />


    <!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
    <Connector port="8010"
               enableLookups="false" redirectPort="8443" debug="0"
               protocol="AJP/1.3" />

        
    <!-- Define the top level container in our container hierarchy -->
    <Engine name="Catalina2" defaultHost="localhost" debug="0">


      <!-- Global logger unless overridden at lower levels -->
      <Logger className="org.apache.catalina.logger.FileLogger"
              prefix="catalina_log." suffix=".txt"
              timestamp="true"/>

      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                 debug="0" resourceName="UserDatabase"/>


      <Host name="localhost" debug="0" appBase="webapps"
       unpackWARs="true" autoDeploy="true">


        <Logger className="org.apache.catalina.logger.FileLogger"
                 directory="logs"  prefix="localhost_log." suffix=".txt"
            timestamp="true"/>

      </Host>

    </Engine>

  </Service>

</Server>

posted @ 2006-12-07 14:23 JGAO编程随笔 阅读(2543) | 评论 (0)编辑 收藏

仅列出标题
共4页: 上一页 1 2 3 4 下一页 
<2024年5月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

常用链接

留言簿(1)

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜