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 属性=”内容“%>的更多相关文章

  1. page指令import属性实例

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...

  2. JSP基本语法--包含指令<%@include file="路径"%> <jsp:include page>

    包含指令,真正改变的地方只有具体内容处: 方法1: 在每个jsp页面(HTML)都包含工具栏,头部信息,尾部信息,具体内容 方法2: 将工具栏,头部信息,尾部信息都分成各个独立的文件,使用的时候直接导 ...

  3. 【转】asp.net中@page指令的属性Inherits、Src、CodeBehind区别

    Inherits.Src.CodeBehind 在 ASP.NET 中使用代码隐藏方法来设计Web 窗体,可使页代码能够更清晰地从 HTML 内容中分离到完全单独的文件中. 通常一个 @page 指令 ...

  4. Jsp的语法和指令

    Jsp的三种注释 前端语言注释:<!-- --> 会被转译,也会被发送,但是不会被浏览器执行 java语言注释: 会被转译,但是不会被servlet执行 Jsp注释:<%--  -- ...

  5. JAVA jsp page指令的属性 errorPage 和isErrorPage

    >errorPage指定当前页面出现错误的实际响应页面是什么, 其中“/” 表示的是当前WEB应用的根目录 <% page errorPage="/error.jsp" ...

  6. asp.net中@page 指令的属性Inherits、Src、CodeBehind区别

    在 ASP.NET 中使用代码隐藏方法来设计Web 窗体,可使页代码能够更清晰地从 HTML 内容中分离到完全单独的文件中. <%@ Page language="c#" C ...

  7. JSP的学习(3)——语法知识二之page指令

    本篇接上一篇<JSP的学习(2)——语法知识一>,继续来学习JSP的语法.本文主要从JSP指令中的page指令,对其各个属性进行详细的学习: JSP指令: JSP指令是为JSP引擎而设计的 ...

  8. Javaweb学习笔记——(十二)——————JSP指令:page指令、include指令、taglib指令,JavaBean,内省,EL表达式

    JSP指令JSP指令分类 JSP有三大指令: *page指令 *include指令 *taglib指令 在JSP中没有任何指令是必须的. 但基本上每个JSP都是使用page指令============ ...

  9. jsp中page指令用法详解

    转自:https://www.jb51.net/article/73428.htm 一.JSP 指令 JSP 指令(directive)影响由 JSP 页面生成的 servlet 的整体结构.下面的模 ...

随机推荐

  1. hbase自带mapreduce计数表行数功能

    $HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter ‘tablename’ mapreduce来计数,很快的!!!

  2. final使用

    final修饰  基本数据类型时候   对应的 数据不能改变:::final修饰 对象类型 ,那么对应的引用地址不能改变(对象中的值可以改变): 如果final修改方法,那么该方法不能被子类重写 :: ...

  3. C语言 · 数的统计

    问题描述 在一个有限的正整数序列中,有些数会多次重复出现在这个序列中. 如序列:3,1,2,1,5,1,2.其中1就出现3次,2出现2次,3出现1 次,5出现1次. 你的任务是对于给定的正整数序列,从 ...

  4. 自定义按钮~自适应布局~常见bug

    一.元件 自定义按钮可用button或a   display为 inline-block 方便设置格式,通过 padding,height,line-height,font-size设置按钮的大小 & ...

  5. javascript中关于继承的理解

    首先,你要理解在javascript中,每当一个新函数创建时,都会生成一个prototype属性,我们管它叫做原型对象.看一个例子: function foo(){ this.name='qiangq ...

  6. css--多重样式

    1.一个DIV中既有class又有id <!DOCTYPE html> <html> <head> <meta charset="utf-8&quo ...

  7. jQuery技巧大放送【转】

    1.关于页面元素的引用 通过jquery的$()引用元素包括通过id.class.元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用do ...

  8. onkeyup事件

    当用户释放键盘按钮时执行Javascript代码. 上代码: <input type="text" id="frame" onkeyup="my ...

  9. 2014web面试题

    面试题目会根据你的等级和职位变化,入门级到专家级:范围↑.深度↑.方向↑; 类型: 技术视野.项目细节.理论知识型题,算法题,开放性题,案例题. 进行追问,可以确保问到你开始不懂或者面试官开始不懂为止 ...

  10. Vultr免费vps注册和使用简易教程

    如果你是站长,寻找托管网站的主机,或者是开发者,需要搭建服务器环境,选购vps是必须的.强烈不推荐国内的vps产品,没有性价比,维护水平又烂,甚至某些国内所谓云主机vps安装后门,监控你的数据.海外v ...