zoukankan      html  css  js  c++  java
  • java web 学习 --第七天(Java三级考试)

    第六天的学习内容如下:http://www.cnblogs.com/tobecrazy/p/3462244.html

    application

    application对象的方法与应用:

    ①   setAttribute(String name, Object object) 把一个对象数据和一个属性绑定,并将这个对象数据放在servlet上下文环境中

    ②   getAttribute(String name) 根据指定的属性名返回绑定的对象

    ③   removeAttribute(String name) 根据指定的属性名从servlet上下文环境中删除指定名称的属性

    ④   getAttributeNames() 返回一个Enumeration类型的枚举对象实例,其中包含servletContext对象实例内所有属性名

    application对象其实就是ServletContext类对象的实例

    jsp页面中的application对象实现了不同用户之间的数据共享功能在其中可以存放全局变量,生命期直到web服务器的关闭,在此期间application对象将一直放在内存中,与session对象不同系统中任何一个用户操作application对象并对其进行了修改,都将会影响到其他用户的访问。Application对象其实都是同一个,所有用户都共享这个内置的application对象。同一个页面中不可以出现两个同名的application对象

     

     

    实例:使用application对象统计系统访问总人数,新建index.jsp页面

    在head标签之间添加

    <%
    
    /*Integer count=null;
    
    synchronized(application)
    
    {
    
     
    
     count=(Integer)application.getAttribute("counter");
    
     if(count==null)
    
      count=new Integer(0);
    
     count=new Integer(count.intValue()+1);
    
     application.setAttribute("counter",count);
    
     }*/
    
    Integer  onLineCounter=(Integer)application.getAttribute("counter");
    
              if(onLineCounter==null)
    
              {
    
                     onLineCounter=new Integer(0);
    
              }
    
              int nowTotalCounter=onLineCounter.intValue()+1;
    
              synchronized(application)
    
              {
    
                     application.setAttribute("counter",new Integer(nowTotalCounter));
    
              }
    
         %>   

    之后在body添加

    <%= nowTotalCounter %

    体验application对象的生命期

    如果关闭web服务器再重新启动,application对象就会销毁,再次访问index.jsp计数器便会从0开始

    exception

    exception对象需要在jsp的页面中应用page指令,设置isErrorPage属性为true 既<%@page isErrorPage=”true” %> ,Jsp才会创建出exception对象

    exception对象中的方法:

    ①     getMessage() 返回错误信息

    ②     printStackTrace() 以标准错误的形式输出错误和错误堆栈

    ③     toString() 以字符串形式返回异常信息

    exception 应用实例:

    在error.jsp 添加如下代码

    设置isErrorPage=”true”

    <%@page isErrorPage="true"%>

    在body标签中添加

    <table><tr><td>
    
    <% out.print("Exception information"+exception.getMessage()); //get error message%><br></td></tr>
    
    <tr><td>
    
    <br>Stack Trace is:
    
    <%java.io.CharArrayWriter cw= new java.io.CharArrayWriter();  
    
    java.io.PrintWriter pw=new java.io.PrintWriter(cw,true);
    
    exception.printStackTrace(pw);
    
    out.print(cw.toString());
    
     %>
    
    </td></tr></table> 

    在login.jsp添加

    引入error message 的jsp页面

    <%@ page isErrorPage="true" errorPage="error.jsp"  %>

    在body标签添加

    <%

            int x=0;

            int y=3/x;

           

      %>

    再次访问login.jsp 就能看到exception,注意此时地址栏的URL还是login.jsp但是显示的错误却是error.jsp的内容,可见servlet是通过请求转发的方式实现的

    Exception information/ by zero


    Stack Trace is: java.lang.ArithmeticException: / by zero at org.apache.jsp.login_jsp._jspService(login_jsp.java:89) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Unknown Source)

     

  • 相关阅读:
    Vue—node
    Vue—组件,父传子,子传父
    Vue—实例成员computed和watch
    Vue—条件、循环指令
    Vue初识
    BBS—登录,修改密码,退出登录
    创建ORM模型
    模板介绍
    url映射的时候指定默认参数
    自定义url转换器
  • 原文地址:https://www.cnblogs.com/tobecrazy/p/3464231.html
Copyright © 2011-2022 走看看