zoukankan      html  css  js  c++  java
  • 每日记载内容总结5

    1.url重复使用,可以编写一次然后引用:

    <s:url namespace="/catalog" action="product" id="url" escapeAmp="false"> <!--escapeAmp="false"传递多个参数时需要加上,除去链接参数之间的&amp -->
            <s:param name="product.productId" value="productId"/> <!--name即为所传入的参数,value为参数的值 -->
    </s:url> 
    <a href="<s:property value="#url"/>">

    2.关于数据库表格的级联删除以及级联更新操作:

    alter table a
       add constraint FK_OA_REDB foreign key (studentID)
          references student(uid)
             on update cascade on delete cascade --赋予级联删除和级联更新

    1.       Cascade:更新或删除父表时,所有子记录更新或删除
    2.       Restrict:阻止父表更新或删除
    3.       Set Null:更新或删除父记录时,将子记录中的外键设为NULL。
    4.       No Action:不执行完整性限制
    5.       Set Default:更新或删除父表时,将子记录中的外键设置为默认值

    3.一些常见错误以及解决方案:

    javax.servlet.jsp.PageContext cannot be resolved to a type
    javax.servlet.jsp.JspException cannot be resolved to a type
    
    要加servlet-api.jar和jsp-api.jar
    WEB项目中出现The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in ei

    jstl.jar 包在ide项目中有,但在tomcat发布的应用WEB-INF/lib下没有,这是工具发布项目的问题,复制一个jar包过去问题就解决了
    用jstl调用java 方法报The function equals must be used with a prefix when a default namespace is not specified错误。
    <c:if test="${user.userName.equals('admin')== true }">

    answer:
        <c:set var="username_sp" value="<s:property value=\"user.userName.equals('admin')\"/>" />  
        <c:if test="${username_sp== true }"> 
    出错:java.lang.IllegalStateException: getOutputStream() has already been called for this response 此错误出自用servlet创建验证码
    
    JSP页面有一个隐式对象out,是由response的getWriter()产生的。 
    而你现在又调用了response的getOutputStream(),但response的getWriter()与getOutputStream()是不应该同时使用的——这就是出现上边所示异常的原因。
    因为JSP中百分百会先调用getWriter(),所以你可以考虑使用Servlet来实现图片下载的功能。 
    
    在outputstream后面添加代码:out.clear();
    out=pageContext.pushBody();即可解决

    4.关于表单提交

      1.struts获取jsp里面bean的值,需要form提交 可用$("form").attr("action","addStudent.do");    $("form").submit();实现

      2.如果用js提交,只能获取其中一个的值,不能获取bean的值。

      3.name 里面加入bean'的名字,如student.studentName 在action里面get  set  studentName,依旧可以获取单独的studentName

      4.同一个表单的多种可能提交方式:

        办法1.同一个页面中建立两个表单 各自提交:

    <form action="?" name="form1" id="form1">
     <!-- 表单内容 -->
    <input type="submit" />
    </form>
    <form action="?" name="form1" id="form1">
     <!-- 表单内容 -->
    <input type="submit"  />
    </form>

        办法2:如果非要只有一个表单的话,通过js提交:

    <script type="text/javascript" language="javascript">
    function submitYouFrom(path){
     $('form1').action=path;
     $('form1').submit();
    }
    </script>
    <form action="?" name="form1" id="form1">
    
     <!-- 表单内容 -->
    <input type="button" value="提交1" onclick="submitYouFrom('地址一')"/>
    <input type="button" value="提交2" onclick="submitYouFrom('地址二')"/>
    </form>

    5.其余的知识:

      1.用hql语句不能实现添加内容到表格。可以通过save方法实现。

      2.substring(2) 截取从第2个开始(不包括2)的剩下的所有字符
       subString(2,4)截取从第二个开始(不包括2)到第四个字符(包括4)也就是3 4

      3.索引合并的时候,不关闭IndexReader,将导致部分数据占用,从而合并的时候,多个cfs格式文件不能合并成一个。

    6.schedule和scheduleAtFixedRate的区别:

    在于,如果指定开始执行的时间在当前系统运行时间之前,scheduleAtFixedRate会把已经过去的时间也作为周期执行,而schedule不会把过去的时间算上。

    比如

    SimpleDateFormat fTime = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
      Date d1 = fTime.parse("2005/12/30 14:10:00");
     
      t.scheduleAtFixedRate(new TimerTask(){
       public void run()
       {
           System.out.println("this is task you do6");
       }
      },d1,3*60*1000);

    间隔时间是3分钟,指定开始时间是2005/12/30 14:10:00,如果我在14:17:00分执行这个程序,那么会立刻打印3次

    this is task you do6     //14:10
    this is task you do6     //14:13
    this is task you do6     //14:16

    并且注意,下一次执行是在14:19 而不是 14:20。就是说是从指定的开始时间开始计时,而不是从执行时间开始计时。

    但是上面如果用schedule方法,间隔时间是3分钟,指定开始时间是2005/12/30 14:10:00,那么在14:17:00分执行这个程序,则立即执行程序一次。并且下一次的执行时间是 14:20,而不是从14:10开始算的周期(14:19)。

  • 相关阅读:
    C++基础学习6:内联函数
    lvm
    yum源
    mysql性能优化
    PXE
    dns配置
    进程命令
    ssh免密登陆和加密解密
    RAID阵列
    快速部署postfix邮件服务器
  • 原文地址:https://www.cnblogs.com/cuiyf/p/3039151.html
Copyright © 2011-2022 走看看