[Jsp] JSP的三个编译指令和七个动作指令


一、概述
编译指令是通知Servlet引擎的处理消息,在将JSP编译成Servlet时起作用。
动作指令只是运行时的动作,通常可以替代JSP脚本,是JSP脚本的标准化写法。


二、三个编译指令

① page
常用的page指令标签
<%@ page contentType="text/html;charset=GBK" language="java" pageEncoding="GBK"%>
<%@ page import="package.className"%>


② include
<%@ include file="file path"%>
注意:如果两个页面的编译指令冲突,那么页面就会出错。因为这里的include是静态包含,是全部集中了之后,再一次编译成一个Servlet。


③ taglib:自定义标签,使用标签。


三、七个动作指令

第一种页面的参数传递(forward指令)
① jsp:forward
<jsp:forward page="forward-result.jsp">
   <jsp:param name="age" value="29">
</jsp:forward>

另一个页面使用request.getparameter("age")接收此参数

 

第二种页面的参数传递(Form表单转发)
<form method="post" action="jsp-forward.jsp">
<input type="text" name="username">

另一个页面使用request.getparameter("username")接收此参数

 

② jsp:param
param指令用于设置参数值,指令不能单独使用,可与以下三个指令结合使用。
jsp:include
jsp:forword
jsp:plugin

语法:<jsp:param name="paramName" value="paramValue">

 

③ jsp:include
<jsp:include page="待导入的页面路径">
这是动态包含,是先将待导入的页面编译成Servlet,再将多个Servlet整合在一起。

 

④ jsp:useBean
<jsp:useBean id="name" class="className Path" scope="page|request|session|application">


⑤ jsp:setProperty
<jsp:setProperty name="BeanName" property="propertyName" value="value" />


⑥ jsp:getProperty
<jsp:getProperty name="BeanName" property="PropertyName" />


举例:
先编写一个PersonBean.java(在WEB-INF\src\lee包中)
public class PersonBean{
 private String name;
 private int age;

 public Person(){
 }

 public Person(String name,int age){
   this.name=name;
   this.age=age;
 }
 setters and getters...
}

 

再编写一个BeanTest.jsp页面
<jsp:useBean id="p1" class="lee.PersonBean" scope="page" />
<jsp:setProperty name="p1" property="name" value="yeqing" />
<jsp:getProperty name="p1" property="name" />
<jsp:setProperty name="p1" property="age" value="23" />
<jsp:getProperty name="p1" property="age" />

 

注:
1)这里取得的name age就是在PersonBean中定义的私有属性,是利用了反射机制。
2)PersonBean.java放在了src文件夹中,实际上Java源文件对Web应用不起作用,
   所以我们使用Ant等来编译得到二进制文件,然后放入WEB-INF/classes路径下。
   而且,在为Web应用提供了新的class文件后,必须重启该应用,让它可以重新加载这些新的class文件
3) 二进制文件就是使用记事本等程序打开后是乱码的文件
4) 上面的三个标签实现的功能在jsp页面可以用以下的代替

 

<%
PersonBean p1=new PersonBean();
pageContext.setAttribute("p1",p1);
//request.setAttribute("p1",p1);
//session.setAttribute("p1",p1);
//application.setAttribute("p1",p1);
p1.setName("yeqing");
p1.setAge(21);
%>

<%=p1.getName()%>
<%=p1.getAge()%>

 

⑦ jsp:plugin

用于下载服务器端的JavaBean或Applet到客户端执行。

 

 

posted @ 2012-08-28 17:04  Aviva_ye  阅读(277)  评论(0编辑  收藏  举报