脚本元素
脚本片段:<% java代码 %>
表达式:<%= %>
脚本声明:<%!声明变量 %>
<%!publicint i=1;%>
指令元素
用于设置JSP页面的属性和相关功能,page指令用于整个页面,可以在页面任何位置定义(一般定义在顶端)
Page指令
<%@ page %>
<%@ pageimport="java.util.*"%>
Include指令
将整个页面内容全部包含
<%@ include file=” url”%>静态指令
先处理后将结果包含
<jsp:include page=”url”>
动作元素
//相当于 Users user=new Users();
<jsp:useBeanid="user"class="org.itfuture.www.domai.Users"/>
//相当于 request.getParameter(“userName”)property值与抓取值不一样时候要添加 param属性
<jsp:setPropertyproperty="userName"name="user"/>
隐含对象及客户端的参数请求
隐含对象:request /response /out/session /application/ config/pageContext/ page/ exception
基于链接的请求
<a href="link.jsp?name=tom&age=20">链接请求</a>
基于表单的post请求
<formaction="post.jsp"method="post">
<inputtype="text"name="username "/>
<inputtype="submit" name="sub"value="提交">
</form>
展现post.jsp页面
<%
request.setCharacterEncoding("gb18030");//进行转码
String str=request.getParameter("username");
%>
信息:<%=str%>
作用域:
pageContext:只在当前JSP页面
request:从发出请求到服务器处理结束,返回响应的整个过程
session:作用于当前会话
设置session有效期
<session-config>
<session-timeou> </session-timeou>
</session-config>
application:作用于整个应用
作用域中的方法:
//通过名称将对象存储在某个作用域中
pageContext.setAttribute(String name, Object value);
request.setAttribute(String name,Object value);
session.setAttribute(String name,Object value);
application.setAttribute(String name,Object value);
//通过名称获取作用域中的对象
pageContext.getAttribute(String name);
request.getAttribute(String name);
session.getAttribute(String name);
application.getAttribute(String name);
转发
(1)采用request对象转发
RequestDispatcher rd=request.getRequestDispatcher(”转发地址”)
rd.forward(request,response);
(2)采用pageContext转发
pageContext.forward(“转发地址”);
(3)采用JSP动作元素转发
<jsp:forward page=”转发地址”/>
JSTL
核心标签库
用标签向作用域中存值
方式一
<c”set var=”” value=”” scope=”作用域”/>
例:<c:setvar="a"value="dams"scope="request"/>//相当于request.setAttribute(a,”未来蓝图”)
${requestScope.a}//通过EL表达式取值两种方式均可
${a }
方式二
<c:set var=”” scope=”作用域”> ... </c:set>
例:<c:setvar="name" scope=”reqeust”>WAHAHA</c:set>
${requestScope.a}
标签输出
<c:outvalue="DAMS"></c:out>
判断标签
<c:if test=”条件” scope=”作用域”></c:if>
<c:setvar="b"value="1"/>
<c:iftest="${not empty b}">WAHAHA</c:if>
选择标签
<c:choose>c
<c:when test=”条件”></c:when>
<c:otherwise></c:otherwise>
</c:choose>
<c:choose>
循环标签
<c:forEachvar="person"items="${persons}"varStatus="vs"begin="1"end="3"step="1">
<p> ${person.name} ---- ${person.birthday}</p>
</c:forEach>
格式化标签
<p><fmt:formatDate value="${d}" pattern="yyyy年MM月dd日"/></p>
EL表达式 略