第六天的学习内容如下: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)

java web 学习 --第七天(Java三级考试)的更多相关文章

  1. java web 学习 --第九天(Java三级考试)

    第八天的学习内容如下:http://www.cnblogs.com/tobecrazy/p/3468458.html Java servlet 技术 Servlet是使用java servlet应用程 ...

  2. java web 学习 --第一天(Java三级考试)

    1.Servlet servlet是运行在web server或 application server端的Java程序,主要用于在服务器端产生动态内容. servlet 在服务器端主要有以下作用 读取 ...

  3. Java Web学习(十一)Java过滤器

    一.引言 上一篇文章学习了java三大器的拦截器,拦截器主要是针对于action请求进行拦截处理的,那么对于requst的一些信息如果在调用前,想先进行过滤和处理,那么就要使用到第二个神器,也就是本文 ...

  4. java web学习总结(七) -------------------HttpServletResponse对象(一)

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...

  5. java web 学习 --第八天(Java三级考试)

    第七天的学习内容:http://www.cnblogs.com/tobecrazy/p/3464231.html EL表达式 EL : Expression Language 使用EL表达式可以减少& ...

  6. java web 学习 --第二天(Java三级考试)

    第一天的学习在这http://www.cnblogs.com/tobecrazy/p/3444474.html 2.jsp 基础知识 Jsp页面中的Java脚本主要有3部分:声明(Declaratio ...

  7. Java Web学习(七)HttpServletResponse(客户端响应)

    一.定义 HttpServletResponse对象代表服务端的响应,通过这个对象提供的方法,可以向客户机输出数据. 二.常用方法 在JavaWeb开发中,只要是写URL地址,那么建议最好以" ...

  8. [原创]java WEB学习笔记36:Java Bean 概述,及在JSP 中的使用,原理

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  9. [原创]java WEB学习笔记18:java EE 中的MVC 设计模式(理论)

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

随机推荐

  1. 50多条mysql数据库优化建议

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 缺省情况下建立的索引是非群集索引,但有时它并不是最佳的.在非群集索引下,数据在物理上随机存 ...

  2. 深入理解Javascript面向对象编程

    深入理解Javascript面向对象编程 阅读目录 一:理解构造函数原型(prototype)机制 二:理解原型域链的概念 三:理解原型继承机制 四:理解使用类继承(继承的更好的方案) 五:建议使用封 ...

  3. 自执行的匿名函数!function()

    最近有空可以让我静下心来看看各种代码,function与感叹号的频繁出现,让我回想起2个月前我回杭州最后参加团队会议的时候,@西子剑影抛出的一样的问题:如果在function之前加上感叹号 (!) 会 ...

  4. EF-在EF中运行sql语句

    DbRawSqlQuery<int> result2 = db.Database.SqlQuery<int>("SELECT count(*) FROM test.s ...

  5. WCF :IIS寄宿方式的Web地址、BaseAddress和EndPoint Address的关系

    对于在IIS中通过W3SVC或WAS寄宿的WCF Service,其在浏览器中显示的地址(Web地址),与其配置文件中的BaseAddress和EndPoint Address有什么关系呢?让我们来分 ...

  6. Hadoop 之Impala

    impala 是基于hive的大数据实时分析查询引擎,直接使用Hive的元数据库metadata意味着impala元数据都存储在hive的metadstore中并且impala兼容hive的 sql解 ...

  7. mongodb python image 图像存储读取

    最近做一些数据库调研的工作,目标是实现影像更快的入库.出库.查询,并实现并行访问等操作. 将结果总结成一个mongoImg类,也算是小结吧. ''' Created on 2013-8-6 class ...

  8. 搞明白这八个问题,Linux系统就好学多了

    导读 正在犹豫入坑Linux学习的同学或者已经入坑的同学,经常会问到这样八个问题.今天,这些问题我都会一一解答,希望我的看法能帮助各位同学.常言道“好的开始是成功的一半”,如果你明白了以下八个问题,就 ...

  9. dispaly:table-cell,inline-block,阐述以及案例

    display:table 此元素会作为块级表格来显示(类似 <table>),表格前后带有换行符.dispaly:table-row 此元素会作为一个表格行显示(类似 <tr> ...

  10. 清除SVN版本控制文件

    命名为bat后缀文件,放在对应目录下. @echo on color 2f mode con: cols=80 lines=25 @REM @echo 正在清理SVN文件,请稍候...... @rem ...