天天看点

JSP中的page指令

       page指令主要的作用是用来设置一个JSP页面的属性。那么主要的属性包含以下几个:

              · contentType属性

              · import属性

       设置MIME类型的属性,例如,现在一个JSP页面中包含了中文:

<h1>中国啊,奥运会!</h1>

       因为在浏览器中默认的编码是西欧风格的编码,所以根本无法正确的显示出中文,所以此页面在运行的时候最好直接指定好其操作编码。

       ·<%@page contentType="MIME类型"%>

<%@page contentType="text/html;charset=GBK"%>

<b>注意:</b>

       如果此时MIME类型设置错误,则会出现下载框提示:

&lt;%@page contentType="<b>test/html;charset=GBK</b>"%&gt;

网页制作的时候说过静态页面的后缀可以是*.htm、*.html,两者可以通用就是因为两者的MIME类型的解析方式完全一样。Tomcathome/conf/web.xml

    &lt;mime-mapping&gt;

        &lt;extension&gt;htm&lt;/extension&gt;

        &lt;mime-type&gt;<b>text/html</b>&lt;/mime-type&gt;

    &lt;/mime-mapping&gt;

        &lt;extension&gt;html&lt;/extension&gt;

       那么也就可以直接利用MIME类型将一个页面转成Word进行输出,只需要设置好相应的MIME类型即可,WORD的MIME类型为:

        &lt;extension&gt;doc&lt;/extension&gt;

        &lt;mime-type&gt;application/msword&lt;/mime-type&gt;

<b>例如:</b>将一个页面保存成word

&lt;%@ page contentType="application/msword"%&gt;

&lt;table border="1"&gt;

&lt;%

         for(int i=0;i&lt;10;i++){

%&gt;

                   &lt;tr&gt;

                   for(int j=0;j&lt;10;j++){

                            &lt;td&gt;&lt;%=i*j%&gt;&lt;/td&gt;

                   }

                   &lt;/tr&gt;

         }

&lt;/table&gt;

页面运行之后出现了以下的提示框:

       在整个page中有很多的属性,但是所有的属性只允许出现一次,惟独只有import属性可以重复出现多次。

<b>例如:</b>以下程序导入多个包

&lt;%@ page contentType="text/html;charset=GBK"%&gt;

&lt;%@ page import="java.io.*"%&gt;

&lt;%@ page import="java.net.*"%&gt;

&lt;%@ page import="java.sql.*,java.util.*"%&gt;

       既然,页面已经可以导入所需要的包,那么就一定可以使用JDBC进行数据库操作,观察下面的步骤,在JSP中直接连接Oracle。

       在连接Oracle的时候需要把Oracle中的监听和数据库服务启动,同时需要将驱动程序包拷贝到D:\Tomcat 5.5\common\lib目录下。

<b>PageDemo05.jsp</b><b>:</b><b></b>

&lt;%@ page import="java.sql.*"%&gt;

&lt;%--

         查询出EMP表中的全部数据

--%&gt;

&lt;%!

         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() ;

&lt;center&gt;

         &lt;table border="1" width="80%"&gt;

                            &lt;td&gt;雇员编号&lt;/td&gt;

                            &lt;td&gt;雇员姓名&lt;/td&gt;

                            &lt;td&gt;雇员工作&lt;/td&gt;

                            &lt;td&gt;雇员工资&lt;/td&gt;

                            &lt;td&gt;雇员佣金&lt;/td&gt;

                            &lt;td&gt;雇佣日期&lt;/td&gt;

         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) ;

                            &lt;td&gt;&lt;%=empno%&gt;&lt;/td&gt;

                            &lt;td&gt;&lt;%=ename%&gt;&lt;/td&gt;

                            &lt;td&gt;&lt;%=job%&gt;&lt;/td&gt;

                            &lt;td&gt;&lt;%=sal%&gt;&lt;/td&gt;

                            &lt;td&gt;&lt;%=comm%&gt;&lt;/td&gt;

                            &lt;td&gt;&lt;%=date%&gt;&lt;/td&gt;

         &lt;/table&gt;

&lt;/center&gt;

}catch(Exception e){

         // 向tomcat中进行打印

         System.out.println(e) ;

}finally{

         rs.close() ;

         pstmt.close() ;

         conn.close() ;

}

<b>注意:</b><b></b>

       对于服务器而言,只要是放进了新的包,则服务器必须重新启动,因为重新启动之后会自动把所有的包都加载进来。

本文转自 李兴华 51CTO博客,原文链接:http://blog.51cto.com/lixinghua/101380,如需转载请自行联系原作者