Java Web笔记:JSP中的page指令

page指令是jsp中的一个重要的属性,使用此属性可以定义一个jsp页面的相关属性,其中有MIME类型,定义需要导入的包,错误页面的指定,等等。

page指令的常用属性有:

Java Web笔记:JSP中的page指令_第1张图片


对于以上的指令,只有import指令可以重复出现,其他指令只能出现一次。


设置页面的MIME

contentType属性是使用最多的一个属性,如果要让一个jsp页面显示中文,则必须对整个页面指定MIME编码。
MIME:multipurpose internet mail extensions,多功能Internet邮件扩充服务,是指定某个扩展名的文件以什么程序打开的一个说明。
一般常规的设置指令为:
<%@page language = "java" contentType ="text/html;charset=GBK"%>
注意:如果上边的contentType省略也是可以的,但是在低版本的tomcat中可能会乱码,所以最好还是写上。

使用word进行打开:
<%@page language = "java" contentType ="application/msword;charset=GBK"%>


设置文件编码

除了charset之外, 还可以使用pageEncoding进行编码的指定。
<%@page language = "java" contentType ="text/html;pageEncoding=GBK"%>
其中,pageEncoding设置的是jsp文件本身的编码,而contentType中的charset服务器发送给客户端的内容编码。
如果pageEncoding存在,则jsp的编码由pageEncoding决定;如果不存在,则由contentType中的charset决定,如果都不存在,则使用默认的ISO-8859-1编码方式。


错误页面的设置

要想在页面出错后跳转到指定的页面进行错误信息的显示,则首先要指定错误出现时的跳转页面,通过errorPage属性设定;然后错误处理页面必须有明确的标示,通过isErrorPage属性指定。它们的关系如下所示:


实例:
show页面:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page errorPage="error.jsp"%>
<%
	int result = 100/0; //此处发生错误,跳转到error页面
%>


error页面:
<%@ page language="java" contentType="text/html; charset=GBK"
	pageEncoding="GBK"%>
<%@ page isErrorPage="true"%>
<body>
<h2>404,请求的页面找不到!</h2>
</body>

打开后结果:


以上的跳转属于服务器端的跳转,因为地址栏并没有改变,在整个操作中,客户端对服务器端只发送了一次请求,服务器端对客户端也只回应了一次;如果地址栏发生改变,则相当于用超链接的形式进行跳转,此时为客户端的跳转。

同时可以在整个虚拟目录中指定全局的错误处理,通过修改web.xml文件,在其中加入错误页的操作。

数据库连接操作

在page指令中使用import导入开发所需要的包,将java.sql包导入,即可进行数据库的开发操作。
<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>list</title>
</head>
<body>
	<%!public static final String DBDRIVER = "com.mysql.jdbc.Driver";
	public static final String DBURL = "jdbc:mysql://localhost:3306/test";
	public static final String DBUSER = "root";
	public static final String DBPASS = "zhengzehui";%>
	<%
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
	%>
	<%
		try {
			Class.forName(DBDRIVER);
			conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
			String sql = "SELECT id,name,sex,age FROM student";
			pstmt = conn.prepareStatement(sql);
			rs = pstmt.executeQuery();
	%>
	<center>
		<table border="1" width="80%">
			<tr>
				<td>ID</td>
				<td>姓名</td>
				<td>性别</td>
				<td>年龄</td>
			</tr>
			<%
				while (rs.next()) {
						int id = rs.getInt(1);
						String name = rs.getString(2);
						String sex = rs.getString(3);
						int age = rs.getInt(4);
			%>
			<tr>
				<td><%=id%></td>
				<td><%=name%></td>
				<td><%=sex%></td>
				<td><%=age%></td>
			</tr>
			<%
				}
			%>
		</table>
	</center>
	<%
		} catch (Exception e) {
			System.out.println(e);
		} finally {
			rs.close();
			pstmt.close();
			conn.close(); // 如果直接关闭连接也可以
		}
	%>
</body>
</html>













你可能感兴趣的:(Java Web笔记:JSP中的page指令)