1 .Jsp指令的基本语法
<%@指令属性名="值" %>
eg:<%@ pagecontentType="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指令:用于定义jsp页面的各种属性。Page指令最好放置在整个jsp页面的起始位置。
2.
Jsp2.0 定义的规范的page指令的完整语法
session默认值为true。session是服务器端的
buffer是对out的隐式对象的缓冲区的大小,默认为8kb.
isThreadSafe是线程安全,默认为true。
jsp servlet的线程安全已经考虑了!当为false时,实现singleThreadModel接口
errorPage跳转到错误页面
isErrorPage:当前页面是否是错误页面
<%@ page
[ language="java"]
[ extends="package.class"]
[ import="{package.class| package.*}, ..." ]
[ session="true| false" ]
[ buffer="none | 8kb| sizekb" ]
[ autoFlush="true| false" ]
[ isThreadSafe="true| false" ] //线程安全,当isThreadSafe=false时 会实现SingThreadModel
[ info="text"]
[ errorPage="relative_url"] //errorPage属性设置必须使用相对路径
在<web.xml>中有标签<errorpage>
<exception-type>
<location></location>
</ecception-type>
如果在web.xml和jsp出现同种 jsp中的<errorpage></errorpage>标签起作用
即如果设置了某个jsp页面的errorpage属性,那么在web.xml文件中设置的错误处理将不对该页面起作用。
</errorpage>
[ isErrorPage="true| false" ]
[ contentType="mimeType[ ;charset=characterSet ]" | "text/html ;charset=ISO-8859-1" ]
[ pageEncoding="characterSet| ISO-8859-1" ]
[ isELIgnored="true| false" ] //当前页面是否为错误页面。默认的是false
3
以在一条page指令的import属性中引入多个类或包,其中的每个包或类之间使用逗号分隔:
<%@ pageimport="java.util.Date,java.sql.*,java.io.*"%>
上面的语句也可以改写为使用多条page指令的import属性来分别引入各个包或类:
<%@ pageimport="java.util.Date"%>
<%@ pageimport="java.sql.*"%>
<%@ pageimport="java.io.*"%>
JSP引擎会根据page指令的contentType属性生成相应的调用ServletResponse.setContentType方法的语句。
page指令的contentType属性还具有说明JSP源文件的字符编码的作用。
4 使用page指令解决jsp中文乱码
pa通过page指令的contentType属性说明JSP源文件的字符集编码
ge指令的pageEncoding属性说明JSP源文件的字符集编码
5jsp引擎自动倒入下面的包
Java.lang.*
Javax.servlet.*
Javax.servlet.jsp.*
Javax.servlet.http.*
二:include指令
include指令用于引入其它JSP页面,如果使用include指令引入了其它JSP页面,那么JSP引擎将把这两个JSP翻译成一个servlet。所以include指令引入通常也称之为静态引入。
语法:
<%@include file="relativeURL"%>
其中的file属性用于指定被引入文件的路径。路径以“/”开头,表示代表当前web应用。
细节:
被引入的文件必须遵循JSP语法。
被引入的文件可以使用任意的扩展名,即使其扩展名是html,JSP引擎也会按照处理jsp页面的方式处理它里面的内容,为了见明知意,JSP规范建议使用.jspf(JSP fragments)作为静态引入文件的扩展名。
由于使用include指令将会涉及到2个JSP页面,并会把2个JSP翻译成一个servlet,所以这2个JSP页面的指令不能冲突(除了pageEncoding和导包除外)。
Taglib指令用于在JSP页面中导入标签库,讲自定义标签技术时讲。
Request.getRequestDispather是动态包含。
l 三 jsp就打印时对象request
l response
l config
l application
l exception
l Session
l page
l out
l pageContext