http://write.blog.csdn.net/postedit
Page指令为容器提供当前页面的使用说明。一个JSP页面可以包含多个page指令。
Page指令的语法格式:
<%@ page attribute="value" %>
页面的MINE
page指令中,如果想让JSP文件显示中文,则必须对整个页面指定MIME编码
在页面前加上:
<%@ page language = "java" contentType = "text/html" pageEncoding = "GBK"%>
<%@ page language = "java" contentType = "text/html;charset = GBK"%>
这两种方式的区别:
pageEncoding指的是JSP文件本身的编码,而contentType中的charset指的是服务器发送给客户端的内容编码
如果pageEncoding存在,那么JSP的编码由pageEncoding中的charset指定,否则由contentType中的charset属性决定;如果都不存在则使用ISO-8859-1的编码方式
错误页的设置
当一个页面出错后,会自动跳转到另一个页面上进行错误信息提示,这个操作通过错误页指定
错误页的操作要满足的条件:
- 指定错误出现时的跳转页,通过errorPage属性指定
- 错误处理页必须有明确的标识,通过isErrorPage属性指定
<%@ page language="java" contentType = "text/html" pageEncoding = "GBK"%>
<%@ page errorPage = "error.jsp"%>
<%
int result = 10/0;
%>
<h1>除数为0</h1>
<%@ page language = "java" contentType = "text/html" pageEncoding = "GBK"%>
<%@ page isErrorPage = "true"%>
<h1>除数不能为0</h1>
数据库连接操作
连接数据库需要额外的驱动程序,这里用mysql,则将其驱动拷贝到tomcat安装目录中的lib文件夹中,服务器重启
给自己弄一个网页版的通讯录:
contacts.sql:
/*=============删除数据库=============*/
DROP DATABASE IF EXISTS contact;
/*=============创建数据库=============*/
CREATE DATABASE contact;
/*=============使用数据库=============*/
USE contact;
/*=============删除数据库表===========*/
DROP TABLE IF EXISTS tel;
/*=============创建数据库表===========*/
CREATE TABLE tel(
num INT(4) AUTO_INCREMENT,
name VARCHAR(10),
relate VARCHAR(8), //关系
phone VARCHAR(20), //电话
mobile VARCHAR(20), //手机
birthday DATE, //生日
PRIMARY KEY(num)
);
/*============插入数据===============*/
INSERT INTO tel(name, relate, phone, mobile, birthday)VALUES('xx', 'xx', '0000','00000000','0000-00-00'); //...................
contact.jsp
<%@ page contentType = "text/html" pageEncoding = "GBK"%>
<%@ page import = "java.sql.*"%>
<html>
<head>
<title>www.thystar.com</title>
</head>
<body>
<%!
//定义数据库驱动程序
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver";
public static final String DBURL = "jdbc:mysql://localhost:3306/contact";
public static final String DBUSER = "root";
public static final String DBPASS = "mysqladmin";
%>
<%
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
%>
<%
try{
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS); //取得数据库连接
String sql = "SELECT num,name,relate,phone,mobile,birthday FROM tel";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
%>
<center>
<table border = "1" width = "80%">
<tr>
<td>编号</td>
<td>姓名</td>
<td>关系</td>
<td>电话</td>
<td>手机</td>
<td>生日</td>
</tr>
<%
while(rs.next()){
int num = rs.getInt(1);
String name = rs.getString(2);
String relate = rs.getString(3);
String phone = rs.getString(4);
String mobile = rs.getString(5);
java.util.Date birthday = rs.getDate(6);
%>
<tr>
<td><%=num%></td>
<td><%=name%></td>
<td><%=relate%></td>
<td><%=phone%></td>
<td><%=mobile%></td>
<td><%=birthday%></td>
</tr>
<%
}
%>
</table>
</center>
<%
}catch(Exception e){
System.out.println(e);
}finally{
rs.close();
pstmt.close();
conn.close();
}
%>
</body>
</html>
《Java Web开发实战经典--基础篇》