3.3、page指令
page
指令主要的作用是用来设置一个
JSP
页面的属性。那么主要的属性包含以下几个:
·
contentType
属性
·
import
属性
3.3.1、contentType属性
设置
MIME
类型的属性,例如,现在一个
JSP
页面中包含了中文:
<h1>
中国啊,奥运会!
</h1>
|
因为在浏览器中默认的编码是西欧风格的编码,所以根本无法正确的显示出中文,所以此页面在运行的时候最好直接指定好其操作编码。
·
<%@page contentType="MIME
类型
"%>
<%@page contentType="text/html;charset=GBK"%>
<h1>
中国啊,奥运会!
</h1>
|
注意:
如果此时
MIME
类型设置错误,则会出现下载框提示:
<%@page contentType="test/html;charset=GBK"%>
<h1>
中国啊,奥运会!
</h1>
|
网页制作的时候说过静态页面的后缀可以是
*.htm
、
*.html
,两者可以通用就是因为两者的
MIME
类型的解析方式完全一样。
Tomcathome/conf/web.xml
<mime-mapping>
<extension>htm</extension>
<mime-type>text/html</mime-type>
</mime-mapping>
<mime-mapping>
<extension>html</extension>
<mime-type>text/html</mime-type>
</mime-mapping>
|
那么也就可以直接利用
MIME
类型将一个页面转成
Word
进行输出,只需要设置好相应的
MIME
类型即可,
WORD
的
MIME
类型为:
<mime-mapping>
<extension>doc</extension>
<mime-type>application/msword</mime-type>
</mime-mapping>
|
例如:
将一个页面保存成
word
<%@ page contentType="application/msword"%>
<table border="1">
<%
for(int i=0;i<10;i++){
%>
<tr>
<%
for(int j=0;j<10;j++){
%>
<td><%=i*j%></td>
<%
}
%>
</tr>
<%
}
%>
</table>
|
页面运行之后出现了以下的提示框:
3.3.3、import属性
在整个
page
中有很多的属性,但是所有的属性只允许出现一次,惟独只有
import
属性可以重复出现多次。
例如:
以下程序导入多个包
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.io.*"%>
<%@ page import="java.net.*"%>
<%@ page import="java.sql.*,java.util.*"%>
|
既然,页面已经可以导入所需要的包,那么就一定可以使用
JDBC
进行数据库操作,观察下面的步骤,在
JSP
中直接连接
Oracle
。
在连接
Oracle
的时候需要把
Oracle
中的监听和数据库服务启动,同时需要将驱动程序包拷贝到
D:\Tomcat 5.5\common\lib
目录下。
PageDemo05.jsp
:
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.sql.*"%>
<%--
查询出
EMP
表中的全部数据
--%>
<%!
public static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ;
public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:MLDN" ;
public static final String DBUSER = "scott" ;
public static final String DBPASS = "tiger" ;
%>
<%
Connection conn = null ;
PreparedStatement pstmt = null ;
ResultSet rs = null ;
%>
<%
try{
%>
<%
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
String sql = "SELECT empno,ename,job,sal,comm,hiredate FROM emp" ;
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 empno = rs.getInt(1) ;
String ename = rs.getString(2) ;
String job = rs.getString(3) ;
float sal = rs.getFloat(4) ;
float comm = rs.getFloat(5) ;
java.util.Date date = rs.getDate(6) ;
%>
<tr>
<td><%=empno%></td>
<td><%=ename%></td>
<td><%=job%></td>
<td><%=sal%></td>
<td><%=comm%></td>
<td><%=date%></td>
</tr>
<%
}
%>
</table>
</center>
<%
}catch(Exception e){
//
向
tomcat
中进行打印
System.out.println(e) ;
}finally{
%>
<%
rs.close() ;
pstmt.close() ;
conn.close() ;
%>
<%
}
%>
|
注意:
对于服务器而言,只要是放进了新的包,则服务器必须重新启动,因为重新启动之后会自动把所有的包都加载进来。
本文转自 李兴华 51CTO博客,原文链接:http://blog.51cto.com/lixinghua/101380,如需转载请自行联系原作者