一.page指令
page指令在JSP开发中较为重要,使用此属性,可以定义一个JSP页面的相关属性,包
括设置MIME类型、定义需要导入的包、错误页的指定等等。
page指令中较为常用的4个属性:
1.contentType
2.pageEncoding
3.errorPage/isErrorPage
4.import(只有包含import属性的page指令可以重复出现多次)
page指令的语法 :
<%@page 属性="内容" %>
二.page指令中的MIME类型设置(contentType)
<%@page language="java" contentType="text/html;charset=GBK"%>
contentType可以设置MIME类型,如果将text/html 误写成test/html 时则会出现一个
下载提示框,下载的是这个页面的JSP文件。
可以进入到 Tomcat目录/conf/web.xml中查询到所有已知的MIME类型并且修改。
eg :添加一个word文档的形式显示 。
<mime-mapping>
<extension>doc</extension>
<mime-type>application/msword</mime-type>
</mime-mapping>
在JSP页面的page指令的contentType="application/msword;charset=GBK" 即可。
三.设置文件编码(pageEncoding)
在page指令中也可以使用pageEncoding进行编码的指定。
<%@ page contentType="text/html;" pageEncoding="GBK" %>
pageEncoding和contentType中的charset的区别 :
注意:pageEncoding指的是JSP文件本身的编码,contentType中的charset指的是服务器发送
给客户端的内容编码。
对于JSP文件本身的编码先由pageEncoding决定的,如果没有则由contentType中的charset决
定。再者都没有,则使用ISO-8859-1的编码方式。
JSP页面照片那个都要经过两次的编码操作:第一阶段使用pageEncoding编码,第二阶段使用 utf-8
编码,第三阶段就是Tomcat生成的网页,此时使用的才是contentType中的charset进行编码。
四.错误页的设置
showError.jsp :
<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<!-- 出错则跳转到error.jsp -->
<%@ page errorPage="error.jsp"%>
<%
int result = 10 / 0 ;
%>
<h2> showError.jsp</h2>
error.jsp :
<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<!-- 此页面可以处理错误 -->
<%@ page isErrorPage="true"%>
<h2> error.jsp</h2>
但是地址还是xxx/xxx/showError.jsp ,所以错误跳转是服务器跳转。
五.Tomcat与数据库的连接
先把mysql的驱动jar包复制到Tomcat/lib目录下 :
然后重启Tomcat即可。
<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.io.*"%>
<%@ page import="java.sql.*"%>
<%!
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
public static final String DBURL = "jdbc:mysql://localhost:3306/ceshi_1" ;
public static final String DBUSER = "root" ;
public static final String DBPASS = "root" ;
%>
<%
Connection conn = null ;
PreparedStatement ps = null ;
ResultSet rs = null ;
%>
<%
try{
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
String sql = "select * from member" ;
ps = conn.prepareStatement(sql) ;
rs = ps.executeQuery() ;
while(rs.next()){
out.print(rs.getString(1)+"\t") ;
out.print(rs.getString(2)+"\t") ;
out.print(rs.getString(3)+"\t") ;
out.print(rs.getString(4)+"\t") ;
out.println(rs.getString(5)) ;
}
}catch(Exception e){
out.println(e) ;
}finally{
conn.close() ;
}
%>