• 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:WorkspaceWEB-INFweb.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.57lib ,然后重启服务器

    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>
  • 相关阅读:
    jqGrid获取选中行id集合
    jqGrid通过行id获取行对象
    【链接】Eclipse中快速打开文件所在的文件夹位置
    springboot下html的js中使用shiro标签功能
    从一次渗透谈到linux如何反弹shell
    安全建设的几个阶段
    BluePrint和ORM
    flask框架实战项目架构
    配置Python实战开发环境
    python 进行抓包嗅探
  • 原文地址:https://www.cnblogs.com/wujixing/p/4942919.html
Copyright © 2020-2023  润新知