一、JSP注释及scriptlet
1, JSP注释
<!--这种风格的注释客户端可以看见-->
<%
//java中提供的单行注释,客户端无法看见
/*java中提供的多行注释,客户端也无法看见
*/
%>
<%--这种注释方法客户端也无法看见--%>
2, scriptlet:表示脚本小程序,所有嵌入在html中的java程序必须用scriptlet标记,一共三种标记方式
<%%>,在此scriptlet中可以编写局部变量、执行语句
<%!%>,在此scriptlet中可以编写全局变量、类、方法(这里面的变量都是全局变量)
<%=%>,用于输出一个变量或一个具体内容
第一种:定义局部变量并执行语句
第二种:编写全局变量、类、方法
<%! public static final String INFO="HAHA"; public int a=10;//也为全局变量 %> <%! public int add(int x,int y){ return x+y; } %> <%! class Person{ private String name; private int age; public Person(String name,int age){ this.name=name; this.age=age; } public String toString(){ return "姓名:"+this.name+" 年龄:"+this.age; } } %> <% out.println("<h2>INFO="+INFO+"</h2>"); out.println("<h2>INFO="+a+++"</h2>");//每刷新一次,a自加一 out.println("<h2>1+3="+add(1,3)+"</h2>"); out.println("<h2>"+new Person("小明",12)+"</h2>"); %>
第三种,输出一个变量或一个具体的内容
3, out.println()与<%=%>输出选择
. web开发中一般选择<%=%>作为html语言的输出,例如下面输出10行10列
<body> <% int rows=10; int cols=10; %> <table border="1" width="50%"> <% for(int i=1;i<=rows;i++){ %> <tr> <% for(int j=1;j<=cols;j++){ %> <td><%=i*j%></td> <% } %> </tr> <% } %> </tabel> </body>
这种方式比较繁琐且不规范,以后应该都使用标签完成显示功能
二、page指令
1, 作用:定义一个jsp页面的相关属性,包括设置MIME类型,错误页的指定,文件编码,定义需要导入的包,如果导入的是一个sql包,还可以进行数据库的连接
2, 语法:<%@page 属性=“值”%>
MIME
多用途互联网邮件扩展类型,用于告诉浏览器邮件中的多媒体类型,并启用相应插件或应用程序读取文件
被http协议支持后,浏览器就通过附加在文档之前的MIME数据类型信息来识别数据。即在把输出结果传送到浏览器上的时候,浏览器必须启动适当的应用程序来处理这个输出文档。这可以通过多种类型MIME来完成。在HTTP中,MIME类型被定义在Content-Type header中。
说明:对于浏览器自身不能处理的文件类型,浏览器会以文件下载的方式,让适当的应用程序打开文件。以后如果想让一个jsp页以变种的形式显示,则配置相应的MIME
3, 文件编码: Charset用于设置文件编码,pageEncoding也可以设置文件编码。pageEncoding存在时则按pageEncoding编码,否则按照charset编码,都不存在时,按默认ISO8859-1编码
4, 错误页的设定
说明:当页面一出错时,调用errorPage页,前提是errror.jsp的isErrorPage必须设置为true
但有时候跳转之后,浏览器会认为error.jsp也是一个错误的页面,然后就直接不显示了,如下左。
解决方案,在error.jsp中回应浏览器告诉浏览器这是个正确的页面
注意:出错之后地址栏没有没有发生改变,这种地址不发生改变的跳转称为服务器端跳转
错误页集中处理:不单独处理每个jsp文件,想要集中处理404,500等错误,就需要修改web.xml配置文件
三、 包含
1,包含的意义:对于一般页面,都包含右图四个部分,其中
经常改变的部分只有具体内容。所以可以讲工具栏,页面头部,
页面尾部分成独立的四个部分,以后写页面时直接导入进来就
可以。这样方便修改,同时也避免重复造轮子。
包含分为静态包含和动态包含