JSP基础点滴

来源:互联网 发布:酒店员工流失率数据 编辑:程序博客网 时间:2024/05/16 00:53

JSP的指令有3种:page、include和taglib。 

<%= 5+6 %>转变为java类时,会生成out.println(5+6);"5+6"会当成参数传送到out.println()方法中。"<%="两个字符间不能有空格。

JSP怎样象SERVLET那样取得初始化参数?

在web.xml中
<servlet>
 <servlet-name>test</servlet-name>
 <servlet-class>mypack.Test</servlet-class>
 <jsp-file>/jsps/myTest.jsp</jsp-file>
  <init-param>
   <param-name>password</param-name>
   <param-value>123456</param-value>
  </init-param>
</servlet>
增加一个<jsp-file></jsp-file>标记,表明该JSP生成的SERVLET会得到上面的初始化参数。

当容器把一个JSP转变成一个JAVA类时,它会实现HttpJspPage接口,然后再进一步转变成一个SERVLET类。
HttpJspPage接口有jspInit()方法,功能类似SERVLET的init()方法。

JSP表达式语言EL
${class.student}
表达式中第一个变量可以是一个隐式对象,也可以是一个属性。
EL的隐式对象有:pageScope,requestScope,sessionScope,applicationScope,param,
paramValues,header,headerValues,cookie,initParam,pageContext
上述这些隐式对象(除了pageContext)都是映射对象,而pageContext是实际对象的引用。
param可以代替request.getParameter("vv"); == ${param.vv}
paramValues可以代替request.getParameterValues; ==${paramValues.vv}
<%=application.getInitParameter("name")%>==${initParam.name}
若a.jsp是原页面,b.jsp是提交到的页面。
在a.jsp中有<%session.setAttribute("v.v","1234567890")%>
在b.jsp中可以这样取出值来${sessionScope["v.v"]}
"."和"[]"操作符
如果表达式变量后有个".",那么左边的变量必须是一个映射(MAP)或者是个bean。
如果表达式变量后有个"[]",那么左边的变量可以是一个映射(MAP)或者是个bean或则是数组。

A:<%@ include file="header.jsp"%>与B:<jsp:include page="header.jsp" />
A:在编译成SERVLET时将A的内容打印到页面上
B:在运行时动态调用header.jsp。

List al = new ArrayList();
  al.add("ease");
  al.add("south");
  al.add("west");
  al.add("north");
<c:forEach var="ore" items="${fx}" step="1" begin="0" end="4" varStatus="taa">
      <tr>
       <td>${ore}</td>
       <td>${taa.count }</td>
      </tr>
</c:forEach>
varStatus:计数器,从1开始。

<c:set var="name" scope="request" value="zhi"/>
<c:set target="beanName" property="ids" value="001" />
target:必须是一个bean或者map。
<c:import uri="
http://www.baidu.com" />
<c:url value="/t.do" />

<taglib>
 <uri>bk.test</uri>
 <tag>
  <name>start</name>
  <tag-class>bk.test.Example</tag-class>
  <body-content>empty</body-content>
  
  <attribute>
   <name>username</name>
   <required>true</required>
   <rtexprvalue>true</rtexprvalue>
  </attribute>
 </tag>
</taglib>
JSP:
<%@ taglib prefix="ta" uri="bk.test"%>
<ta:start username="${un}" />
rtexprvalue:true:运行时计算,是动态的。false:转换时计算,是静态的。
<body-content>empty</body-content>可有4种选择
1)empty 标记不能有体
2)scriptless  不能有脚本元素,但可以有EL或JSTL动作
3)tagdependent  标记体是文本的。
4)jsp  可以是JSP中的所有元素。

原创粉丝点击