三个代码实例教你辨别1.jsp变量声明与不声明的区别。2.jsp代码修改与不修改对比下刷新页面花费的时间3.异常处理

1.jsp变量声明与不声明的区别。

<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<%@page errorPage="error.jsp"%><%--指定一个jsp页面,所有未被捕获的异常都将跳转到该页面--%>
<html>
  <head>
    <title>声明</title>
  </head>
  <body>
  <%--
  定义时不加"!"相当于在service方法内进行定义,每次刷新即代表调用service方法,都会重新赋值,输出时a值不变
  --%>
  <%
  int a =10;
  a++;
%>
  <%=a%>
<%--
添加"!"为声明变量,相当于将int a=0;设为全局变量,在service方法的外面进行定义,每次刷新页面调用service方法时都会运行a++;,输出时a值加一。
--%>
<%! int a=10;
%>
<% a++;
%>
<%=a%>
--%>
</body>
</html>

对输出结果进行刷新,每次刷新后前面的值都会加一,而后面的值则不变。
2.jsp代码修改与不修改对比下刷新页面花费的时间
jsp在页面的代码不发生变化的情况下,每次刷新花费的时间基本不变,而当修改代码后刷新所花费的时间就不一样了。

<%@ page import="javax.xml.crypto.Data" %>
<%@ page import="java.util.Date" %>
<%--修改后与修改前的时间对比--%>
  <%int b=10;%>
  <%--以毫秒为单位
  <%long start=System.currentTimeMillis(); //获取开始时间%>
  --%>
  <%--以纳秒为单位--%>
  <%long start=System.nanoTime();%>
  <%for (int i = 0; i <100000 ; i++) {
    b++;
  }
  %>
  <%long end=System.nanoTime();%>
  <%--//获取结束时间
  <%long end=System.currentTimeMillis();
  %>
  --%>
  <%=b%>
  <%=end-start%>
  </body>
</html>

以毫秒为单位时,程序运行花费的时间检测太过粗糙,所以选择使用纳秒。
从运行的结果可以看出,多次刷新后代码的运行时间基本为零,由此可以看出jsp对程序运行的效率进行了把控。
3.异常处理:
在jsp中可以使用EorrorPage来对页面中没有捕获的异常进行处理

<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<%@page errorPage="error.jsp"%><%--指定一个jsp页面,所有未被捕获的异常都将跳转到该页面--%>
<html>
  <head>
    <title>异常</title>
  </head>
  <body>
    <%int b=10;%>
       <%=b/0%>
</body>
</html>

error.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<%@ page isErrorPage="true" %>
<html>
<head>
    <title>error</title>
</head>
<body>
<%--有时会出出现无法跳转问题。跳转后认为error.jsp也是个出错页面。在error.jsp中申明是正常页面,依靠response设置状态码。--%>
<%
    response.setStatus(200);
%>
<h1>不要用0做除数</h1>
</body>
</html>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值