JSP-标准动作标记

JSP标准动作标记

在客户请求JSP页面时,JSP动作利用XML语法格式的标记来控制Servlet引擎的行为。利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件生成HTML代码。
动作标记使用XML语法格式,由一个开始标记(可带有属性)、动作体以及结束标记组成。
动作标记名和属性名都是大小写敏感的 。

其中常用的动作有以下7种:

    <jsp:include><jsp:param><jsp:forward><jsp:plugin><jsp:useBean><jsp:setProperty><jsp:getProperty>

<jsp:include>动作介绍

动作用来把指定文件(文本、HTML、JSP)插入正在生成的页面中,还可以向被加载的JSP文件传递参数。

语法格式如下:
           <jsp:include page=“relative URL” flush=“true” /> 
或者
           <jsp:include page="fileName" flush=“true"> 
           <jsp:param name="paramName value="paramValue"/> 
           </jsp:include>


**属性介绍:**

page属性:指定资源相对路径
【功能说明】page属性指定所包含的资源的相对路径,可以接受动态值。
flush属性:指定是否刷新缓冲区
【功能说明】flush属性指定在包含目标资源之前是否刷新输出缓冲区,默认值为false。flush属性不可以接受动态值。

<jsp:param>动作介绍

动作可以用于、< jsp:forward>和动作体中,为其它标签提供附加信息。

<jsp:param>动作的语法格式如下:
<jsp:param name="paramName" value="param Value"/> 


**属性介绍:**    
name属性:指定参数名
【功能说明】name属性用于指定参数名称,不可以接受动态值。
value属性:指定参数值
【功能说明】value属性用于指定参数值,可以接受动态值。

下面是示范例子:

index.jsp(起始页面)

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
    <head>
        <title>include动作实例演示</title>
    </head>
    <body>
        <h1> include动作实例演示!</h1>
        以下是hello1.jsp页面的内容:
        <hr>
        <jsp:include page=“hello1.jsp">
             <jsp:param name="Name" value="QQ" />
        </jsp:include>
    </body>
</html>

注:设置传递参数的方式

hello1.jsp(添加页面)

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
    <head>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
         <title>JSP Page</title>
     </head>
     <body>
        <%=request.getParameter("Name")%>你好,欢迎你访问!%>
      </body>
</html>

注:获取传来参数的方式 <%=request.getParameter(“Name”)%>

<jsp: forward> 动作

用于引导客户端的请求到另一个页面或者是另一个Servlet去。

<jsp:forward>语法格式如下:
           <jsp:forward page="relativeURL" />
           <jsp:param name="paramName1" value="paramValue1"/> 
           <jsp:param name="paramName2" value="paramValue2"/> 
           </jsp:forward>

**<jsp:forward>动作可以包含一个或几个<jsp:param>子动作,用于向要引导进入的页面传递参数。**          
需要注意,当<jsp:forward>动作发生的时候,如果已经有文本被写入输出流而且页面没有设置缓冲,那么将抛出异常。

下面是示范例子:
login.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
   <form method="get" action="checklogin.jsp">
       <table>
            <tr><td>输入用户名:</td>
               <td><input type="text" name="name" value
=<%=request.getParameter("name")%>></td>
            </tr>
            <tr><td>输入密码:</td>
                 <td><input type="password" name="password"></td>
            </tr>
            <tr ><td><input type="submit" value="登录"></td></tr>
      </table>
  </form >

checklogin.jsp(登录验证页面)

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<body>
<%--登录验证--%>
<%
    String name=request.getParameter("name");
    String password=request.getParameter("password");
    if(name.equals("qq")){
 %>
      <jsp:forward page="success.jsp">
      <jsp:param name="user" value="<%=name%>"/>
      </jsp:forward>
 <%
    }
    else{
 %>
      <jsp:forward page="login.jsp">
      <jsp:param name="user" value="<%=name%>"/>
      </jsp:forward>
     <%}%>
</body>

success.jsp(登录成功页面)

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
   <head>
       <title>成功页面</title>
   </head>
  <body>
       登陆成功
       <br>
       欢迎你,<%=request.getParameter("name")%>
   </body>
</html>

<jsp:useBean> 动作

动作用来装载一个将在JSP页面中使用的JavaBean,创建实例供页面使用。这个功能非常有用,能够实现Java组件重用。

<jsp:useBean>语法格式如下:
<jsp:useBean id="beanInstanceName"  scope="page | request | session | application"
class="package.class"
type=“package.class“  说明是类本身,还是父类或接口
beanName="package.class"/> 

<jsp:setProperty>动作元素

动作用来设置、修改已经实例化的Bean中的属性值。 常和一起使用。

<jsp: setProperty>语法格式如下  :
<jsp:setProperty  name="beanInstanceName"  property= "*" |property="propertyName" [ param="parameterName"| value="value"]/>

<jsp: getProperty> 动作

动作获取指定Bean属性的值,转换成字符串,然后输出。

<jsp:getProperty>语法格式如下:
<jsp:getProperty name="beanInstanceName" property="propertyName" /> 

下面是示范例子:
文件: TestBean.java

/* 文件: TestBean.java */
package action;

public class TestBean {
   private String message = "No message specified";

   public String getMessage() {
      return(message);
   }
   public void setMessage(String message) {
      this.message = message;
   }
}

index.jsp文件

 <html>
 <head>
 <title>Using JavaBeans in JSP</title>
 </head>
 <body>
 <center>
 <h2>Using JavaBeans in JSP</h2>

 <jsp:useBean id="test" class="action.TestBean" />

 <jsp:setProperty name="test" 
                    property="message" 
                    value="Hello JSP..." />

 <p>Got message....</p>

 <jsp:getProperty name="test" property="message" />

 </center>
 </body>
 </html>

转载地址:

http://www.runoob.com/jsp/jsp-actions.html

posted @ 2015-10-07 16:22  AbeDay  阅读(820)  评论(0编辑  收藏  举报