1、主要指令有:
contentType:定义jsp字符的编码和页面响应的MIME类型,如果是中文的话则使用如下:
contentType="text/html;charset=gbk";
errorPage:定义此页面出错时要跳转的显示页,例如:errorPage="error.jsp"
extends: 主要定义此jsp页面产生的serlet是从哪个父类扩展而来,例:extends=“父类名称
”
import: 此jsp页面要导入哪几个操作包,例如:import="java.util.*";
isErrorPage:可以设置true或者false,表示此页面是否为出错的处理也,如果设置成true,
则errorPage指定的页面出错时才能跳转到此页面进行错误处理;如果设置成
false,则
无法处理;
pageEncoding:jsp页面的字符编码---pageEncoding="utf-8";
2、设置MIME:
<%@ page language="java" import="java.util.*" contentType="text/html"
pageEncoding="utf-8"%>
在jsp中,如果pageEncoding存在,那么jsp的编码将由pageEncoding决定,而如果不存在
才又charset来决定,如果都不存在,则使用ISO8859-1;
如果一个jsp文件只是需要按照text/html风格显示的话,只需要指定一个pageEncoding
即可;
3、错误页的设置:
·指定错误出现时的跳转页,errorPage="error.jsp"
·错误处理页必须有明确的标识,通过isErrorPage属性指定,isErrorPage="true";
在实际应用中,常见的错误有404、500和NullPointerException等,要想集中处理这些错误,
我们得修改web.xml文件;
<error-page>
<error-code>500</error-code>
<location>error.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>error.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.NullPointerException</exception-
type>
<location>error.jsp</location>
</error-page>
4、数据库的连接:
既然page指令中存在了import属性,所以导包就可以正确的使用了 ,但是需要说明的是,在整
个page指令
的属性中,只有import可以多次使用,其他的属性只能设置一次;
既然可以出现,就是用JDBC完成以下操作;
·在mysql数据库中创建表;
mysql -uroot -p123
use lid;
drop table emp;
create table emp(
empno Int auto_increment primary key,
ename varchar(10) ,
job varchar(10) ,
hiredate Date,
sal float(7,2)
);
insert into emp(empno,ename,job,hiredate,sal) values(1024,'lid','销售','1986-06-
06',12.20);
insert into emp(empno,ename,job,hiredate,sal) values(1034,'yuj','老板','1988-06-
06',13.20);
insert into emp(empno,ename,job,hiredate,sal) values(1044,'ly','销售','1989-06-
06',14.20);
希望可以通过jsp进行列表的输出。
但是需要特别注意的是,mysql数据库连接的时候需要额外的驱动;
将驱动程序拷贝到tomcat安装目录的lib中去,服务器必须重新启动;
<%@ page contentType="text/html" pageEncoding="gbk"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>这是标题</title>
</head>
<body>
<%!
public static final String
DBDRIVER="org.gjt.mm.mysql.Driver";
public static final String
DBURL="jdbc:mysql://localhost:3306/lid";
public static final String DBUSER="root";
public static final String DBPASSWORD="123";
%>
<%
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
try{
Class.forName(DBDRIVER);
conn=DriverManager.getConnection
(DBURL,DBUSER,DBPASSWORD);
String sql="select
empno,ename,job,hiredate,sal from emp";
pstmt=conn.prepareStatement(sql);
rs=pstmt.executeQuery();
%>
<center>
<table border="1" width="90%" >
<tr>
<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);
java.util.Date
date=rs.getDate(4);
float sal=rs.getFloat(5);
%>
<tr>
<td><%=empno%></td>
<td><%=ename%></td>
<td><%=job%></td>
<td><%=date%></td>
<td><%=sal%></td>
</tr>
<%
}
%>
</table>
</center>
<%
}catch(Exception e){
System.out.println(e);
}
finally{
rs.close();
pstmt.close();
conn.close();
}
%>
</body>
</html>