JSP编译指令有三个:
• page: 该指令是针对当前页面的指令。
<%@page
[language="Java"]
[extends="package.class"]
[|mport= "package. class , package. *},…"]
[sess|on="true | false"]
[buffer="none| 8kb | s|ze kb" 1
[autoFlush="true|false"]
[|sThread8afe="true | false"]
[|nfo="text"]
[errorPage="relat|veURL"]
[contentType="m|neType ;charset=character8et]" | "text/html;char8et= |SO8859-1"]
[|sErrorPage=" true | false"]
%>
• |nclude: 用于指定如何包含另一个页面。
〈%@|nclude f|le="relat|veURLSpec" %〉
• tabl|b: 用于定义和访问自定义标签。
--------------------------------------------------------------------------------------
JSP 的7 个动作指令:
• jsp:forward: 执行页面转向,将请求的处理转发到下一个页面。
<jsp: forward page=" {relat|veURL | <%=express|on%>}"/>
• jsp:param: 用于传递参数,必须与其他支持参数曲标签一起使用。
pararn 指令可以与以下三个指令结合使用:
• jsp:include
• jsp:forward
• jsp:plugin
• jsp:|nclude: 用于动态引入一个JSP 页面。
<jsp: |nclude page=" {relat|veURL | <%=express|on%>}" flush= "true" |>
• jsp:p1ug|n: 用于下载JavaBean 或Applet 到客户端执行。
<jsp:plugin type="bean|applet"
code="classFileName"
codebase="classFileDiretoryName"
[name=" instanceName"]
[archive="URLtoArchive"]
[align= "bottom|top|middle|left|right"]
[heigh="displayPixels"]
[width="displayPixels"]
[hspace="leftRightPixels"]
[vspace="topBottomPiexels"]
[jreversion=叮REVersionNumber11.2"]
[nspluginurl="URLToPlugin"]
[iepluginurl="URLToPlugin"]>
[<jsp:parames>
[jsp:param name="parameterName" value="parameterValue"I>]
</jsp:params>]
[<jsp:fallback>text message for user that can no see the plugin
</jsp:fallback> ]
</jsp:plugin>
• jsp:useBean: 使用JavaBean 。
<jsp:useBean |d="name" class="classname" scope="page | request | sess|on |
appl|cat|on" />
• page: 该JavaBean 实例仅在该页面有效。
• request: 该JavaBean 实例在本次请求有效。
• session: 该JavaBean 实例在本次session 内有效。
• application: 该JavaBean 实例在本应用内一直有效。
• jsp:setProperty: 修改JavaBean 实例的属性值。
<jsp:setProperty name="BeanName" proterty="propertyName" value="value"/>
• jsp:getProperty: 获取JavaBean 实例的属性值。
<jsp:getProperty name="BeanName" proterty="propertyName" />
--------------------------------------------------------------------------------------
JSP 的9 个内置对象
1,out:
out对象是JspWriter类的实例,是向客户端输出内容常用的对象;
JSP的输出流,,等同于表达式;
Java代码
out.println("test");
2,request:
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应.它是HttpServletRequest类的实例.
获取表单提交参数,在请求完成后,作用域结束,变量失效;
Java代码
String userName = request.getParameter("userName");
获取表单多个参数,返回数组, 比如checkbox多选的参数;
Java代码
String[] chooseOs=request.getParameterValues("os");
设置请求的编码;
Java代码
request.setCharacterEncoding("UTF-8");
设置和访问共享属性;
Java代码
request.setAttribute("error", "用户名不能为空.");//设置request属性
request.getAttribute("error");//得到request属性
request.removeAttribute("error");//移除request属性
得到访问用户的ip地址:
Java代码
request.getRemoteAddr();
得到当前目录或者jsp文件等的绝对路径(返回页面部署的路径,参数同样可以查找文件的路径);
Java代码
request.getRealPath("");//当前目录
request.getRealPath("a.jsp");//jsp文件
3,response:
response对象包含了响应客户请求的有关信息.它是HttpServletResponse类的实例。
服务器传给浏览器的文本信息;
增加header属性,比如通知浏览器不要缓存这个响应(运行后可通过TCPTrace观察响应头部的变化);
Java代码
response.addHeader("pragma", "no-cache");
response.addHeader("cache-control", "no-cache");
response.addHeader("expires", "0");
页面重定向(发送两次请求,返回两次响应);
Java代码
response.sendRedirect("url地址");
4,session:
session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止.它是HttpSession类的实例.
会话,session对象是每个访问用户专用的;
设置和访问共享属性;
Java代码
session.getAttribute("bean");//得到session属性
session.setAttribute("bean",bean);//设置session属性
session.removeAttribute("bean");//移除session属性
销毁session会话(键,值);
Java代码
session.invalidate();
5,pageContext:
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说它可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pageContext;
页面转发请求(一次发送请求,返回一次响应,直接转发到该页面);
Java代码
pageContext.forward("url地址");
6,application:
application对象实现了用户间数据的共享,可存放全局变量.它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问.服务器的启动和关闭决定了application对象的生命.它是ServletContext类的实例.
配置全局信息,得到相关数据.该对象保存了一个应用系统中一些公用的数据,与session对象相比,application对象是所有客户共享的;
得到servlet的版本号;
Java代码
application.getMajorVersion()+"."+application.getMinorVersion();
可配置的全局信息(通过web.xml);
Java代码
application.getInitParameter("company.name(<param-name>属性)");
//在web.xml中加入:
<context-param>
<param-name>company.name</param-name>
<param-value>北京xxx信息技术有限公司</param-value>
</context-param>
Java代码
.getMajorVersion();//得到servlet大版本号
.getMinorVersion();//得到servlet小版本号
.getServerInfo();//得到服务器信息
.setAttribute("","");//设置共享全局属性信息
.getAttribute("");//得到共享全局属性信息
7,config:
config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象);
设置jsp页面的常量(通过web.xml);
Java代码
config.getInitParameter("page.title(<param-name>属性)");
//在web.xml中加入:
<servlet>
<servlet-name>configServlet</servlet-name>
<jsp-file>/config.demo.jsp</jsp-file>
<init-param>
<param-name>page.title</param-name>
<param-value>config对象演示</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>configServlet</servlet-name>
<url-pattern>/config.demo.jsp</url-pattern>
</servlet-mapping>
8,page:
page对象就是指向当前JSP页面本身,JSP页面的this指针,它是java.lang.Object类的实例;
9,exception:
JSP页面中的异常;
exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象.如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译.他实际上是java.lang.Throwable的对象.