JSP基本语法--Page指令 <%@page 属性=”内容“%>
page指令语法:<%@page 属性=”内容“%>
常用:contentType,import,pageEncoding
例子,设置MIME属性,如果使用一些高版本的tomcat,可能自动设置编码,但是为了保证程序不出问题,一定要设置MIME类型:
<%@ page language="java" contentType="text/html;charset=GBK"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
<body>
<center>
<h2>欢迎大家光临 MLDN !</h2>
<h3>网址:www.MLDNJAVA.cn</h3>
</center>
</body>
</html>
为什么htm和html都可以识别,是因为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>
- 如果想让jsp变种格式显示, 就更改MIME就可以,比如word:
<%@ page language="java" contentType="application/msword;charset=GBK"%>
- 如果想改名字的话,这样的话,打开jsp文件就会显示下载mldn.doc:
<%
response.setHeader("Content-Disposition","attachement;filename=mldn.doc") ;
%>
- contentType主要功能就是设置MIME,之后的charset是指定编码,也可以通过pageEncoding来指定编码,比较常见:
<%@ page language="java" contentType="text/html" pageEncoding="GBK"%>
两种方式的区别:如果pageEncoding存在的话,就以它为主,如果不存在,再找charset,如果都不存在,就默认ISO8859-1.
如果一个jsp文件只是需要按照text/html风格显示的话,则只需要指定一个pageEncoding就可以了。
- 错误页的设置
一些网站,如果出现错误,会统一跳转到一个页面上显示,而且会提示,对不起,请联系管理员,这就是错误页的功能。
完成错误页的操作,需要满足2个条件:
1. 指定错误出现的跳转页,通过errorPage属性指定
2. 错误处理也必须有明确的标识,通过isErrorPage属性指定
<%@ page language="java" contentType="text/html" pageEncoding="GBK"%>
<%@ page errorPage="error.jsp"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
<body>
<%
int result = 10 / 0 ;
%>
</body>
</html>
error.jsp:
语句response.setStatus(200) ;是为了声明此文件是正常的可以处理错误的页面,避免有些时候无法跳转的情况
<%@ page language="java" contentType="text/html" pageEncoding="GBK"%>
<%@ page isErrorPage="true"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
<body>
<%
response.setStatus(200) ;
%>
<h1>程序出现了错误</h1>
</body>
</html>
以上发现,地址栏地址没有发生改变,但是内容改变了,此种方式成为服务器端跳转。
但是,这样编写太麻烦,最经常出现的问题:404,500,而且程序也可以出现异常,此时可以集中处理这些问题,这样就需要修改web.xml文件了。D:\Workspace\WEB-INF\web.xml, 在 </web-app> 之前加入:
<error-page>
<error-code>500</error-code>
<location>/basic_page/error.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/basic_page/error.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.NullPointerException</exception-type>
<location>/basic_page/error.jsp</location>
</error-page>
重启服务器后,输入http://localhost:8080/wly/basic_page/ss验证,即可弹出error.jsp错误页面
- page指令存在import属性,所以导包就可以正确使用,在整个page指令的属性中,只有import可以多次使用,其他的属性只能设置一次
数据库的连接操作:
/*======================= 删除数据库 =======================*/
DROP DATABASE IF EXISTS mldn ;
/*======================= 创建数据库 =======================*/
CREATE DATABASE mldn ;
/*======================= 使用数据库 =======================*/
USE mldn ;
/*======================= 删除数据表 =======================*/
DROP TABLE IF EXISTS emp ;
/*======================= 创建数据表 =======================*/
CREATE TABLE emp(
empno INT(4) PRIMARY KEY,
ename VARCHAR(10),
job VARCHAR(9),
hiredate DATE,
sal FLOAT(7,2)
) ;
/*======================= 插入测试数据 =======================*/
INSERT INTO emp (empno,ename,job,hiredate,sal) VALUES (6060,'李兴华','经理','2001-09-16',2000.30) ;
INSERT INTO emp (empno,ename,job,hiredate,sal) VALUES (7369,'董鸣楠','销售','2003-10-09',1500.90) ;
INSERT INTO emp (empno,ename,job,hiredate,sal) VALUES (8964,'李祺','分析员','2003-10-01',3000) ;
INSERT INTO emp (empno,ename,job,hiredate,sal) VALUES (7698,'张惠','销售','2005-03-12',800) ;
INSERT INTO emp (empno,ename,job,hiredate,sal) VALUES (7782,'杨军','分析员','2005-01-12',2500) ;
INSERT INTO emp (empno,ename,job,hiredate,sal) VALUES (7762,'刘明','销售','2005-03-09',1000) ;
INSERT INTO emp (empno,ename,job,hiredate,sal) VALUES (7839,'王月','经理','2006-09-01',2500) ;
需要注意的是,mysql数据库连接的时候需要额外的驱动程序mysql-connector-java-5.1.36-bin.jar
放入:D:\apache-tomcat-7.0.57\lib ,然后重启服务器
lit.jsp:
<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ page import="java.sql.*"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
<body>
<%!
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 = "********" ;
%>
<%
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() ;
%>
<center>
<table border="1" width="80%">
<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) ;
float sal = rs.getFloat(4) ;
java.util.Date date = rs.getDate(5) ;
%>
<tr>
<td><%=empno%></td>
<td><%=ename%></td>
<td><%=job%></td>
<td><%=sal%></td>
<td><%=date%></td>
</tr>
<%
}
%>
</table>
</center>
<%
}catch(Exception e) {
System.out.println(e) ;
}finally{
rs.close() ;
pstmt.close() ;
conn.close() ; // 如果直接关闭连接也可以
}
%>
</body>
</html>
JSP基本语法--Page指令 <%@page 属性=”内容“%>的更多相关文章
- page指令import属性实例
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...
- JSP基本语法--包含指令<%@include file="路径"%> <jsp:include page>
包含指令,真正改变的地方只有具体内容处: 方法1: 在每个jsp页面(HTML)都包含工具栏,头部信息,尾部信息,具体内容 方法2: 将工具栏,头部信息,尾部信息都分成各个独立的文件,使用的时候直接导 ...
- 【转】asp.net中@page指令的属性Inherits、Src、CodeBehind区别
Inherits.Src.CodeBehind 在 ASP.NET 中使用代码隐藏方法来设计Web 窗体,可使页代码能够更清晰地从 HTML 内容中分离到完全单独的文件中. 通常一个 @page 指令 ...
- Jsp的语法和指令
Jsp的三种注释 前端语言注释:<!-- --> 会被转译,也会被发送,但是不会被浏览器执行 java语言注释: 会被转译,但是不会被servlet执行 Jsp注释:<%-- -- ...
- JAVA jsp page指令的属性 errorPage 和isErrorPage
>errorPage指定当前页面出现错误的实际响应页面是什么, 其中“/” 表示的是当前WEB应用的根目录 <% page errorPage="/error.jsp" ...
- asp.net中@page 指令的属性Inherits、Src、CodeBehind区别
在 ASP.NET 中使用代码隐藏方法来设计Web 窗体,可使页代码能够更清晰地从 HTML 内容中分离到完全单独的文件中. <%@ Page language="c#" C ...
- JSP的学习(3)——语法知识二之page指令
本篇接上一篇<JSP的学习(2)——语法知识一>,继续来学习JSP的语法.本文主要从JSP指令中的page指令,对其各个属性进行详细的学习: JSP指令: JSP指令是为JSP引擎而设计的 ...
- Javaweb学习笔记——(十二)——————JSP指令:page指令、include指令、taglib指令,JavaBean,内省,EL表达式
JSP指令JSP指令分类 JSP有三大指令: *page指令 *include指令 *taglib指令 在JSP中没有任何指令是必须的. 但基本上每个JSP都是使用page指令============ ...
- jsp中page指令用法详解
转自:https://www.jb51.net/article/73428.htm 一.JSP 指令 JSP 指令(directive)影响由 JSP 页面生成的 servlet 的整体结构.下面的模 ...
随机推荐
- 成都IT公司面经及公司评价
从2015年年底到2016年初找了几个月工作,面了大大小小若干公司,有很不错的公司,也有很多坑公司,与君共勉. 1.科大讯飞 地址:成都分公司位于天府软件园E区,占一层楼.面积挺大.公司装修风格很舒服 ...
- Paxos算法简单介绍
一种基于消息传递且具有高度容错特性的一致性算法.解决在存在宕机或者网络异常的集群中对某个数据的值达成一致性,并且保证无论在发生以上任何异常都不会破坏整个系统的一致性,具有容错性. Paxos算法实现的 ...
- js-知识点
1.递归,数组选出最大值 var arr = [9,8,55,66,49,68,109,55,33,6,2,1]; var max = arr[0]; function findMax( i ){ i ...
- js--事件对象的理解1
在触发DOM上的某个事件时,会产生一个事件对象event.这个对象中包含着所有与事件有关的信息.包括导致事件的元素,事件的类型以及其他与特定事件相关的信息. 举例鼠标操作导致的事件对象中,会包含鼠标位 ...
- php 类型
var_dump 打印出类型和值 整型inter用 decimal 表示为 decimal : [1-9][0-9]* | 0 (int) ( (0.1+0.7) * 10 ); 强制类 ...
- 针对IE的CSS样式hack
针对IE的CSS样式hack,如下: 例子:background:#000: 1.只针对IE6的hack方式(_):_background:#000: 2.只针对IE7的hack方式(+):+back ...
- Python 处理文件
1.从现有文件中获取信息 使用Python中的模块,可以从现有文件中获取信息.使用“os”模块和“stat”模块可以获取文件的基本信息: import os import stat import ti ...
- List container
//List容器 //List本质是一个双向链表 //构造函数 list<int>c0; //空链表 list<int>c1(3); //建一个含三个默认值是0的元素链表 li ...
- 朱丽叶—Cuda+OSG
#include <cuda_runtime.h> #include <osg/Image> ; typedef struct cuComplex { float r; flo ...
- JAVA中计算两个时间相差多少 天,时,分,秒
1: import java.util.Date; 2: 3: public class ShowTimeInterval{ 4: public void ShowTimeInterval(Date ...