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. A. Alyona and Numbers(CF ROUND 358 DIV2)

    A. Alyona and Numbers time limit per test 1 second memory limit per test 256 megabytes input standar ...

  2. 关于闭包与for循环的理解

    function createFunction1(){ for(var i=0;i<5;i++){ function s(){ console.log(i); } s(); } } create ...

  3. C#微型网页查看工具

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  4. HDU 2514 Another Eight Puzzle(DFS)

    题目链接 Problem Description Fill the following 8 circles with digits 1~8,with each number exactly once ...

  5. 判断括号字符串是否为合法+求n对括号的所有组合

    n对括号的有效组合数 参考:https://zh.wikipedia.org/wiki/%E5%8D%A1%E5%A1%94%E5%85%B0%E6%95%B0 import java.util.Ar ...

  6. LeetCode OJ 53. Maximum Subarray

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  7. LeetCode OJ 35. Search Insert Position

    Given a sorted array and a target value, return the index if the target is found. If not, return the ...

  8. Excel教程(11) - 查找和引用函数

    ADDRESS 用途:以文字形式返回对工作簿中某一单元格的引用.    语法: sheADDRESS(row_num,column_num,abs_num,a1,et_text) 参数:Row_num ...

  9. mariaDB安装完成后设置root密码等初始化操作

    修改root密码1.以root身份在终端登陆(必须)2.输入 mysqladmin -u root -p password ex后面的 ex 是要设置的密码3.回车后出现 Enter password ...

  10. 归并排序的go语言与C++实现对比

    最近对go语言发生了兴趣,发现go语言语法简洁,非常适合算法的描述和实现,于是对归并排序进行了实现. 例子中需要排序的队列是长度为100的从100到1的数列,排序算法是正序排序,排序正确的话,结果应当 ...