Nie's Home  
   
互联网
 
   
Java
 
   
搜索
 
   
Js
 
   
生活
 
 
  热门文章:Java 正则表达式测试email | 加速改进的步伐 | 如何找到一个好的空间,以及如何更好的使用它  
  任务  
  分类: Java - nehnre @ 2010-08-10 17:47:41 评论: 1条 点击:34  
     

 

  今天做了什么:首先昨天对今天的计划没有完成,校验现在只差自己还做的这一块,而研发基地情况做了不到一半的样子。仪器操作人校验花费了过多的精力,而在做研发基地的时候又遇到了需求不清的问题,于是下午开始的讨论又浪费了不少开发时间。中午的时候没心情做事情就利用休息时间玩了一会三国杀。下班后也没有加班的欲望。整体来说还是做了一些东西,今天算是中等水平。

  明天计划做什么:研发基地的增改要明天完成,并把表单4的校验全部完成,希望有时间再测试一下。

  还有什么问题:进度被拉长了些,需要更多的时间

 
  试提问第一回  
  分类: 生活 - nehnre @ 2010-08-09 23:08:00 评论: 1条 点击:32  
     

 

  看了敏捷开发的事例,深有感触,于是想照着它的方法来规划自己的生活:

  1、今天做了什么:今天是周一,周末的生物钟真是难调整,到上班时间还磨磨蹭蹭的不愿意起床。今天的开发任务还是接着上一周的,仪器网后台开发,总的来说还是做了很多事情的。①做无刷新附件上传:以前是用的别人写的js框架,今天想试着自己开发一下,仔细想了一下,不难,本以为上午的时间绰绰有余,没想到一直开发到吃饭的时候还没有完成,于是下决心不能完成就不去吃饭,结果没饭吃了,只好去外面吃了一顿,看来想和做还是有一定距离的。②上海区县字段的显示,我现在越来越喜欢用struts2标签来开发,这样的好处你不用把html文件写成一锅粥,任何你需要的东西只要通过ACTION传递过来就OK了。③资源所属单位的修改操作,跟区县操作一样,这是一种中等活,没有太麻烦也不是那么枯燥与无聊,于是我感觉我应该喜欢开发这样的代码。④资源金额、资源联系人的判定,这个代码开发属于无聊型的,因为所需要做的就是拷贝代码,然后一个一个的修改,唯一能够让人思考的地方就是正则表达式了。还觉得这个校验有些不合理,以后代码维护会麻烦很多,但个性化定制还是很有益的。⑤修改了异步与同步。开始的时候我全部用的同步操作,它的好处是代码条例清晰,易于开发和维护,在网络较好的时候并不会显示太大的缺点,但网络较差的时候就会造成假死的现象,于是我不得不把部分代码从同步调整为异步。⑥安排了一些工作给另外一个同事,做了一些系统维护的杂事。做了这么多事情一是自己今天并没怎么休息,二是下班后为了和别的同事一起调东西还加了会班,加班的时候代码效率也比较高。

  2、明天计划做什么:明天还是有两大块内容要完成,如果没有意外情况发生,校验和实验基地开发两块应该能够完成。如果做完后还有多余的时间,我可能会把代码从头到尾的再全部测试一遍。

  3、还有什么问题:本来视频上传的方式并不是IFRAME提交,而是使用的flash,但flash跟struts2的上传方式上有冲突,直到现在还没有解决。flash上传有其先天的优势,所以这方面还是要考虑一下。

 
  敏捷开发对生活启示  
  分类: 生活 - nehnre @ 2010-08-09 18:55:58 评论: 0条 点击:26  
     

 

  三个问题很重要,如果我们真的这么善于总结也不会活的糊里糊涂。

  1、今天做了什么?

  2、明天打算做什么?

  3、还有什么问题?

  我试着用这些问题来记录自己的生活

 
  eval和json  
  分类: Js - nehnre @ 2010-07-28 17:39:20 评论: 0条 点击:27  
     

 

  今天遇到一些问题,如:eval("{}");会出错,但eval("[]"); 却是正确的,这让我一个程序是正确的返回json结束,而另一个程序却出现了错误。后来在网上查到,原来要转换字符串到json对象,需要加"()"也就是说eval("({})");才是正确的  
  jar打包总结  
  分类: Java - nehnre @ 2010-07-28 10:59:55 评论: 0条 点击:26  
     

 

  初学java的人,不免对java如何双击就能运行感兴趣,或者如果将java运行于没有装jdk的机器上,下面是我在网上搜集的一些资料,加上我的整理实际操作完成的关于jar打包的总结,打包完毕后生成的jar文件就可以在windows环境下双击来执行了。以后还会总结一些关于如果让java脱离jdk环境工作的例子:
jar打包方法
1、 如下图所示,整个文件夹下所包含的文件。首先编译FileInfoDemo.java(源代码附后)成class文件。所用命令:javac FileInfoDemo.java
2、 新建manifest.mf文件,在里面加入下面内容
Manifest-Version: 1.0
Main-Class: FileInfoDemo
Created-By:1.4.0-beta (Sun Microsystems Inc.)
3、 在命令行中写如下命令:jar cvfm MyJar.jar manifest.mf *.class
4、 双击MyJar.jar,你就可以直接运行你的程序了
需要注意或说明的几个问题
1、manifest.mf文件可随意命名,只要和第3步中的名字相同即可
2、在manifest.mf文件中,只有Main-Class: FileInfoDemo是必须的,注意两点,在Main-Class:和FileInfoDemo中间一定要有一个空格而且只有一个空格。第二点,在这句的末尾一定要有一个或多个空行
3、所有操作均是在当前目录下
附:FileInfoDemo代码
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.Date;
import javax.swing.*;

//获取目录/文件信息

public class FileInfoDemo extends JFrame{
       JTextField jtfPath; //文件路径输入框
       JTextArea jtaInfo;  //显示文件属性文本框

       public FileInfoDemo(){
              super("取得目录/文件信息");     //调用父类构造函数

              jtfPath=new JTextField(16); //实例化文件输入框
              JButton jbSelectedFile=new JButton("选择");     //实例化文件选择按钮
              JPanel panel=new JPanel();  //面板,用于容纳输入框和文件选择按钮
              jtaInfo=new JTextArea();     //实例化文件信息显示框
              panel.add(jtfPath); //增加组件到面板
              panel.add(jbSelectedFile);
              Container container=getContentPane();//得到容器
              container.add(panel,BorderLayout.NORTH);//增加组件到容器上
              JScrollPane jsp=new JScrollPane(jtaInfo);
              jsp.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));//设置边界
              container.add(jsp,BorderLayout.CENTER);

              jbSelectedFile.addActionListener(new ActionListener(){     //选择文件按钮事件处理
                     public void actionPerformed(ActionEvent event) {
                            JFileChooser fileChooser=new JFileChooser();          //实例化文件选择器
                             //设置文件选择模式,此处为文件和目录均可
                            fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
                                   //弹出文件选择器,并判断是否点击了打开按钮
                            if (fileChooser.showOpenDialog(FileInfoDemo.this)==JFileChooser.APPROVE_OPTION){
                                   //得到选择文件或目录的绝对路径
                                   String fileName=fileChooser.getSelectedFile().getAbsolutePath();      
                                   jtfPath.setText(fileName);     
                                   showFileInfo(jtfPath.getText());   //显示文件信息
                            }
                     }
              });

              jtfPath.addActionListener(new ActionListener(){ //文件路径输入框事件处理
                     public void actionPerformed(ActionEvent event) {
                            showFileInfo(jtfPath.getText());   //显示文件信息
                     }
              });

              setSize(300,200);  //设置窗口尺寸
              setVisible(true);     //设置窗口可视
              setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     //关闭窗口时退出程序
       }


       public void showFileInfo(String filename){
              jtaInfo.setText(""); //清空信息显示框
              File f=new File(filename);     //以得到的路径实例化文件对象
              jtaInfo.append(filename+":\n");     //在信息显示窗口增加显示文本
              if (f.isDirectory()){      //是否为目录
                     jtaInfo.append("是一个目录");
              }
              else if (f.isFile()){  //是否为文件
                     jtaInfo.append("是一个文件");
              }
              jtaInfo.append("\n可读: "+f.canRead()); //得到可读属性
              jtaInfo.append("\n可写: "+f.canWrite());   //得到可写属性
              jtaInfo.append("\n隐藏: "+f.isHidden()); //是否是隐藏文件
              jtaInfo.append("\n只读: "+f.setReadOnly()); //是否是只读文件
              long modifyDate = f.lastModified();     //得到最后修改日期
              if (modifyDate!=0){
                     jtaInfo.append("\n最后修改日期: "+new Date(modifyDate));
              }
              long length=f.length();  //得到文件长度(如果是目录,则为0)
              if (length!=0){
                     jtaInfo.append("\n文件长度: "+length);
              }
       }

       public static void main(String[] args){
              new FileInfoDemo();
       }
 
  Spring中常用的hql查询方法  
  分类: Java - nehnre @ 2010-07-28 09:41:24 评论: 0条 点击:30  
     

 

---------------------------------

一、find(String queryString);

      示例:this.getHibernateTemplate().find("from bean.User");

      返回所有User对象

 

二、find(String queryString , Object value);

      示例:this.getHibernateTemplate().find("from bean.User u where u.name=?", "test");

      或模糊查询:this.getHibernateTemplate().find("from bean.User u where u.name like ?", "%test%");

      返回name属性值为test的对象(模糊查询,返回name属性值包含test的对象)

 

三、find(String queryString, Object[] values);

      示例:String hql= "from bean.User u where u.name=? and u.password=?"

                this.getHibernateTemplate().find(hql, new String[]{"test", "123"});

      返回用户名为test并且密码为123的所有User对象

 

---------------------------------

四、findByExample(Object exampleEntity)

      示例:

             User u=new User();     

             u.setPassword("123");//必须 符合的条件但是这两个条件时并列的 (象当于sql中的and)     

             u.setName("bb");    

             list=this.getHibernateTemplate().findByExample(u,start,max);  

      返回:用户名为bb密码为123的对象

 

五、findByExample(Object exampleEntity, int firstResult, int maxResults)

      示例:

            User u=new User();    

            u.setPassword("123");//必须 符合的条件但是这两个条件时并列的 (象当于sql中的and)     

            u.setName("bb");    

            list=this.getHibernateTemplate().findByExample(u,start,max);    

      返回:满足用户名为bb密码为123,自start起共max个User对象。(对象从0开始计数)

 

---------------------------------------------------

六、findByNamedParam(String queryString , String paramName , Object value)

 

    使用以下语句查询: 

         String queryString = "select count(*) from bean.User u where u.name=:myName"; 

         String paramName= "myName";

         String value= "xiyue";

         this.getHibernateTemplate().findByNamedParam(queryString, paramName, value); 

         System.out.println(list.get(0)); 

     返回name为xiyue的User对象的条数

 

七、findByNamedParam(String queryString , String[] paramName , Object[] value)

      示例: 

         String queryString = "select count(*) from bean.User u where u.name=:myName and u.password=:myPassword";  

         String[] paramName= new String[]{"myName", "myPassword"};

         String[] value= new String[]{"xiyue", "123"};

         this.getHibernateTemplate().findByNamedParam(queryString, paramName, value);

         返回用户名为xiyue密码为123的User对象

 

八、findByNamedQuery(String queryName)

      示例:

        1、首先需要在User.hbm.xml中定义命名查询

             

                  ......

                  

                       

                            from bean.User

                        ]]>

                  

             

         2、如下使用查询:

             this.getHibernateTemplate().findByNamedQuery("queryAllUser");

 

九、findByNamedQuery(String queryName, Object value)

      示例:

        1、首先需要在User.hbm.xml中定义命名查询

             

                  ......

                  

                       

                            from bean.User u where u.name = ?

                        ]]>

                  

             

         2、如下使用查询:

             this.getHibernateTemplate().findByNamedQuery("queryByName", "test");

 

十、findByNamedQuery(String queryName, Object[] value)

      示例:

        1、首先需要在User.hbm.xml中定义命名查询

             

                  ......

                  

                       

                            from bean.User u where u.name =? and u.password =?

                        ]]>

                  

             

         2、如下使用查询:

             String[] values= new String[]{"test", "123"};

             this.getHibernateTemplate().findByNamedQuery("queryByNameAndPassword" , values);

 

十一、findByNamedQueryAndNamedParam(String queryName, String paramName, Object value) 

 示例:

        1、首先需要在User.hbm.xml中定义命名查询

             

                  ......

                  

                       

                            from bean.User u where u.name =:myName

                        ]]>

                  

             

         2、如下使用查询:

             this.getHibernateTemplate().findByNamedQuery("queryByName" , "myName", "test");

 

十二、findByNamedQueryAndNamedParam(String queryName, String[] paramName, Object[] value) 

 示例:

        1、首先需要在User.hbm.xml中定义命名查询

             

                  ......

                  

                       

                            from bean.User u where u.name =:myName and u.password=:myPassword

                        ]]>

                  

             

         2、如下使用查询:

             String[] names= new String[]{"myName", "myPassword"};

             String[] values= new String[]{"test", "123"};

 

             this.getHibernateTemplate().findByNamedQuery("queryByNameAndPassword" , names, values);

 

 十 三、findByValueBean(String queryString , Object value);

 示例:

      1、定义一个ValueBean,属性名必须和HSQL语句中的:后面的变量名同名,此处必须至少有两个属性,分别为myName和 myPassword,使用setter方法设置属性值后

          ValueBean valueBean= new ValueBean();

          valueBean.setMyName("test");

          valueBean.setMyPasswrod("123");

      2、

          String queryString= "from bean.User u where u.name=:myName and u.password=:myPassword";

          this.getHibernateTemplate().findByValueBean(queryString , valueBean);

         

 十 四、findByNamedQueryAndValueBean(String queryName , Object value);

 示例:

       1、首先需要在User.hbm.xml中定义命名查询

             

                  ......

                  

                       

                            from bean.User u where u.name =:myName and u.password=:myPassword

                        ]]>

                  

             

      2、定义一个ValueBean,属性名必须和User.hbm.xml命名查询语句中的:后面的变量名同名,此处必须至少有两个属性,分别为 myName和myPassword,使用setter方法设置属性值后

          ValueBean valueBean= new ValueBean();

          valueBean.setMyName("test");

          valueBean.setMyPasswrod("123");

 

 

      3、 

 

          String queryString= "from bean.User u where u.name=:myName and u.password=:myPassword";

          this.getHibernateTemplate().findByNamedQueryAndValueBean("queryByNameAndPassword", valueBean);

 十 五、findByNamedQueryAndValueBean(String queryName , Object value);

public List findBySql(final String sql, final int totalRows, final Class cls){

Assert.hasText(sql);

List list = getHibernateTemplate().executeFind (new HibernateCallback () {

public Object doInHibernate (Session session) throws HibernateException, SQLException {

Query query = session.createSQLQuery(sql).addEntity("o", cls); 

if(totalRows > 0) {

query.setMaxResults(totalRows);

}

List list = query.list() ;

return list ;

}

    }) ;

return list;

}

 
  js元素定位  
  分类: 生活 - nehnre @ 2010-07-24 17:03:50 评论: 0条 点击:34  
     

 

  现在最常用的定位方式css + div,而div采取绝对定位有其很大的灵活性。在做autocomplete的时候,就采用了这种方案,offsetTop和offsetLeft就成了必备的用法。但取得的数据还是有一部分的差异,2个像素宽度的差异,我试了很多方法做调整都没收到效果,于是只好把这个差异给补足,但这种做法仍然不是那么的完美。

  div在显示图片的时候可以只显示一部分,这也使图片的局部缩放成了可能,现在淘宝和京东的做法都是这样,这个功能应该不难实现。

  另外我对js如何实现拖拽还没很好的研究,花一段时间看一下。

 
  在轻松的位置上坐太长时间就不会有太大进步  
  分类: 生活 - nehnre @ 2010-07-12 14:40:55 评论: 2条 点击:54  
     

 

  这句话很好理解,如果你一直在做一些没有挑战的事情,你会觉得做的很舒服,还可以很快做完且质量一次比一次好,但这样的最终结果是你的进步也是有限的。

  但探索新的东西也并不是那么容易的事情,你要做好心理准备,这件事情如果按照传统的方法很快就能完成,而且质量也会比较好,但如果探索新的方法,就会花费两倍或更多的时间,且最后的结果却不一定能够成功。保守者都会选择第一种,只有真正的爱好者才会选择第二种。所以一个人一直做轻松的事情未必是一件好事

 
  图片截取  
  分类: 生活 - nehnre @ 2010-07-07 15:40:52 评论: 0条 点击:32  
     

 

很多时候我们在上传图片的时候对其尺寸有一定的要求,这样可以保证在展示页面时能够不错乱。怎么样对图片文件进行操作呢?其实很简单,先说java的处理:

java的Image对象可以实现对图像的缩放和截取 1、能够把原图另存为任意大小的图片

  //将img缩放为指定的大小
  private static BufferedImage makeThumbnail(Image img, int width, int height) {
    BufferedImage tag = new BufferedImage(width, height, 1);
    Graphics g = tag.getGraphics();
    g.drawImage(img.getScaledInstance(width, height, 4), 0, 0, null);
    g.dispose();
    return tag;
  }

2、从图片的任意一点截取一段任意大小的子图片

  //x,y是相对图片的开始位置,w,h指截取高度和宽度,返回图片文件
  public BufferedImage getSubimage (int x, int y, int w, int h) {
     return new BufferedImage (colorModel,
                 raster.createWritableChild(x, y, w, h,
                               0, 0, null),
                  colorModel.isAlphaPremultiplied(),
                  properties);
  }

页面对图片的缩放也并不是那么麻烦,我们知道在img标签中写入width 和height就可以拉伸和缩小图片了,然后把相对的位置传到后台就可以实现对图片的截取工作了。
 
  taobao.com页面做出调整  
  分类: 互联网 - nehnre @ 2010-06-28 12:39:26 评论: 0条 点击:45  
     

 

  淘宝最近几天好像一直在调整其搜索,而详情页面也做了相应的改变。从客户测试下来的结果来看,目前的服务器稳定性不能使得用户满意。以前我们会看到每件商品的地址都是非常长的一串字符,现在的商品详情页面已经变成更加简短的格式:http://item.taobao.com/item.htm?id=4169003868

  不可否认,现在淘宝的搜索更加好用一些,但了更详尽的分类。我不知道搜索引擎的代码是自己开发还是用了一些开源的代码,但从效果上来说还不能够使人满意。现在淘宝的数据量是非常大的,如果不能够做好搜索的开发,势必对用户的体验性带来一些负面的影响。在我的使用过程中,经常出现css加载不完全,千万的结果是整个页面不能正常显示。我不得不继续刷新,而这些在以前的使用过程中从来没出现过。

  淘宝还有一件事情就是防数据抓取,日前的一些数据公司早已经盯上了淘宝的数据,利用“爬虫”程序来获取产品的价格和销量是一件屡试不爽的事情,这些数据可以拿来换更多的经济利益。以前的加密方式是地址栏加密,现在好像已经转变了做法。

 
  当前是第1页 共6页  1 2 3 4 5 6  
 
  订阅订阅  
  跟随我的twittertwitter
跟随我的新浪微博 新浪微博
跟随我的嘀咕 嘀咕
 
  ★关于本站  
  本站依托于google app engine,如无特殊说明,本站的所有功能均系本人独立完成,所有页面均为本人设计(参照部分网络作品)。本站所有展示的flash以及程序代码均系本人书写(如有引用会注明)。如有疑问请邮件联系:adminATniehongleiDOTinfo(请自动转换)  
  ★最新评论  
  悲剧啊!我手机竟然显示不正确晕
Ssdd
记住应该让自己记住的
a
中国教育从一开始就扼杀了中国学...
共产党不本来就是唯物主义么。。
还是老老实实用you8g吧 ...
不到两分钟,又关了,唉
都这么写了,还不是表扬吗?
是不是最近都流行开公司?如果那...
用Git吧 然后同步到Git...
今天正好也碰到这个问题 G...

更多的原因还是来自这个社会的财...
@1楼:你可以mail到我的gmail
我有翻墙软件,纯绿色的,要不m...
@1楼:为什么你的页面我登录不...
我在几年前就已经饱受其害了。。...
@2楼:想到啥写啥吧,本来自己...
其实呢。。session还是放...
 
  ★友情链接  
  月光博客
黑猫物语
flyingfy00
twitter api
宕机检测多线多地区全智能DNS
 
  ★阅读排行  
  Java 正则表达式测试email
绑定域名完成
SESSION机制和最简单的“单点登录”
今天的主要更新
推荐浏览器
如何找到一个好的空间,以及如何...
谁能告诉我,手机浏览器对js支...
域名中转,获取IP失败
加班,加班
为dropbox哀悼
 
 
powered by nehnre | 转载请注明出处 | 感谢appspot.com的大力支持 | 发布文章