jsp七大动作

                                                                jsp七大动作

jsp动作(action)是指在运行期间的命令,常见的有:

  • jsp:useBean
    • jsp:setProperty
    • jsp:getProperty
  • jsp:include
  • jsp:forward
    • jsp:param
  • jsp:plugin

1.include

include 动态包含(分别编译):用jsp:include动作实现,它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。flush属性: 用true ,表示页面可刷新。默认为false;在使用include命令时除非该命令被执行到,否则它是不会被Tomcat等JSP Engine编译。

<jsp: include page="included.jsp" flush="true" />

2.useBean

useBean动作(jsp页面使用javaBean的第二种方式),作用域默认为page(本页面有效)

<jsp:useBean id="对象名" class="包名.类名" scope="作用范围(page/request/application/session)"/>

scope属性用于指定JavaBean实例对象所存储的域范围,其取值只能是page、request、session和application四个值中的一个,其默认值是page。

<jsp:useBean id="currentDate" class="java.util.Date" scope="request" />
<%=currentDate.toString() %>
  1. 当scope=application时,我们浏览date.jsp,这时显示出了系统时间。可是不管我们怎么刷新,另外打开一个浏览器,甚至换台机 器,它显示的时间始终不变,都是当初的时间(即bean刚创建时得到的系统时间),因为scope=application,所以JavaBean的实例在内存中只有一份,此时只要不重新启动WEB服务,输出不会变化。
  2. 当scope=session时,浏览date.jsp,刷新时显示也不会变化。可是当我们重新打开一浏览器,即一个新的session,系统便再次创建JavaBean的实例,取得当前系统时间,这时将得到正确的时间。同样,再次刷新新打开的页面,显示也不会变化。
  3. 当scope=page/request时,不断刷新页面将不断得到当前系统时间。

3.getProperty

getProperty动作(name为useBean动作中的id).从对象中取出属性值:

<jsp:getProperty name="javaBean对象" property="javaBean对象属性名" />

4.setProperty

setProperty动作(name为useBean动作中的id):

  • 为对象设置属性值:
<jsp:setProperty name="javaBean对象" property="javaBean对象属性名" value="值"/>
  • 为对象设置属性值:
<jsp:setProperty property="javaBean对象属性名" name="javaBean对象" param="username"/>

5.param

param动作:传递参数,到达跳转页面可以通过 request.getParameter("参数名")方式取出参数值

<jsp:include page="转向页面的url" >
    <jsp:param name="参数名1" value="参数值1"></jsp:param>
    <jsp:param name="参数名2" value="参数值2"></jsp:param>
</jsp:include>

或:

<jsp:forward page="转向页面的url">
    <jsp:param name="参数名1" value="参数值1"></jsp:param>
    <jsp:param name="参数名2" value="参数值2"></jsp:param
</jsp:forward>

6.forward

forward动作:跳转页面

<jsp:forward page="login.jsp" />

7.plugin

plugin动作:<jsp:plugin>:用于指定在客户端运行的插件,不常用

猜你喜欢

转载自blog.csdn.net/Darryl_Tang/article/details/80533282