JAVA基础----page命令

一、page指令:

1.page指令是在JSP开发中较为重要,使用此属性可以定义一个JSP页面的相关属性,包括设置MIME类型、定义需要导入的包、错误页的指定等

2.page指令语法:<%@page属性="内容"%>(举例:<%@ page language="java" contentType="text/html;charset="GBK"%>)

 

二、page指令的两个最主要的属性:

1.contentType:定义JSP字符的编码和页面相应的MIME类型,如果是中文的话则使用如下形式:

         contentType="text/html;charset=GBK"

2.pageEncoding:JSP页面的字符编码,默认值为pageEncoding="iso-8859-1",如果是中文则可以设置为:pageEncoding="GBK"

3.language:用来定义要使用的脚本语言,目前只能是“java”,例:language=“java”

4.import:此jsp页面要导入哪几个包,例:import="java.util.*"

 

三、问题:

1.*.htm文件和*.html文件完全一样,处理的MIME类型是一样的。

在Tomcat安装目录下conf/web.xml文件中

    
        htm
        text/html
    
    
        html
        text/html
    

2.若MIME类型设置错误,可能出现下载提示框

eg.

(1)不小心将"text/html;charset=GBK"误写为"test/html;chatset=GBK"

(2)如果希望页面可以按照Word文档的形式显示,可以使用如下的MIME类型

    
        doc
        application/msword
    

<%@ page language="java" contentType="application/msword;charset=GBK" %>

(3)通过response对象设置下载文件的名称

response对象表示的是服务器对客户端的回应,可以通过设置头文件信息的方式指定下载文件的名称:

<%

        response.setHeader("Content-Disposition","attachment;filename=Joywy.doc");

%>

(3)设置文件编码(contentType和pageEncoding区别)

pageEncoding指的是JSP文件本身的编码,而contentType中的charset指的是服务器发送给客户端的内容编码,在JSP中如果pageEncoding存在,那么JSP的编码将由pageEncoding决定,否则将由contentType中的charset属性决定,如果两者都不存在,则将使用ISO-8859-1的编码方式。在JSP中所有内容都要经过两次编码操作,第一阶段会使用pageEncoding编码,第二阶段会使用utf-8编码,第三阶段就是Tomcat生成的网页,此时使用的才是contentType。

(4)错误页面的设置

要想完成错误页面的操作须满足以下两个条件:

1.指定错误出现时的跳转页,通过errorPage属性指定

2.错误处理页必须有明确的标识,通过isErrorPage属性指定

eg.

show.jsp

<%@ page language="java" contentType="text/html" pageEncoding="GBK"%>
<%@ page errorPage="error.jsp"%>

	
		Welcome
	
	
		<%
			int result = 10/0;
		%>
	


error.jsp

<%@ page language="java" contentType="text/html" pageEncoding="GBK"%>
<%@ page isErrorPage="true"%>

	This is a error page!!!
	
		

程序出错啦!!!

注意:

1.有时候可能出现无法跳转的错误页,原因是Tomcat将error.jsp也认为是出现了错误,从而无法跳转,此时可以在error.jsp中编写一下语句:

<% response.setStatus(200); %>

此语句表示设置了一个200的状态码,表示本页没有错误,可以正常显示。在实际使用中最经常出现的问题:404和500而且程序也可能出现异常:NullPointException,我们可以集中处理这个问题。修改虚拟目录下的WEB_-INF/web.xml文件。添加如下代码:

  
     500
     /error.jsp
  
  
     404
     /error.jsp
  
  
     java.lang.NullPointerException
     /error.jsp
  

2.错误页的跳转属于服务器端跳转,地址栏没有改变


四、数据库连接

注意:mysql数据库连接的时候需要额外的驱动程序,将驱动程序拷贝到Tomcat安装目录中的lib文件夹中。可以通过使用page指令在程序中导入java.sql包,并进行数据库操作。

<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ page import="java.sql.*"%>

www.mldnjava.cn,MLDN高端Java培训

<%!
	public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
	public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ;
	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 empno,ename,job,sal,hiredate FROM emp" ;
	pstmt = conn.prepareStatement(sql) ;
	rs = pstmt.executeQuery() ;
%>
<% while(rs.next()){ int empno = rs.getInt(1) ; String ename = rs.getString(2) ; String job = rs.getString(3) ; float sal = rs.getFloat(4) ; java.util.Date date = rs.getDate(5) ; %> <% } %>
雇员编号 雇员姓名 雇员工作 雇员工资 雇佣日期
<%=empno%> <%=ename%> <%=job%> <%=sal%> <%=date%>
<% }catch(Exception e) { System.out.println(e) ; }finally{ rs.close() ; pstmt.close() ; conn.close() ; // 如果直接关闭连接也可以 } %>

你可能感兴趣的:(J2EE_Learning)