博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSP常用指令
阅读量:7122 次
发布时间:2019-06-28

本文共 4303 字,大约阅读时间需要 14 分钟。

  hot3.png

一. 指令元素
JSP指令包括pageincludetaglib
page指令是针对当前页面的指令,
include指令用来指定如何包含另外一个文件,
taglib指令用来定义和访问自定义标记库。
1. page指令
page指令的设置语法格式是:<%@ page language="java" attribute="value"…%>
下面介绍指令中包括的几个常用属性,并作简要说明。
language
用以指定页面中写的是java代码
extends
用以指定JSP翻译成的Servlet类要继承哪个类,一般不要指定
import
它用来指定jsp网页中所需要使用到的一些类。JSP引擎自动导入java.lang.*,javax.servlet.开关的相关包
多个包之间用逗号连接例如:
<%@ page import=”java.io.*,java.util.Date”%>
session
定义当前页面是否引入session对象。当设置为true时,可以获得隐含名为session的对象,为false时,则不能。默认设置为true。
contentType
设置jsp网页输出时数据时,所使用的字符压缩方式,以及所使用的字符集,当编写中文网页时,设置如下:
<%@page contentType=”text/html;charset=Gb2312”%>
此属性的默认值为”text/html;charset=ISO-8859-1”。
buffer
设置jsp网页的缓冲区大小,默认为”8k”,如果设置为”none”,则表示不使用缓冲,所有的响应输出都将被PrintWriter直接写到ServletResponse中。
autoFlush
缓存区满时自动刷新,true或false,默认为true
isTreadSafe
定义当前页面是否支持线程安全。如果为true,则该页面可能同时收到jsp引擎发出的多个请求,反之,jsp引擎会对收到的请求进行排队,当前页面在同一时刻只能处理一个请求。默认为true。false时servlet会实现SingleThreadMode接口,以单线程模式处理请求,详细可看
info
设置页面的文本信息,可以通过Servlet.getServletInfo()的方法获得该字符串。
errorPage
定义指向另一个jsp页面的URL。当页面出现一个没有被捕获的异常时,错误信息将以throw语句抛出,而被设置为错误信息网页的jsp页面,将利用exception隐含对象,取得错误信息。
默认没有错误处理页面。
一般在web.xml中配置错误页面
java.lang.ArithmeticException
404
/errors/error.jsp
 
isErrorPage
设置此jsp网页是否为错误处理页面。默认值为false。当设置为true时,jsp页面将可存取隐含的exception对象,并通过该对象取得从发生错误之网页所传出的错误信息。取得错误信息的语法如下:
<% =exception.getMessage()%>
pageEncoding
页面编码格式
isELIgnored

是否忽略EL表达式,默认false

2. include指令

将相应的内容直接包含进去,即将当前JSP页面和所包含的JSP页面组合在一起,只生成一个servlet。

include指令与<jsp:include>动作的区别

include指令的使用方法:(静态包含,编译时包含)
<%@ include file="include.jsp"%> 
<jsp:include>动作的使用方法:(动态包含,运行时包含)
<jsp:include page="/include.jsp" />
等价于:
contextPage.include("/include.jsp"); 
等价于:
request.getRequestDispacher("/include.jsp").include(request,response);
本质区别在方法的实现上:
include指令是将相应的内容直接包含进去,即将当前JSP页面和所包含的JSP页面组合在一起,只生成一个servlet。
<jsp:include>动作是通过调用
org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "include.jsp", out, false);来实现。它是将当前JSP页面和所包含的JSP页面分别生成相应的servlet,在访问页面的时候再进行包含。
开发过程中,最好使用静态包含
3. taglib指令

<c:foreach varStatus="statu" > 这样会生成一个statu对象,并有一个count属性,代表当前迭代的次数,${ statu.count }

<c:url var="newurl" value="/webappName/1.html" >将url重写,在用户禁用cookie时在url后面缀上JSESSIONID参数,${newurl}

不指定var时,直接将重写后的url输出(重写时url前会加上/webappName)
标签体之间可通过<c:param>给url添加参数,值为中文时自动进行编码

二,脚本元素

  • 声明<%! %> 对应的代码被原样放到Servlet类的service方法外部,所以可以写Servlet类对应的静态代码块,成员变量,方法
  • 脚本片断<% %> 对应的代码被原样放到Servlet类的service方法内部,可以使用九大隐式对象
  • 脚本表达式<%= %> 对应的变更被通过out.write()代码输出到service方法内部 
  • 注释<%-- --%>  JSP注释,里面的内容会被忽略,不作任何处理

三. 动作元素

1.<jsp:param>

2.<jsp:include>
3.<jsp:forward>
4.<jsp:plugin>
5.<jsp:useBean>
6.<jsp:setProperty>
7.<jsp:getProperty>

1. <jsp:param>

<jsp:param>动作用于传递参数,必须配合<jsp:include>、<jsp:forward>、<jsp:plugin>动作一起使用。
语法格式:
<jsp:param name="name1" value="value1"/>
2. <jsp:include>
<jsp:include>动作用于动态加载HTML页面或者JSP页面。
语法格式:
<jsp:include page="网页路径">
<jsp:param name="name1" value="value1"/>
<jsp:param name="name2" value="value2"/>
<jsp:include/>
在jsp页面中,可以利用下面的语法取得返回的参数:
request.getParameter("name1");
若不传递参数时,则语法格式如下:
<jsp:include page="网页路径"/>
举例:
a.jsp页面代码如下:
<jsp:include page = "b.jsp"> 
<jsp:param name="name1" value="value1"/> 
<jsp:param name="name2" value="value2"/> 
</jsp:include>
b.jsp页面代码如下:
名字1:<%=request.getParameter("name1")%>
名字2:<%=request.getParameter("name2")%>
“include标准动作”和“include指令”的差别在于:
“include标准动作”包含的页面在运行时被加入,一般叫静态包含
“include指令”在编译时就被加入了,一般叫动态包含
3. <jsp:forward>
<jsp:forward>动作用于将浏览器显示的页面导向到另一个HTML页面或者jsp页面。
语法格式:
<jsp:forward page="网页路径"/>
当然,<jsp:forward>动作中也可以加入<jsp:param>参数,其设置和获得参数的方法与<jsp:include>类似。
4. <jsp:plugin>
<jsp:plugin>动作用于加载applet,用途与HTML语法中的<Applet>及<Object>标记相同。该动作是在客户端执行的
5.<jsp:useBean>
<jsp:useBean id="beanName" scope="有效范围" class="Bean类位置" />
此标签在解析时,会先从4个作用域中查找beanName属性,看是否存在,有就直接用,没有就实例化一个新的class
<jsp:useBean>aaaaa</jsp:useBean>标签体中的aaaaa,只有在实例化class时才会执行被打印出来,如果bean已经实例化成功,是从4个作用域中查找得到的,标签体中的内容就不会再被执行
6.<jsp:serProperty>
<jsp:setProperty name="名称" property="属性" value="值" /> 
<jsp:setProperty name="名称" property="属性" param="paramName" />把参数paramName的值来设置指定的属性,只支持8种基本类型数据
<jsp:setProperty name="名称" property="*" /> 当property指定为*时,代表使用请求参数为bean对象的所有参数自动赋值
7.<jsp:getProperty>
<jsp:getProperty name="名称" property="属性" />
如果bean属性为null,通过getProperty得到将是字符串null,而不是空

转载于:https://my.oschina.net/lhplj/blog/387290

你可能感兴趣的文章
在VMWare中安装Windows Server Core
查看>>
2016最新高薪必备老男孩MySQL数据库DBA核心视频
查看>>
40.Azure更改VM可用性集
查看>>
核显也能玩游戏,OS X Yosemite优化指南
查看>>
读《LDAP详解——IBM Tivoli Directory Server从入门到精通》一书
查看>>
从化工技术员到微软最有价值专家(MVP)--我的IT从业路
查看>>
【VMCloud云平台】私有云门户第一朵VM云(一)
查看>>
RHCE系列之LVM----操作篇
查看>>
IT168:2014年APT***发展趋势及防御策略调研
查看>>
简单使用packetbeat
查看>>
使用nginx+Lua+GraphicsMagick实现图片自动裁剪
查看>>
Win2008R2创建虚拟路由
查看>>
马哥门徒网络班学习计划和学员作品展示
查看>>
oracle删除一个用户
查看>>
Exchange Server 2016管理系列课件20.开启或关闭邮箱功能
查看>>
vSphere与Workstation虚拟机交互的几种方法(一)
查看>>
Wijmo 更优美的jQuery UI部件集:通过jsFiddle测试Wijmo Gauges
查看>>
展望云计算的未来-【沈阳软件】2012年6月刊
查看>>
Word 2003高级技巧之艺术字对齐方式
查看>>
如何从技术岗位走向管理岗位?
查看>>