Java Web笔记:JSP中的page指令

来源:互联网 发布:python caffe 教程 编辑:程序博客网 时间:2024/06/05 12:33

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

page指令的常用属性有:



对于以上的指令,只有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>













0 0
原创粉丝点击