• jsp jsp常用指令


    jsp指令是为jsp引擎设计的,他们并不直接产生任何可见输出,而只是告诉引擎如何处理jsp页面中的其余部分。

    jsp中的指令

    page指令

    include指令

    taglib指令

    jsp指令的基本语法 格式:<%@ 指令 属性名="值" %>
    <%@page contextType="text/html;charset=gb2312" %> 如果指令中有多个属性,这多个属性可以写在一个指令中,也可以分开
    <%@page contentType="text/html; charset=gb2312"%>
    <%@page import="java.util.Date"%>
    也可以这样写
    <%@page contentType="text/html;charset=gb2312" import="java.util.Date"%>
    

    page指令

      page指令用于定义jsp页面中的各种属性,无论page指令出现在jsp页面中什么地方,它作用的都是整个jsp页面,最好还是放在jsp的起始位置
     
      page指令的属性
      
     <%@ page 
         [ language="java" ] 
         [ extends="package.class" ] 
         [ import="{package.class | package.*}, ..." ] 
         [ session="true | false" ] 
         [ buffer="none | 8kb | sizekb" ] 
         [ autoFlush="true | false" ] 
         [ isThreadSafe="true | false" ] 
         [ info="text" ] 
         [ errorPage="relative_url" ] 
         [ isErrorPage="true | false" ] 
         [ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-8859-1" ] 
         [ pageEncoding="characterSet | ISO-8859-1" ] 
                 [ isELIgnored="true | false" ] 
     %>
    

    import属性

       jsp页面中会自动的导入下面的包 java.lang.*;javax.servlet.*;javax.servlet.jsp.*; javax.servlet.http.*;
      可以在一条page指令中引入多个类或包,其中的每个包或类之间使用逗号(,)分割
      <%@ page import="java.util.*,java.io.*"%>
      也可以使用多条page指令的import属性来分别进入各个包或类
      <%@ page import="java.io.*" %>
      <%@ page import="java.sql.*"%>
    

    errorPage属性

     errorpage属性的设置值,必须使用相对路径,如果以"/"开头,表示相对于当前的web应用程序的根目录(注意不是站点目录)
    否则表示相对于当前页面。
     error-page 元素有3个子元素<error-code> <exception-type> <location> 
     error-code 子元素指定错误的状态码,例如<error-code> 404</error-code>
     exception-type 子元素指定异常类的完全限定名<exception-type>java.lang.ArithmeticException</exception-type>
     location 子元素指定以"/"开头的错误处理页面的路径<location>/ErrorPage/404.jsp</errorPage>
    
    <%@page language="java" import="java.util.*" pageEncoding="utf-8" errorPage="/error/404.jsp"%>
    <html>
      <head>
        <title>错误信息友好提示!</title>
      </head>
      <body>
        对不起,出错了,请联系管理员解决!
      </body>
    </html>
    
    在web.xml使用<error-page>标签为整个web应用设置错误处理页面
     <web-app version="3.0" 
      xmlns="http://java.sun.com/xml/ns/javaee" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
     <display-name></display-name>    
       <welcome-file-list>
         <welcome-file>index.jsp</welcome-file>
       </welcome-file-list>
       <!--针对404错误处理页面-->
       <error-page>
          <error-code>404</error-code>
          <location>/error/404.jsp</location>
       </error-page>
    </web-app>
    

    isErrorPage属性

      该属性显示的声明页面是错误页面
      如果某一个jsp页面作为系统错误处理页面,那么建议将page指令的isErrorPage属性(默认为false)设置为ture,来显示的声明这个jsp页面是一个错误处理页面
    如果没有设置isErrorPage=true。那么jsp页面中就无法使用exception对象,因为在Servlet的_jspServlet方法中不会声明一个exception对象
    <%@ page language="java" import="java.util.*" pageEncoding="utf-8" isErrorPage="true"%>
    <html>
      <body>
        对不起出错了!
        异常信息如下:<%= exception.getMessage()%>
        <!--语句exception.getMessage()后面没有";"-->
      </body>
    </html>
    ​
    

    include指令

     include指令有两种形式:
        @include指令
        <jsp:include>指令
    @inclide指令
      @include可以包含任意文件,当然,只是把文件的内容包含进来。include指令用于引入其他jsp页面,如果include指令引入了其他的jsp页面,那么jsp引擎将把这两个JSP翻译成一个servlet.所以include指令引入通常也被称之为静态引入
     
      include指令语法
       <%@ include file="relativeURL"%> 其中file属性用于指定被引入文件的路径。路径"/"开头,表示代表当前web应用。
      include 指令细节注意问题:
       被引入的文件必须遵循jsp语法
       被引入的文件可以使用任意扩展名。即使其扩展名是html,jsp引擎也会按照处理jsp页面的方式处理它里面的内容,为了见明知意,jsp规范建议使用jspf
       由于使用include指令将会涉及2个jsp页面,并会把2个jsp翻译成一个servlet,所以这2个jsp页面的指令不能冲突。
    
     include指令使用范例
     
    head.jspf
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     <h1 style="color:red;">网页头部</h1>
    ​
     foot.jspf
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     <h1 style="color:blue;">网页尾部</h1>
    ​
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     <html>
       <head>
         <title>jsp的Include指令测试</title>
       </head>   
       <body>
       <%--使用include标签引入引入其它JSP页面--%>
         <%@include file="/jspfragments/head.jspf" %>
         <h1>网页主体内容</h1>
         <%@include file="/jspfragments/foot.jspf" %>
       </body>
     </html>
    

    @include指令

     使用@include可以包含任意的内容,文件的后缀是什么都无所谓。这种把别的文件包含到自身页面的@include语句就叫做静态包含,作用只是把别的页面内容包含进来,属于静态包含。
    

    jsp:include

    jsp:include 指令为动态包含,如果被包含的页面是jsp,则先处理之后再将结果包含,而如果包含的是非*.jsp文件,则只是把文件内容静态包含进来。
    

    jsp:taglib 指令

     使用<%@ taglib uri="标签库的uri" prefix="标签的使用前缀"%>指令引入要使用的标签库。
    
  • 相关阅读:
    命令模式
    责任链模式
    代理模式
    享元模式
    195 Tenth Line
    test命令
    read命令
    echo命令
    java反射
    http状态码
  • 原文地址:https://www.cnblogs.com/ssgao/p/8866427.html
Copyright © 2020-2023  润新知