积累问题三

来源:互联网 发布:windows所有快捷键 编辑:程序博客网 时间:2024/05/16 15:35
 

1、页面中显示时当超出要显示的字数时隐藏多余,不过当鼠标移动到时title显示全部内容

 

<td title='vmware ESX 3.0 -inet'>

       <div align="center">vmware ESX 3...</div>

</td>

 

<s:if test="unit.length() gt 16">

       <s:property value="unit.substring(0,15)" />...

</s:if>

<s:else>

       <s:property value="unit" />

</s:else>

                           

2、No suitable driver found for jdbc:jtds:sqlserver

修改了相应url,但是也要修改相应的驱动

<property name="driverClass" value="net.sourceforge.jtds.jdbc.Driver" />

<property name="jdbcUrl" value="jdbc:jtds:sqlserver://192.168.0.176:1433/jsh" />                 

3、<Context path="" docBase="/samples" debug="0" reloadable="true">

 

4、附加数据库,导入jsh_Data.MDF或者jsh_Log.LDF中任何一个

操作步骤:企业管理器Microsoft SQL Server-->SQL Server组-->(local)(Windows NT)-->数据库-->右键-->所有任务-->附加数据库-->要附加数据库的MDF文件,确定即可附加一个新的数据库

 

5、 no jacob-1.15-M3-x86 in java.library.path

 

  关于java使用jacob.jar调用word的配置问题

最近用到了jacob.jar来转换word文件,出现一些问题都是关于配置的,先将一些配置说明一下,以供大家参考。

一、将jacob.dll拷贝到windows/system32下,并在部署环境中添加jacob.jar包,这两个文件的版本必须一致,不然会出现一些错误,如果多个应用用到改包,最好放到公共包目录下,因为可能出现一些错误。

二、如果通过上述配置还不能正确运用改包,则将jacob.dll放入 Java\jdk\jre\bin目录下,如果不是web应用,则需将jacob.dll放到Java\jdk\jre\lib\ext目录下。

 

如果仍然出现no jacob in the java.library.path错误,把jacob.dll放到System.getProperty("java.library.path")取到的目录下。

 

6、spring mvc开发步骤:

a:model实体类的annotation编写

b:dao及其impl的增删改查相关方法

c:service及其impl增删改查相关方法

d:将dao实现类注入到dao.xml,将dao中声明的变量注入到service.xml,将dao.xml和service.xml注入到spring.xml中

e:若有controler,则实现对service类的注入

 

7、使用ftl时无法加载页面,找不到页面所在。

原因:controller类中没有声明@Controller,则系统不会去加载与此相关的页面

 

 

8、IE页面--设置--兼容性视图,解决通过超链接打开文件时直接打开文件的问题;转变成经过询问打开或保存文件

 

9、解决补齐空行问题

<s:if test="getPagerModel().getDatas().size()<maxPageItems">               

                                   <s:set name="supplyRows" value="maxPageItems-getPagerModel().getDatas().size()"/>                                                  

                                  <s:iterator value="new int[#supplyRows]">

 

10、使用纯sql语句查询并返回实体集合

public List<Purview> queryButtPurviews(String account) {

              // TODO Auto-generated method stub

              String sql = "select distinct pur.* from isip_person p,isip_role r,isip_person_role pr,isip_purview pur,isip_purview_role rp " +

                            "where p.uuid=pr.personUuid and pr.roleUuid=r.uuid and pur.uuid=rp.purviewUuid and r.uuid=rp.roleUuid and pur.isButton='1' and p.account='"+account+"'";

              List<Purview> list = (List<Purview>) getSession().createSQLQuery(sql).addEntity(Purview.class).list();

              return list;

       }

 

11、freamset配置

<frameset rows="10%,*" cols="*" frameborder="no" border="1" framespacing="0">

  <frame src="<@spring.url '/login/head.html'/>" name="top" scrolling="no" noresize="noresize" frameborder="no" border="1" framespacing="0"/>

  <frameset name="work" rows="*" cols="20%,*" frameborder="no" border="1" framespacing="0">  

    <frame src="<@spring.url '/login/listMenu.dsf'/>" name="menu" scrolling="auto" noresize="noresize" frameborder="no" border="1" framespacing="0"/>

    <frameset rows="*,15%" cols="*" framespacing="0" frameborder="no" border="0">

           <frame src="<@spring.url '/login/welcome.html'/>" name="main" scrolling="no" frameborder="no" border="1" framespacing="0"/>

           <frame src="<@spring.url '/login/bottom.html'/>" name="bottom" scrolling="no" noresize="noresize" frameborder="no" border="1" framespacing="0"/>

    </frameset>

  </frameset>

</frameset>

 

引入左侧生成树时,应先在controller中创建相应的url,引入相应路径src="<@spring.url '/login/listMenu.dsf'/>"

 

12、如何用div隐藏table中的某几行呢?

div 和 table 没什么关系。

只要为你要隐藏的行设置好id就可以了。

<table>

<tr id=aaa><td>aaa</td></tr>

<tr id=bbb><td>bbb</td></tr>

<tr><td>ccc</td></tr>

</table>

<script language="javascript">

document.getElementById("aaa").style.display="none";

document.getElementById("bbb").style.display="none";

</script>

 

13、<input type="reset"/>是对当前form的重置,不是window.reset;正确的为:form.reset;不是reset()括号乃错误写法

 

14、判断复选框选中与否

function checkBox(){

       for(var counter=0;counter <=document.getElementsByName("uuid").length-1;counter++)

      {

          if(document.getElementsByName("uuid")[counter].checked==true)

               return true;

      }

      alert("请选中一项!");

      return false;

}

 

15、window.open('../purview/list.dsf?pageNo=${pageNo-1}','_self')

 

16、老办法实现树:

public String assignPurviewForm(Model model,HttpServletRequest request, HttpServletResponse response) {

              String id = request.getParameter("id");

              if(null==id||"0".equals(id))

                     id=null;

//            String uuid = request.getParameter("uuid");

//            Role role = umService.queryRoleByUuid(uuid);

//            Person p = (Person) request.getSession().getAttribute("loginUser");

             

              List<Purview> purs = umService.queryNextsubPruview("ceshi", id);

             

              JSONObject jsonObject = null;// 生成JSON对象

              JSONArray jArray = new JSONArray();

              for(Purview pur : purs){

                     jsonObject = new JSONObject();

                     jsonObject.accumulate("id", pur.getUuid());

                     jsonObject.accumulate("text", pur.getName());

                     if (pur.getChildPur().size() > 0) {// 判断当前子结点是否还有子结点,如果有的话为非叶子结点,否则为叶子结点

                            jsonObject.accumulate("leaf", false);

                     } else {

                            jsonObject.accumulate("leaf", true);

                     }

                     jArray.add(jsonObject);

              }

              model.addAttribute("json", jArray.toString());

//            List<Purview> purs=null;

              //根据传递过来的当前uuid去查询其角色树

//            List<Purview> purs = umService.queryAllPurviews();

//            StringBuffer contents = new StringBuffer("");

//            contents.append("<script type=\"text/javascript\">\n");

//            contents.append("<!--\n");

             

             

              //--------------------------

              /*contents.append("d = new dTree('d','../script/dtree/');\n");// 生成角色树

              contents.append("d.add('0','-1','请选择角色');\n");// 角色根节点

             

              //生成角色树

              Purview pur = null;

              for (Iterator<Purview> iter = purs.iterator();iter.hasNext();) {

                     pur = iter.next();

                     contents.append("d.add('");

                     contents.append(pur.getUuid());

                     contents.append("','");

                     if (pur.getParentPur() != null) {

                            if(pur.getParentPur().getUuid()!=null)

                                   contents.append(pur.getParentPur().getUuid());

                            else

                                   contents.append("0");

                     }else

                            contents.append("0");

                     contents.append("','");

                     contents.append(pur.getName()); 

                     contents.append("','#');\n");

              }

             

//            contents.append("document.write(d);\n");

//            contents.append("//-->\n");

//            contents.append("</script>\n");

             

              model.addAttribute("contents",contents.toString());

              model.addAttribute("prePurviewUuid",uuid);*/

             

//            List<Purview> purs = umService.queryAssignedPurviews(((Person)request.getSession().getAttribute("loginUser")).getAccount());

//            List<Purview> purs = umService.queryAllPurviews();

//            model.addAttribute("purs", purs);

//            List<Purview> assignPurs = role.getPurviews();

//            model.addAttribute("role",role);

//            return "/role/role2purview";

              return "/assetCategory/listJson";

       }

 

 

17、js数组存放

        function assign() {

                var b = mytree.getChecked();

                var checkid = new Array;// 存放选中id的数组

                for (var i = 0; i < b.length; i++) {

                    checkid.push(b[i].id);// 添加id到数组

                document.getElementById("checkid").value=checkid.toString();

                var form = document.getElementById("myform"); 

                            form.action = "<@spring.url '/role/assignPurview.dsf'/>" ;

                            form.submit();

        }

       function toList() {

           var form = document.getElementById("myform"); 

                     form.action = "<@spring.url '/role/list.dsf'/>" ;

                     form.submit();

        }

 

 

18、打开子窗口,并解析子窗口传回的值

 

       function openWinOfPartners(n,w,h,s){

              var v=document.getElementById("partner.higherPartnerId").value;

              f = "toAssignSupPartner.action?partner.higherPartnerId="+v;

              sFeatures = "dialogwidth:280px;dialogheight:480px;help:0;center:yes;resizable:0;status:0;scroll:yes";

              var results = window.showModalDialog(f , window , sFeatures );

              $("#superName").html("");

              var r;

              var div;

              if(results!="") {

                     r = results.split(',');

                     document.getElementById("partner.higherPartnerId").value=r[0];

                     document.getElementById("superName").value=r[1];

              }

              return;

       }

--子窗口中对选中的项进行封装并返回到父窗口

 

              $(function(){

             

                    $("#assignPartner").click(function(){

                                   var selectedPartner = "";

                           if($("input[name='partnerUuids']").length>0){

                     $("input[name='partnerUuids']").each(function(){

                                  if(this.checked == true) {

                                                 selectedPartner = selectedPartner + this.partnerUuid + "," + this.partnerName ;

                                          }              

                     });

                     }

                                   window.returnValue = selectedPartner;        

                                   window.close();

             

                   });

              });

--子窗口中动态给选中的项增加勾选判断

              $(document).ready(

                     function() {

                            var val="${partner.higherPartnerId}";

                            //这儿使用值传递,对象传递会改变对象

                            $("input[name='partnerUuids']").each(function() {

             

                                   if(val==this.value) {

                                          this.checked = true;

                                   }

                       });

                     }

              );

19、iframe去掉边框

iframe中设置frameborder=0没有效果,最后找到一下方法解决了问题。 在网页中添加iframe,如果frameborder=0;就没有边框显示了;但是如果使用Javascript的setAttribute方法动态添加frameborder属性的时候,在IE7

中还会显示框架的边框,一下是这个问题的解决办法。 以下是代码,在IE6和火狐中可以把iframe的边框设置为0,但是在IE7中还是有边框; var iframe = document.createElement('iframe'); iframe.setAttribute

('frameborder', '0'); 以下为解决的办法: var iframe = document.createElement('iframe'); iframe.setAttribute('frameborder', '0', 0); 后面那个'0'表示是否区分大小写。原因:DOM里面的属性都是大写的,也

就是说上面这段代码,在IE里面最后会变成:< IFRAME frameBorder=0... 由于IE认大写的,所以”frameborder“ 它自然不认。

 

 

20、ms sqlserver 2000,

日期转字符串:convert(varchar(7),m.time,120) 仅要年月“2010-07”

字符串转日期:select cast('2007-01' + '-01' as datetime) from isip_person

截取年datepart(yy,getDate())月datepart(mm,getDate())日datepart(dd,getDate())

 

21、表之间拷贝时出错,原因是表中属性字段大小太小

错误的信息提示大多是这样的:

Java代码

Error! [8152]System.Data.SqlClient.SqlException: 将截断字符串或二进制数据。语句已终止。 

 

Error! [8152]System.Data.SqlClient.SqlException: 将截断字符串或二进制数据。语句已终止。

 

主要原因就是你增加的数据类型与数据库中字段所定义的不符。

解决方法:

一个是修改数据库字段大小;

再一就是是加强数据强壮性,严格的输入判断。

防止添加的信息类型或者长度与数据库表中字段所对应的类型不符合。

 

22、父页面刷新时出现对话框

如果页面没有form,则不会弹出提示窗口。如果页面有form表单,

a)< form method="post" ...> 会弹出提示窗口

b)< form method="get" ...> 不会弹出

以下几点供参考(来源于网络):

一, window.opener.location.reload() 如果改页面没提交过,这个方法好使.但是这个页面一旦提交过后,系统就会提示"重试或取消”的对话框.

 

    二, window.opener.location = window.opener.location;这个方法肯定不提示,但是有个问题就是分页显示的时候,一刷新总是会显示第一页,这个也是理所当然,因为默认请求的就是第一页

 

    三, window.opener.form1.submit();这个方法也不提示了,这个方法就是自动提交页面,绕开那个烦人提示的界面,但是如果被刷新的页面用到了比如gridwiew控件之类的,里面的数据可能不会随着刷新而发生变化,原因就

是gridwiew的数据绑定是在某个控件的事件中进行,而页面是通过submit()提交的,不会触发该控件的事件.gridwiew中的数据也是通过读取viewstat中内容获得的,所以在刷新过程中数据不会发生变化.

 

    四, window.opener.__doPostBack(" Control","");其中 Control 是控件ID,这个方法就是克服了三的缺点,不用.opener.form1.submit()这样直接提交.不仅让页面自动提交,而且还要想办法让控件的事件也执行.

 

   注意第四种方法也不是完美的,有的页面是没有这样的控件,有的页面有这个控件但也不能触发数据绑定事件.比如页面数据是随下框内容发生变化的那种页面.因为页面数据是否重新绑定取决于下拉框中内容是否发生变化.

而打开子窗体前后时下拉框内容肯定没有变化,所以页面内容也不会变化.      

 

    五,针对四,我们可以在父页面用点小技巧,比如在Page_Load中绑定数据时不加IsPostBack判断,但是不好就不好在点按钮时同样的数据会绑定两遍.

 

23、新窗口去掉按钮、地址栏

var url='<@spring.url "/login/main.dsf"/>';

              var height=window.screen.height;

              var width=window.screen.width;

              window.opener= null;//避免关闭窗口时弹出确认菜单

              //修改弹出方向为新窗口_blank,status为no代表没有标准按钮和地址栏

              window.open(url,"_blank","toolbar =no, menubar=no, scrollbars=auto, resizable=yes, location=no, status=no,left=0,top=0,width="+width+",height="+height);

              //全屏打开window.open(url,"screen","fullscreen==yes");

              window.focus(); 

        window.setInterval("window.close()",1); 

             

The table shows the features and the string tokens you can use:

 

status  The status bar at the bottom of the window.

toolbar  The standard browser toolbar, with buttons such as Back and Forward.

location  The Location entry field where you enter the URL.

menubar  The menu bar of the window

directories  The standard browser directory buttons, such as What's New and What's Cool

resizable Allow/Disallow the user to resize the window.

scrollbars  Enable the scrollbars if the document is bigger than the window

height Specifies the height of the window in pixels. (example: height='350')

width  Specifies the width of the window in pixels.

 

IE6和IE7处理方式不同,如下解决:

用JS代码关闭窗口时会提示“您查看的网页正在试图关闭窗口。是否关闭此窗口”

 

 

在IE6中,可以通过在close之前设置窗体的opener属性值得以解决,范例代码如下:

window.opener= null;

window.close();

 

在IE7中,上述的代码并无法奏效,前几天没找到什么可以解决的方法,今天换了搜索关键词,竟然找到了可以解决的办法,而且也不用改IE设置(据说改了设置也没有用),示例代码如下

 

window.opener= null;

window.open("","_self");

window.close();

 

如果要全屏显示(去掉IE的工具栏、地址栏和菜单栏等信息),则只能用window.open();的方法。如果第一个页面就要全屏显示,则需要设置一个中转页面。中转页面代码如下:(body中什么都不必写)

 

<head>

    <title></title>

    <script type="text/javascript" >

        function openwindow() {

            window.open('pos_search.htm', 'newwindow', 'fullScreen=1, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no');

            window.opener = null;

            window.open("", "_self");

            window.close();

        }

    </script>

</head>

<body onload="openwindow()">

 

</body>

</html>

 

24、字符窗口中,操作完成后弹出确认刷新对话框

原因1:将form表单中的method方法使用get方式

原因2:如上24中

原因3:<base target="_self">

        <script type="text/javascript">

base放在脚本之上,不能放在<title>之上

原因4:session失效,重新登录

 

 

25、表中重复数据删除 @Resource代表表明

delete     a

from   @Resource     a  

where  

  exists(select   1   from   @Resource   where   id=a.id   and   name=a.name   and   hit> a.hit)

 

delete     a

from   @Resource     a  

where  

exists(select   1   from   @Resource   where   id=a.id   and   name=a.name   and   hit <a.hit

 

26、两种分页

1、mssql

 

用两次 TOP 命令取得我们所要的分页数据,例如:

 

SELECT * FROM

     (

     SELECT TOP(PageSize ) * FROM

     (

          SELECT TOP (PageSize * PageIndex ) *

          FROM Articles

          ORDER BY PubTime DESC

     )

     ORDER BY PubTime ASC

)

ORDER BY PubTime DESC

 

 

2、oracle

 

 

对于 Oracle 数据库,有几处不同严重妨碍了上面几个方法的实施,比如,Oracle 不支持 TOP 关键字:不过这个好像并不十分严重,因为它提供了 rownum 这个隐式游标,可以实现与 TOP 类似的功能,如:

 

SELECT TOP 10 ... FROM WHERE ...

要写成

 

SELECT ... FROM ... WHERE ... AND rownum <= 10

rownum 是记录序号(1,2,3...),但有一个比较麻烦的事情是:如果 SQL 语句中有 ORDER BY ... 排序的时候,rownum 居然是先“标号”后排序!这样,这个序号如果不加处理是不合乎使用需求的。

 

可以如下分页:(编号 Ora1)

 

SELECT * FROM

     (

     SELECT A.*, rownum r

     FROM

          (

          SELECT *

          FROM Articles

          ORDER BY PubTime DESC ,articleID   --// 在排序时,加上一个或多个字段(如主键字段、 ROWID),使排序结果具有唯一性

          ) A

     WHERE rownum <= PageUpperBound

     ) B

WHERE r > PageLowerBound;

其中蓝色部分可以改为任意的、需要的 SQL SELECT 语句,这点倒是挺方便的。

 

27、右侧页面触发左侧树刷新

var u=window.parent.location.href;

var x = u.indexOf('?');

if(x!=null)

u = u.substring(0,x);

u=u+"?flag=1";

window.parent.location.reload();

 

修改后版本

var u=window.parent.location.href;                   

var x = u.indexOf('?');

                            if(x!=null)

                            u = u.substring(0,x);

                            u=u+"?flag=1";

                            alert(u);

                            alert(leftUrl);

                           

                            var leftUrl = window.parent.document.frames["left"].location.href;

                            var y = leftUrl.indexOf('#');

                            if(y!=null)

                                   leftUrl = leftUrl.substring(0,y);

                            window.parent.document.frames["left"].location.href=leftUrl;

                            window.parent.document.frames["left"].location.reload();

 

28、先后顺序的执行,导致左侧链接自动打开中断

id.click();

show(ownDiv);

 

29、列表页面刷新弹出对话框、且出现乱码的情况

首先,页面提交方式改为get

其次,后台进行转码:title = new String(t.getBytes("iso-8859-1"), "utf-8");

 

30、仅需要将日志打印到console

 log4j.rootLogger=WARN, stdout

 log4j.appender.stdout=org.apache.log4j.ConsoleAppender

 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

打印到文件中

log4j.rootLogger=WARN,stdout

 

log4j.appender.stdout=org.apache.log4j.RollingFileAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}  %p %c{1}.%M(%L) | %m%n

log4j.appender.stdout.MaxFileSize=30MB

log4j.appender.stdout.MaxBackupIndex=1 

log4j.appender.stdout.file=D:\\upload\\log\\output.log

 

 

31、工作流图像插件

D:\Eclipse3.5\plugins:(org.jbpm.gd.jpdl.help_3.1.7.jar、org.jbpm.gd.jpdl.docs_3.1.7.jar)

D:\Eclipse3.5\features:(org.jbpm.gd.jpdl.feature_3.1.7.jar、org.jbpm.gd.jpdl_3.1.7.jar)

 

32、jbpm图形化开发时汉字乱码,找到eclipse根目录下的eclipse.ini,增加以下一句话:-Dfile.encoding=UTF-8

 

 

33、时间验证:

//判断YYYY-MM-DD这种格式的,基本上把闰年和2月等的情况都考虑进去了

"^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-

9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$"

 

//加了时间验证的 

"^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-

9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$"

 

 

34、append方法、jquery取属性值

function add_click(){

var id="222";

$("#app").append("<tr name='tt' id="+id+"><td>测试</td></tr>");

//将所有的tr名为tt的id弹出alert

alert($("tr[name='tt']").attr("id"));

}

 

 

35、09版系统启动异常

问题是在tomcat安装目录下的配置文件问题D:\Program Files\apache-tomcat-5.5.26\conf\Catalina\localhost\jsh087.xml,其中的路径不符合

最佳办法:将动态生成的jsh087.xml文件删除,重新部署后,会根据tomcat的path名重新生成相应的xml文件

 

36、在EXCEL多页中如何让首行始终显示出来?

选中需要始终显示的下面一行,如果是首行的话,就选择在第二行,列的选择也是这样,需要那一列,就选中那一列的后面一列,比如想冻结第一行第一列,那么就选定B2单元格,点窗口--冻结窗口,就可以实现这个效果了

40、修改页面

<script type="text/javascript" src="../script/My97DatePicker2/WdatePicker.js"></script>

脚本必须以</script>结束,不能以/>形式

 

 41、window.opener  找到父窗口

     window.parent  找到父iframe

     window.parent.frames['left']  找到名为left的frame

 

 

41、查询乱码问题:

tomcat下server.xml文件,替换urlencoding="utf-8"

 <Connector

port="8000"               maxHttpHeaderSize="8192"

               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

               enableLookups="false" redirectPort="8443" acceptCount="100"

               connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>

 

42、文件下载时禁用迅雷:IE->工具->internet选项->程序->管理加载项->找到讯雷加载项目,勾选上禁用。

 

43、eclipse启动tomcat时不成功,修改以下文件夹下文件

F:\workspace8\.metadata\.plugins\org.eclipse.wst.server.core\servers.xml,将 start-timeout="450" 调大

 

44、缓存问题:

工具-->internet选项-->Internet临时文件 “设置”-->“每次访问此页时检查”单选钮

 

45、项目修改为jdk1.5环境,properties-->Java Compiler-->1.5,项目报错,需要修改.settings/org.eclipse.wst.common.project.facet.core.xml,将其中 <installed facet="jst.java" version="6.0"/>去掉

 

46、多对多关联时,添加主表过程中,关联表无法自动添加,在实体中的属性annotation中增加如下内容:@ManyToMany(targetEntity = UserAsset.class,cascade={CascadeType.MERGE,CascadeType.PERSIST})

其中引用的类是javax包中,不是org包

 

47、生成树时,后台json只能对id/text进行封装,封装到node节点,会被ext树中js自动识别,若想增加其它属性,无法通过后台增加新封装对象解决

方法:将增加的内容放入text中,以“;”分割,然后,在resources/js/TreeCheckNodeUI.js中的第80行,将n.text.split(";")[0]替换原来的n.text;不把内容放入id的原因是:id在js中不能轻易改变,因为它对应的是父

子树形变化

 

48、iframe调用父窗口的js方法:http://blog.csdn.net/maggiehexu/archive/2010/12/28/6102979.aspx

window.parent.方法名(参数值);  

49、sql server 2000安装完成后没有服务,sp4打完也无效。

解决方法:安装个人版时,参照“6-开发环境描述.doc”中sql server安装第七步:在“实例名”窗口中,系统一般提供了默认的复选框,我们既可以安装默认方式的实例,也可以自定义。在这一步中,直接默认方式安装,

否则仍旧会出现安装完成后没有服务的情况。

 

50、Eclipse3.5项目迁出后,servelt报错。解决方法:java module配置,将服务器重新edit一下

 

51、freemarker中小数点截取位数:${x?string("0.##")} ,通过#个数确定有小数点后几位

 

52、小数点后截取位数、

 // 1. 先乘后四舍五入, 再除; 

        double d = 62.31060027198647; 

 

        double d2 = Math.round(d*100)/100.0; 

        System.out.println("通过Math取整后做除法: " + d2); 

 

        // 2. 通过BigDecimal的setScale()实现四舍五入与小数点位数确定, 将转换为一个BigDecimal对象. 

        BigDecimal bd = new BigDecimal(d); 

        BigDecimal bd2 = bd.setScale(2, BigDecimal.ROUND_HALF_UP); 

        System.out.println("通过BigDecimal.setScale获得: " + bd2); 

 

        // 3. 通过DecimalFormat.format返回String的 

        DecimalFormat df = new DecimalFormat("#.##"); 

        System.out.println("通过DecimalFormat.format获得: " + df.format(d)); 

 

        // 4. 通过String.format 

        System.out.println("通过StringFormat: " + String.format("%.2f", d)); 

53、group查询

select a.* from table a,(select clrq,min(dqsj) as dqsj from table group by clrq) b where a.clrq=b.clrq and a.dqsj=b.dqsj,查询所有日期中每个日期最早的记录

 

54、依照时间及时间段内数量排序查询单位时间内登录用户排名

SELECT count(*) as num,uid

FROM jc_logsystem

where loginDate>cast('2010-1-1' as datetime)

group by uid

order by num desc

 

55、freemarker中list显示:

判断是否最后一项:r_has_next

<#if p.roles??>

<#list p.roles as r>

${r.name?default('')}

<#if r_has_next>,<#else>&nbsp;</#if>

</#list>

</#if>

 

56、list中存放map对象时,freemarker页面调用方式:

${p['ASSETID']?default('')}

 

<#list assets as p>

  <tr>

    <td bgcolor="#E6EFF8"><span class="STYLE3">${p['ASSETID']?default('')}</span></td>

    <td bgcolor="#E6EFF8"><span class="STYLE3">${p['NAME']?default('')}</span></td>

    <td bgcolor="#E6EFF8"><span class="STYLE3" ><a href="#" border=0onclick="getInfo('${p["UUID"]}')">${p['NUM']?default('')}</a></span></td>

  </tr>

  </#list>

 

其中${p['ASSETID']?default('')}中大写内容即为map对象中的key,通过键值对应,即可得到相应的值。大写的原因在于,hibernate中使用原生sql封装时,若查询的自动不使用引号,则会自动转成大写存放到map中。Hibernate中sql操作方式如下:

String hql = "select a.uuid uuid,a.name name,a.assetid assetid,count(*) num  from moa_safetyasset_survey s left outer join moa_asset a on s.asset=a.uuid where s.status='1' ";

if(beginTime!=null&&!"".equals(beginTime))

    hql += " and s.startTime >= to_date('"+beginTime+"','yyyy-MM-dd') ";

if(endTime!=null&&!"".equals(endTime))

    hql += " and s.startTime <= to_date('"+endTime+"','yyyy-MM-dd') ";

hql += " group by a.uuid,a.name,a.assetid";

List<Map<String,String>> list = getSession().createSQLQuery(hql).setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP).list();

57、解决table中字数过多时换行或td变大问题

Table中写入以下样式:style="table-layout:fixed"

在每个td(或者每个需要设定可能溢出范围的td)中必须规定td的大小,

并加入以下样式:style="text-overflow:ellipsis; overflow: hidden; "

并且,在td内部,需要用<nobr></nobr>套住要显示的文本

 

<table width="700" border="0" style="table-layout:fixed" cellpadding="0" cellspacing="1" bgcolor="#6493C8">  

<tr >

<td width=40 bgcolor="#FFFFFF">

<input type="radio" class="uuid"  id='ra-${p_index}' name="uuid" >

</td>

    <td width=110 bgcolor="#FFFFFF" >

           <nobr>${p.asset.name?default('')}</nobr>

    </td>

    <td width=110 bgcolor="#FFFFFF" style="text-overflow:ellipsis; overflow: hidden; "><nobr><#if p.bakType?default('')=='1'>整机配置<#elseif p.bakType?default('')=='2'>策略<#elseif p.bakType?default('')=='3'>策略+数据<#else>&nbsp;</#if></nobr></td>

</tr>

 

58、js屏蔽右键、屏蔽刷新

  1. // 屏蔽刷新代码   
  2. document.onkeydown=function()   
  3. {   
  4.     if ((window.event.keyCode==116) || //屏蔽 F5    
  5.         (window.event.keyCode==122) || //屏蔽 F11    
  6.         (window.event.shiftKey && window.event.keyCode==121) //shift+F10    
  7.        )   
  8.     {   
  9.         window.event.keyCode=0;    
  10.         window.event.returnValue=false;    
  11.     }   
  12.     if ((window.event.altKey)&&(window.event.keyCode==115)) { //屏蔽Alt+F4    
  13.         window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px");    
  14.         return false;    
  15.     }   
  16. }   
  17. // 屏蔽右键    
  18. if (window.Event)   
  19.     document.captureEvents(Event.MOUSEUP);    
  20. function nocontextmenu() {   
  21.     event.cancelBubble = true;   
  22.     event.returnValue = false;    
  23.     return false;    
  24. }   
  25. function norightclick(e) {   
  26.     if (window.Event) {   
  27.         if (e.which == 2 || e.which == 3)   
  28.             return false;    
  29.     }   
  30.     else  
  31.         if (event.button == 2 || event.button == 3) {   
  32.             event.cancelBubble = true;   
  33.             event.returnValue = false;    
  34.             return false;   
  35.         }   
  36. }   
  37. document.oncontextmenu = nocontextmenu; // for IE5+    
  38. document.onmousedown = norightclick; // for all others 

 

59、在jfreechart中如果横坐标的数据太多显示的时候会变成省略号,在不适用倾斜的情况下有没有办法使数据换行居中显示?     .
domain_axis.setCategoryLabelPositions(CategoryLabelPosITions.UP_45);
让横坐标倾斜一定的角度,但是这用方法不满足客户的要求,有没有办法,可以让它换行显示?    .
我这个是柱状图的,需设置的代码如下:

CategoryAxis axis = plot.getDmoainAxis();    

axis.setMaximumCategoryLabelLines(4); // 这边的4代表最多显示4行字 

60、服务器生成图片,并将url传到前台页面显示

获取项目根目录绝对路径,或某个文件的绝对路径

String path = request.getRealPath("/countImg/");//固定为项目下的countImg文件夹下存放生成的图片

 

61、水平柱状图,默认情况下横坐标是显示在图片上方,改为在下方显示的方法:

// create plot

       CategoryPlot plot = chart.getCategoryPlot();

       // 设置横虚线可见

       plot.setRangeGridlinesVisible(true);

       // 虚线色彩

       plot.setRangeGridlinePaint(Color.gray);

 

       plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);//在左侧或者下侧显示,默认不写的情况是x轴上侧显示坐标内容

 

62、tomcat下部署的war包无法启动,tomcat manger中项目启动状态是“false”

解决方法:tomcat下conf包中,Catalina/localhost/下有两个默认的xml,分别为host-manger.xml和manager.xml,多余一个jsh087.xml项目配置文件,而此文件对应的项目路径没有相应的jsh087项目,所以启动异常,删除jsh087.xml,启动正常

 

63、mysql完全卸载方法:

第一次安装mysql输入密码后,如果你想卸载重装,便会出现要求输入原来设定的密码,否则安装不成功。遇到这样的问题,是你没有完全卸载mysql数据库。

Mysql完全卸载方法:

1.清除MYSQL的安装目录,默认是C:\Program Files

2.清除MYSQL数据存放目录,一般在C:\programData目录下(win7)或者C:\Documents and Settings\All Users.windows\Application Data(XP)目录下删除MySQL文件夹。

(需要注意的时Application Data这个文件夹默认是隐藏的,要通过 工具->文件夹选项->查看->显示所有文件与文件夹来设置隐藏文件可见)。

3.这步很重要,之前不管我怎么卸载MYSQL清空残余文件都还是要输入原始密码,后来试试找了下注册表,清空后果然有效。

删除注册表数据,通过regedit,删除以下几个文件:

HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Applications/MySQL

HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Applications/MySQL

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Applications/MySQL至此Mysql数据库便完全卸载了,然后重新安装即可。

 

64、Spring Filter过滤器,Spring拦截未登录用户权限限制

实现的功能:判断用户是否已登录,未登录用户禁止访问任何页面或action,自动跳转到登录页面。
比较好的做法是不管什么人都不能直接访问jsp页面,要访问就通过action,这样就变成了一个实实在在的权限控制了。
那么就有3种方法可以解决楼主的问题
1,直接使用filter
2,直接使用webwork的interceptor,
3,将action交给spring管理,使用spring的Aop机制

让用户可以直接访问jsp本来就违反了mvc的本意了
1 直接使用filter
web.xml配置

<filter>  
        <filter-name>SecurityServlet</filter-name>  
        <filter-class>com.*.web.servlet.SecurityServlet</filter-class>  
    </filter>  
    <filter-mapping>  
        <filter-name>SecurityServlet</filter-name>  
        <url-pattern>*.jsp</url-pattern>  
    </filter-mapping>  
    <filter-mapping>  
        <filter-name>SecurityServlet</filter-name>  
        <url-pattern>*.do</url-pattern>  
    </filter-mapping>


SecurityServlet 类

package com.*.web.servlet;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class SecurityServlet extends HttpServlet implements Filter {
    private static final long serialVersionUID = 1L;

    public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException {
             HttpServletRequest request=(HttpServletRequest)arg0;  
           HttpServletResponse response  =(HttpServletResponse) arg1;    
           HttpSession session = request.getSession(true);    
           String usercode = (String) request.getRemoteUser();// 登录人
           String user_role = (String)session.getAttribute("role");//登录人角色
           String url=request.getRequestURI();  
           if(usercode==null || "".equals(usercode) || user_role == null || "".equals(user_role)) {      
                //判断获取的路径不为空且不是访问登录页面或执行登录操作时跳转  
                if(url!=null && !url.equals("") && ( url.indexOf("Login")<0 && url.indexOf("login")<0 )) {  
                    response.sendRedirect(request.getContextPath() + "/login.jsp");  
                    return ;  
                }              
            }  
            arg2.doFilter(arg0, arg1);  
            return;  
    }
    public void init(FilterConfig arg0) throws ServletException {
    }

}
配置中的filter-mapping,定义的是需过滤的请求类型,上面的配置即过滤所有对jsp页面和action的请求。过滤器的实现与struts2、spring框架无关,在用户请求被相应前执行,在过滤器中,可使用response.sendRedirect("")等方法

跳转到需要的链接,如登录页面、错误页面等,不需要跳转时,arg2.doFilter(arg0, arg1);即可继续执行用户的请求。注意使用filter时避免连续两次跳转,否则会报java.lang.IllegalStateException错误,具体配置方法网上有,除非必要,不建议使用/*(过滤所有访问)的配置方式,这样配置,图片、js文件、css文件等访问都会被过滤


2 Spring拦截

Spring配置

<bean id="springSessionInterceptor" class="com.*.web.servlet.SpringLoginInterceptor" >
     </bean>
<bean id="autoPorxyFactoryBean1"
        class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
        <property name="interceptorNames">
            <list>
                <value>springLoginInterceptor</value>
            </list>
        </property>
        <property name="beanNames" >
        <list>
            <value>*Controller</value>
            </list>
        </property>
    </bean>
SpringLoginInterceptor实现类

package com.web.servlet;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
import org.apache.log4j.Logger;
import org.apache.struts.action.ActionMapping;

public class SpringLoginInterceptor implements MethodInterceptor {
    private static final Logger log = Logger
    .getLogger(SpringLoginInterceptor .class);

    @Override
    public Object invoke(MethodInvocation invocation) throws Throwable {
        log.info("拦截开始!");
        Object[] args = invocation.getArguments();  
        HttpServletRequest request = null;
        HttpServletResponse response = null;
        ActionMapping  mapping = null;
        for (int i = 0 ; i < args.length ; i++ )    {
          if (args[i] instanceof HttpServletRequest) request = (HttpServletRequest)args[i];  
          if (args[i] instanceof HttpServletResponse) response = (HttpServletResponse)args[i];  
          if (args[i] instanceof ActionMapping) mapping = (ActionMapping)args[i];  
        }
        if (request != null && mapping != null) {
            String url=request.getRequestURI();  
            HttpSession session = request.getSession(true);    
            String usercode = (String) request.getRemoteUser();// 登录人
            String user_role = (String)session.getAttribute("user_role");//登录人角色
            
            if (usercode == null || usercode.equals("")) {
                if ( url.indexOf("Login")<0 && url.indexOf("login")<0 ) {
                    
                    return mapping.findForward("loginInterceptor");
                }  
                return invocation.proceed();
            }
            else {
                return invocation.proceed();
            }
        }
        else {
            return invocation.proceed();
        }
    }
}

65、全屏截图

360、tt、遨游等浏览器自带

 

66、消除某一图片的某种单一颜色为透明色

       通过ppt2007,点击图片—图片工具—调整—重新着色—设置透明色—点击要透明的图片中颜色,即可以透明处理。将透明后的图片通过设置顶层,放在新的背景图上面,将组合的图像“组合”,保存为新图片,完成图片修改。

 

67、将某个文件的编译文件指定到某个位置

右键-properties-java Build Path-Source-Add Folder

一般会将src内文件放入moa/build/classes类似文件下,若想在classes下加入其它文件,则只需要在src下建立相应的文件夹和文件即可以

 

67、消除某一图片的某种单一颜色为透明色

select sysdate-interval '15'minute from dual

 

 

68、获取spring中dao

ApplicationContext ctx = new ClassPathXmlApplicationContext("drizzt/sf/context/main/spring.xml");

       SafetyAssetSurveyDao safetyAssetSurveyDao = (SafetyAssetSurveyDao) ctx.getBean("safetyAssetSurveyDao");

69、javascript 用正则表达式 字符串 全部替换

<script language="JavaScript">
<!--
var s = "testtest" ;

//第二个参数中的 g 表示全部匹配,i表示忽略大小写
var regS = new RegExp("test","gi");

alert(s.replace("test","Hello")); //只替换一个
alert(s.replace(regS,"Hello")); //全部替换
//-->
</script>

70、javascript 用图片按比例缩放

 

<SCRIPT   LANGUAGE= "JavaScript ">
<!--
function   setImg(img,   width,   height)
{
    var   s1   =   width/height;
    var   s2   =   img.offsetWidth/img.offsetHeight;
    if(s1> s2)   img.height   =   img.offsetHeight> height   ?   height   :   img.offsetHeight;
    else     img.width   =   img.offsetWidth> width   ?   width   :   img.offsetWidth;
}
//-->
</SCRIPT>
<img   border=0   src= "http://community.csdn.net/images/CSDN_logo.GIF "
  onload= "setImg(this,   100,   100) ">

 

 

71、查看开机时间

C:\WINDOWS\schedlgu.txt

 

72、Mysql 1130错误,无法连接服务器端

mysql -u root -p
mysql>use mysql;
mysql>select 'host' from user where user='root';
mysql>update user set host = '%' where user ='root';
mysql>flush privileges;
mysql>select 'host'   from user where user='root';

mysql>quit;

第一句是以权限用户root登录
第二句:选择mysql库
第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)
第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址
第五句:刷新MySQL的系统权限相关表
第六句:再重新查看user表时,有修改。。
重起mysql服务即可完成。

73、font字体 ie6 ie8不同

因为有些family两种浏览器css不识别,

原为:font{font-size:13px;cursor:hand;font-family:”仿宋”;},

修改为:font{font-size:13px;cursor:hand;font-family:Arial;}

IE6 和 IE7/8基本无差别的字体如下:

font-family: Arial, Helvetica, sans-serif;
font-family: ‘Arial Black’, Gadget, sans-serif;
font-family: ‘Bookman Old Style’, serif;
font-family: ‘Comic Sans MS’, cursive;
font-family: Courier, monospace;
font-family: ‘Courier New’, Courier, monospace;
font-family: Garamond, serif;
font-family: Georgia, serif;
font-family: Impact, Charcoal, sans-serif;
font-family: ‘Lucida Console’, Monaco, monospace;
font-family: ‘Lucida Sans Unicode’, ‘Lucida Grande’, sans-serif;
font-family: ‘MS Sans Serif’, Geneva, sans-serif;
font-family: ‘MS Serif’, ‘New York’, sans-serif;
font-family: ‘Palatino Linotype’, ‘Book Antiqua’, Palatino, serif;
font-family: Symbol, sans-serif;
font-family: Tahoma, Geneva, sans-serif;
font-family: ‘Times New Roman’, Times, serif;
font-family: ‘Trebuchet MS’, Helvetica, sans-serif;
font-family: Verdana, Geneva, sans-serif;
font-family: Webdings, sans-serif;
font-family: Wingdings, ‘Zapf Dingbats’, sans-serif;

74、ORACLE用户自动被锁解决方法

--1.
--系统参数配置  connect sys/password@db_link as sysdba

select * from dba_profiles where resource_name like 'FAILED_LOGIN_ATTEMPTS%';
--1 DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 10
--连续错误连接10次用户被锁定
--2.
--查看被锁的用户
select LOCK_DATE,username from dba_users where username='USERNAME';
LOCK_DATE为空说明没有锁定,非空为锁定。

-----
SELECT S.USERNAME,
       DECODE(L.TYPE, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', NULL) LOCK_LEVEL,
       O.OWNER,
       O.OBJECT_NAME,
       O.OBJECT_TYPE,
       S.SID,
       S.SERIAL#,
       S.TERMINAL,
       S.MACHINE,
       S.PROGRAM,
       S.OSUSER
   FROM V$SESSION S, V$LOCK L, DBA_OBJECTS O
WHERE S.SID = L.SID
   AND O.OBJECT_ID = L.ID1
   AND S.USERNAME IS NOT NULL;
--3.
--解锁方法
ALTER USER USER_NAME ACCOUNT UNLOCK;
--值的注意,在升级过程中,被锁的用户,有可能不值一个
--重新升级

-----设置系统的默认登录次数

alter profile DEFAULT limit FAILED_LOGIN_ATTEMPTS 10;

alter profile DEFAULT limit FAILED_LOGIN_ATTEMPTS UNLIMITED;

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

数据管理员为这个用户单独设置了登录次数则要查找这个用户对应的profile,然后修改.可以查看用户的创建语名找到对应的设置。

Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用 Create Profile命令创建一个Profile,用它来实现对数据库资源的限制使用,如果把该profile分配给用户,则该用户所能使用的数据库资源都在该 profile的限制之内。

二、条件:

创建profile必须要有CREATE PROFILE的系统权限。

为用户指定资源限制,必须:

1.动态地使用alter system或使用初始化参数resource_limit使资源限制生效。该改变对密码资源无效,密码资源总是可用。

SQL> show parameter resource_limit

NAME                                 TYPE        VALUE

———————————— ———– ——————————

resource_limit                       boolean     FALSE

 

SQL> alter system set resource_limit=true;

系统已更改。

SQL> show parameter resource_limit;

NAME                                 TYPE        VALUE

———————————— ———– ——————————

resource_limit                      boolean     TRUE

SQL>

2.使用create profile创建一个定义对数据库资源进行限制的profile。

3.使用create user 或alter user命令把profile分配给用户。

三、语法:

          CREATE PROFILE profile 
 
LIMIT { resource_parameters | password_parameters } [ resource_parameters | password_parameters ]… ;
 
   <resource_parameters>
{{ SESSIONS_PER_USER | CPU_PER_SESSION | CPU_PER_CALL | CONNECT_TIME | IDLE_TIME | LOGICAL_READS_PER_SESSION | LOGICAL_READS_PER_CALL | COMPOSITE_LIMIT } { integer | UNLIMITED | DEFAULT }
| PRIVATE_SGA { integer [ K | M ] | UNLIMITED | DEFAULT }}

< password_parameters >

{{ FAILED_LOGIN_ATTEMPTS | PASSWORD_LIFE_TIME | PASSWORD_REUSE_TIME | PASSWORD_REUSE_MAX | PASSWORD_LOCK_TIME | PASSWORD_GRACE_TIME } { expr | UNLIMITED | DEFAULT }
| PASSWORD_VERIFY_FUNCTION { function | NULL | DEFAULT }
 
}

四、语法解释:

       profile :配置文件的名称。Oracle数据库以以下方式强迫资源限制:

       1 .如果用户超过了connect_time或idle_time的会话资源限制,数据库就回滚当前事务,并结束会话。用户再次执行命令,数据库则返回一个错误,

       2 .如果用户试图执行超过其他的会话资源限制的操作,数据库放弃操作,回滚当前事务并立即返回错误。用户之后可以提交或回滚当前事务,必须结束会话。

       提示:可以将一条分成多个段,如1小时(1/24天)来限制时间,可以为用户指定资源限制,但是数据库只有在参数生效后才会执行限制。      

       Unlimited :分配该profile的用户对资源使用无限制,当使用密码参数时,unlimited意味着没有对参数加限制。

       Default :指定为default意味着忽略对profile中的一些资源限制,Default profile初始定义对资源不限制,可以通过alter profile命令来改变。

       Resource_parameter 部分:      

       Session_per_user :指定限制用户的并发会话的数目。

       Cpu_per_session :指定会话的CPU时间限制,单位为百分之一秒。

       Cpu_per_call :指定一次调用(解析、执行和提取)的CPU时间限制,单位为百分之一秒。

       Connect_time :指定会话的总的连接时间,以分钟为单位。

       Idle_time :指定会话允许连续不活动的总的时间,以分钟为单位,超过该时间,会话将断开。但是长时间运行查询和其他操作的不受此限制。

       Logical_reads_per_session :指定一个会话允许读的数据块的数目,包括从内存和磁盘读的所有数据块。

       Logical_read_per_call :指定一次执行SQL(解析、执行和提取)调用所允许读的数据块的最大数目。

       Private_sga :指定一个会话可以在共享池(SGA)中所允许分配的最大空间,以字节为单位。(该限制只在使用共享服务器结构时才有效,会话在SGA中的私有空间包括私有的SQL和PL/SQL,但不包括共享的SQL和PL/SQL)。

       Composite_limit :指定一个会话的总的资源消耗,以service units单位表示。Oracle数据库以有利的方式计算cpu_per_session,connect_time, logical_reads_per_session和private-sga总的service units

       Password_parameter 部分:       

       Failed_login_attempts :指定在帐户被锁定之前所允许尝试登陆的的最大次数。

       Password_life_time :指定同一密码所允许使用的天数。如果同时指定了 password_grace_time参数,如果在grace period内没有改变密码,则密码会失效,连接数据库被拒绝。如果没有设置password_grace_time参数,默认值unlimited将引发一个数据库警告,但是允许用户继续连接。

       Password_reuse_time 和password_reuse_max:这两个参数必须互相关联设置,password_reuse_time指定了密码不能重用前的天数,而password_reuse_max则指定了当前密码被重用之前密码改变的次数。两个参数都必须被设置为整数。

       1 .如果为这两个参数指定了整数,则用户不能重用密码直到密码被改变了password_reuse_max指定的次数以后在password_reuse_time指定的时间内。

       如:password_reuse_time=30,password_reuse_max=10,用户可以在30天以后重用该密码,要求密码必须被改变超过10次。

       2 .如果指定了其中的一个为整数,而另一个为unlimited,则用户永远不能重用一个密码。

       3 .如果指定了其中的一个为default,Oracle数据库使用定义在profile中的默认值,默认情况下,所有的参数在profile中都被设置为unlimited,如果没有改变profile默认值,数据库对该值总是默认为unlimited。

       4 .如果两个参数都设置为unlimited,则数据库忽略他们。

       Password_lock_time :指定登陆尝试失败次数到达后帐户的缩定时间,以天为单位。

       Password_grace_time :指定宽限天数,数据库发出警告到登陆失效前的天数。如果数据库密码在这中间没有被修改,则过期会失效。

       Password_verify_function :该字段允许将复杂的PL/SQL密码验证脚本做为参数传递到create profile语句。Oracle数据库提供了一个默认的脚本,但是自己可以创建自己的验证规则或使用第三方软件验证。对Function名称,指定的是密码验证规则的名称,指定为Null则意味着不使用密码验证功能。如果为密码参数指定表达式,则该表达式可以是任意格式,除了数据库标量子查询。      

五、举例:

       1 .创建一个profile:

       create profile new_profile limit password_reuse_max 10 password_reuse_time 30;

       2 .设置profile资源限制:

       create profile app_user limit sessions_per_user unlimited cpu_per_session unlimited cpu_per_call 3000 connect_time 45 logical_reads_per_session default logical_reads_per_call 1000 private_sga 15k composite_limit 5000000;

       总的resource cost不超过五百万service units。计算总的resource cost的公式由alter resource cost语句来指定。      

       3 .设置密码限制profile:

       create profile app_users2 limit failed_login_attempts 5 password_life_time 60 password_reuse_time 60 password_reuse_max 5 password_verify_function verify_function password_lock_time 1/24 password_grace_time 10;             

       4 .将配置文件分配给用户:

              SQL> alter user dinya profile app_user;

用户已更改。

              SQL> alter user dinya profile default;

用户已更改。

75、血型判断

function bloodType(){

    var b = new Array(new Array(),new Array(),new Array(),new Array());

    b[0][0]='可能为A或O,不可能为B和AB';

    b[0][1]='可能为A、B、AB、O';

    b[0][2]='可能为A或O,不可能为B和AB';

    b[0][3]='可能为A、B、AB,不可能为O';

    b[1][0]= '可能为A、B、AB、O';

    b[1][1]='可能为B或O,不可能为A和AB';

    b[1][2]='可能为B或O,不可能为A和AB';

    b[1][3]='可能为A、B、AB,不可能为O';

    b[2][0]= '可能为A或O,不可能为B和AB';

    b[2][1]= '可能为B或O,不可能为A和AB';

    b[2][2]='可能为O,不可能为A、B、AB';

    b[2][3]='可能为A或B,不可能为O和AB';

    b[3][0]= '可能为A、B、AB,不可能为O'

    b[3][1]= '可能为A、B、AB,不可能为O';

    b[3][2]= '可能为A或B,不可能为O和AB';

    b[3][3]='可能为A、B、AB,不可能为O';

   

    var i= document.getElementById("select_1").value;

    var j= document.getElementById("select_2").value;

    document.getElementById("bloodResult").innerHTML= b[i][j];

}

<span id='blood' name='blood'></span>

 

76、 //日期增加函数

 //日期增加函数
 function  dateAdd(strInterval,  NumDay,  dtDate)  { 
    var  dtTmp  =  new  Date(dtDate); 
    if  (isNaN(dtTmp))  dtTmp  =  new  Date(); 
    switch  (strInterval)  { 
     case  "s":return  new  Date(Date.parse(dtTmp)  +  (1000  *  NumDay)); 
     case  "n":return  new  Date(Date.parse(dtTmp)  +  (60000  *  NumDay)); 
     case  "h":return  new  Date(Date.parse(dtTmp)  +  (3600000  *  NumDay)); 
     case  "d":return  new  Date(Date.parse(dtTmp)  +  (86400000  *  NumDay)); 
     case  "w":return  new  Date(Date.parse(dtTmp)  +  ((86400000  *  7)  *  NumDay)); 
     case  "m":return  new  Date(dtTmp.getFullYear(),  (dtTmp.getMonth())  +  NumDay,  dtTmp.getDate(),  dtTmp.getHours(),  dtTmp.getMinutes(),  dtTmp.getSeconds()); 
     case  "y":return  new  Date((dtTmp.getFullYear()  +  NumDay),  dtTmp.getMonth(),  dtTmp.getDate(),  dtTmp.getHours(),  dtTmp.getMinutes(),  dtTmp.getSeconds()); 
    } 
 } 

参数
//将日期beginDate加上一天
strDateList = DateAdd("d", 1, beginDate).toLocaleString(); 

77、ExtJs3.4在eclipse无法自动提示及报错问题

首先,安装提示插件,Spket,将features和plugins分别放入对应的eclipse下。

然后,以Eclipse插件形式安装

启动ECLIPSE Help → Software Updates → Find and Install… → Search for new features to install → New remote site…

名称: “Spket”,地址URL是http://www.spket.com/update/

完成后重启(自动会加载插件,也可CMD ECLIPSE目录 使用命令 eclipse -clean 重新编译)

Window → Preferences → Spket → JavaScript Profiles → New ;

输入“ExtJS”点击OK;

选择“ExtJS” 并点击“Add Library”然后在下拉条中选取“ExtJS”;

选择 “ExtJS”并点击“Add File”,然后在你的./ext-3.0.0目录中选取“ext.jsb” 文件,注意一定也要把ext-all.js和ext-all-debug.js这两个JS文件选择进来,不然即使配了也不会有提示,我开始就是没有把这二 个JS加进来。

选择你想加载的插件,这里我们选择ExtJS.

设置新的ExtJS Profile,选中并点击“JavaScript Profiles” 对话框右手边的“Defalut”按钮;

JS打开方式为 Window → Preferences → General→ Editors→ File…

选择JS 或者新创建 设置默认打开方式 为 Spket JavaScript Editor(default) (把spket设为js默认的编辑器)

最后,配置Spket

 注意:如果在安 装spket过程中,你的eclipse或者Myeclipse是打开的,请重启eclipse或者Myeclipse。以便初始化插件,下面才会在 Preferences中看到 Spket选项。

基本步骤如下:

1)Window → Preferences → Spket ;

 

2)Spket → JavaScript Profiles → New, 输入“ExtJS”点击OK;

3)选择“ExtJS” 并点击“Add Library”然后在下拉条中选取“ExtJS”;

4)选择 “ExtJS”并点击“Add File”,然后在你的./ext-2.x/source目录中选取“ext.jsb” 文件;

 

5)设置新的ExtJS Profile,选 中并点击“JavaScript Profiles” 对话框右手边的“Defalut”按钮;

下面这个操作,根据自己需要设置(可以全选)。

 

把ext.jsb和ext-all.js以及ext- all-dubeg.js三个一起加上才行。

备注,打开js时若仍旧提示“ext not be resolved”,右键打开js文件,选择:

设置默认打开方式 为 Spket JavaScript Editor(default) (把spket设为js默认的编辑器)

 

78、extjs tree 无法自动显示滚动条,需要在红方框内添加autoScroll,其它位置无效

 

79、解决动态获取checkboxgroup时,无法获取到选中项的值,问题在于ie中dom识别的问题,获取值时,最好使用getAttribute(“标签名称”)

var s=[];//字符串数组传递

//     var roleBox = treeWin.items.itemAt(0).items.itemAt(0);

//     alert(xx.getValue().length);

var rs = document.getElementsByName("role");

for (var i = 0; i < rs.length; i++) {

       if(rs[i].checked)

       s.push(rs[i].getAttribute("value"));//通过getAttribute获取复选框中的值,若不使用getAttribute,会有object htmlinputelement问题

}

Ext.Ajax.request({url : '/moa/person/extAssignRole.dsf',

                            params : {uuids : s,personId:record.get("uuid")},

                            method : 'POST',

                            success : function(response, options) {

                                          Ext.Msg.show({title : '信息提示',

                                                               msg : '分配角色成功!!',

                                                               buttons : Ext.MessageBox.OK,

                                                               icon : Ext.Msg.INFO

                                                               });

                                                 search();

                                                                                          

                                                 },

                            failure : function(response, options) {

Ext.Msg.show({title : '错误提示',

                                                               msg : '分配角色时发生错误!',

                                                               buttons : Ext.Msg.OK,

                                                               icon : Ext.Msg.ERROR

                                                               });

                            }

                                                       

});

 

80、extjs 生成树后,选择复选框提交后js报错,原因:后台中没有增加属性

jsonObject.accumulate("checked", false);

 

81、ext中tree具有复选框单选、级联效果

baseAttrs: { uiProvider: Ext.ux.TreeCheckNodeUI }, //添加 uiProvider 属性 

ftl文件中引入了

<script type="text/javascript" src="/moa/resources/js/TreeCheckNodeUI.js"></script>

82、Oracle取得本周,本月,本季,本年的第一天和最后一天

--本周

select trunc(sysdate,'d')+1 from dual;

select trunc(sysdate,'d')+7 from dual;

--本月

select trunc(sysdate,'mm') from dual;

select last_day(trunc(sysdate)) from dual;

--本季

select trunc(sysdate,'Q') from dual;

select add_months(trunc(sysdate,'Q'),3)-1 from dual;

--本年

select trunc(sysdate,'yyyy') from dual;

select add_months(trunc(sysdate,'yyyy'),12)-1 from dual;

 

83、查看开机记录

Win+R:schedlgu.txt

84、freemarker 自定义自加方法

<#assign x=1 >

<#list arrList as x>

<#assign x=1+x>

${x}

</#list>

 

85、Tomcat如何设置资源过期

1. 在server.xml中定义context时采用如下定义: xml 代码<Context path="/livsorder" docBase="/home/httpd/html/livsorder"      

  defaultSessionTimeOut="3600" isWARExpanded="true"      

  isWARValidated="false" isInvokerEnabled="true"      

  isWorkDirPersistent="false"/>  

 

2. 在web.xml中通过参数指定:

 

xml 代码<session-config>   

    <session-timeout>30</session-timeout>       

</session-config>  

 

其中30表示30分钟

 

3. 在程序中通过servlet api直接修改

 

java 代码HttpSession ses = request.getSession();   

ses.setMaxInactiveInterval(10);  

设置单位为秒,设置为-1永不过期。

 

86、背景图不重复叠加,背景图不会显示不全

<body style="width:1424px;height:900px;background-image:url('newIndex1.png');background-position:center; background-repeat:no-repeat">

不叠加:no-repeat

背景图显示全:widthh和height不能小于图片的宽高

 

原创粉丝点击