JSP应用

来源:互联网 发布:java webservice 编辑:程序博客网 时间:2024/05/17 21:59
一.JSP 中的语法
1.注释:<%-- 注释 --%>
2.JSP表达式:<%= 表达式 %>
<%=map.get("type") %>

3.JSP脚本(java语句):<%  %>
<%for(int i=0;i<10;i++){%>
    <li>列表项目 <%=i %></li>
<%} %> 

4.JSP声明:<%! 声明内容 %>
<%!
    //在Servlet中声明类的属性,方法等
    double test(int a,int b){
        return Math.sqrt(a*a+b*b);
    }
%>

5.JSP指令:<%@ 指令名 属性=值%>
(1)<%@ page %> page指令:用于导包、设置页面属性
<%@ page import="java.util.Map,java.util.HashMap"
 language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

(2)<%@ include file="url" %> 包含指令
<%@ include file="/WEB-INF/nav.jsp" %>

(3)<%@ taglib %> 标签指令(导入jstl包,1.2版本):*.tld,实现Tag接口的类
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

二.具体实例使用JSTL
1.Map表
<%
Map map = new HashMap();
//map.put("type","电影控");
request.setAttribute("map",map);
%>
<%=map.get("type") %>结果为:电影控

<c:out value="${map.type['class']}"/>结果为:class java.lang.String


2.核心标签out
(1)out标签直接输出
<c:out value="Hello World!"></c:out>结果为:Hello World!
(2)out标签通过EL表达式输出
<%
    request.setAttribute("tag", "<a>link</a>");
%>

<p><c:out value="${tag}" escapeXml="true"></c:out></p>结果为:<a>link</a>


3.核心标签set
(1)set标签直接设置值
<c:set var="str" value="Hello World!"></c:set>
<p>str=${str}</p>结果为:str=Hello World!
(2)set标签将一组标签设置为变量
<c:set var="template"><a>demo</a></c:set>
<p><c:out value="${template}" escapeXml="true"/>${template}</p>结果为:<a>demo</a>demo
(3)常用路径标签

<c:set var="base" scope="request" value="${pageContext.request.contextPath}"></c:set>


4.核心标签if
<c:set var="name" value="熊大"></c:set>
<c:if test="${name eq '熊大' }">
    <p>臭狗熊那里跑!</p>

</c:if>


5.核心标签多路分支

<c:choose>
    <c:when test="${name eq '熊大' }"><p>找的就是你!</p></c:when>
    <c:when test="${name eq '熊二' }"><p>你家老大呢?</p></c:when>
    <c:otherwise><p>没有熊出没</p></c:otherwise>

</c:choose>


6.核心标签forEach循环
(1)输出循环次数
<c:forEach var="i" begin="1" end="5" step="1">
    <p>第${i}次</p>
</c:forEach>
(2)输出对象及循环次数(stat.index从0开始,想从1开始,加1就行了)
<c:forEach var="n" items="${names}" varStatus="stat">
    <p>第${stat.index+1}个:${n}</p>

</c:forEach>


7.核心标签import

<c:import url="/WEB-INF/footer.jsp"></c:import>


8.fmt标签,数字格式化标签
<%
    request.setAttribute("price",3.14159);
%>

<p>价格:<fmt:formatNumber value="${price}" pattern="RMB###,###.00"/></p>结果为:价格: RMB3.14


9.fmt标签,日期格式化
<%
    request.setAttribute("d",new java.util.Date());
%>
<p>今天日期:<fmt:formatDate value="${d}" pattern="yyyy-MM-dd HH:mm:ss"/></p>
结果为:今天日期: 2017-12-20 11:10:13

三.JSP页面中的隐含对象
1.输入输出对象request、response、out,HttpServletRequest,HttpServletResponse,JspWriter
2.作用域通信对象session、application、pageContext,HttpSession,ServletContext,JspContext
3.Servlet对象page、config,HttpServlet,ServletConfig
4.异常对象exception


四.具体实例
<%
    if(request instanceof HttpServletRequest){
        out.println("实现HttpServletRequest接口");
    }
%>


五.EL表达式
1.EL读取单个数据
request.setAttribute("name", name);

${names}


2.EL读取数据集合等
request.setAttribute("names", names);

${names[1]}


3.EL读取Map表
map.put("java","Java 核对技术");
request.setAttribute("map",map);
${map.java}
${map['java']}

${map["java"]}


4.EL读取对象的Bean属性
User p = new User(1,"linsa",24);
request.setAttribute("user",p);

${user.name}


5.EL 可以复合使用
User[] users={new User(1,"rose",4.0),new User(2,"lily",9.0)}
request.setAttribute("users",users);

${users[2].name}


原创粉丝点击