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>