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)

     

  • 相关阅读:
    Running APP 使用说明
    Android 控件八 WebView 控件
    Android 控件七 ImageView 控件
    Android 控件六 CheckBox 控件
    Android 控件五 RadioButton 控件
    Android 控件四 EditText 控件
    Android 控件三 TextView 控件实现 Button
    Android 控件二 Button
    Android 基础控件演示实例
    Android 控件一 TextView
  • 原文地址:https://www.cnblogs.com/tobecrazy/p/3464231.html
Copyright © 2011-2022 走看看