<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="json" uri="http://www.atg.com/taglibs/json" %>
<%-- errorPage要优先于DD配置 --%>
<%@ page errorPage="errorPage.jsp" %> <html>
<head>
<title>$Title$</title>
</head>
<body>
<%-- <c:forEach> --%>
<table>
<c:forEach var="movie" items="${movieList}">
<tr>
<td>${movie}</td>
</tr>
</c:forEach>
</table>
<br> <%-- <c:forEach> varStatus --%>
<table>
<c:forEach var="movie" items="${movieList}" varStatus="movieLoopCount">
<tr>
<td>${movieLoopCount.count}</td>
<td>${movie}</td>
</tr>
</c:forEach>
</table>
<br> <%-- 嵌套<c:forEach> 一般用在嵌套的数据结构 --%> <%-- <c:if> 这个页面一般人看不到--%>
<c:if test="${param.userType eq 'member'}">
<jsp:include page="input.jsp"/>
</c:if>
<br> <%-- <c:choose> --%>
<c:choose>
<c:when test="${param.userType == 'visitor'}">
<p>Hello, visitor</p>
</c:when> <c:when test="${param.userType == 'member'}">
<p>Good evening.</p>
</c:when> <c:otherwise>
<p>unbelievable</p>
</c:otherwise>
</c:choose>
<br> <%-- <c:set> 规则和jsp标准动作一样,没有就创建新的 --%>
<c:set var="userLevel" scope="session" value="Cowboy" />
<p>${userLevel}</p>
<c:set var="Fido" value="${person.dog}" /> <c:set var="userLevel_2">
Cowboy, Cowgirl
</c:set>
<p>${userLevel_2}</p> <%-- <c:set>只能用来设置bean和map --%>
<c:set target="${dog}" property="name" value="huang" />
<p>${dog.name}</p> <c:set target="${dog}" property="name">
${param.name}
</c:set>
<p>${dog.name}</p> <%-- jsontag 尝试 --%>
<json:object>
<json:property name="name" value="${dog.name}"/>
</json:object> <%-- <c:remove> 删除变量 --%>
<c:remove var="userLevel" scope="session"/>
<%-- 不写作用域 或者书写正确的作用域 都可删除变量--%>
<p>userLevel = ${userLevel}</p> <%-- <c:import> 比<jsp:include>、<include file="...">更强大,可以包含容器之外的内容,原理与前者类似 --%>
<%--<c:import url="某个URL" />--%>
<%-- import简单的页面是可以的,复杂的页面会超时, 图片会乱码 --%> <%-- c:param --%>
<c:import url="input.jsp">
<c:param name="content" value="this is a param from index.jsp" />
</c:import> <%-- jsp的URL重写 --%>
这是一个URL重写可用的超链接
<a href="<c:url value='/login.jsp' />"> click here </a>
<br> <%-- url编码 --%>
<c:set var="last" value="Hidden Cursor" />
<c:set var="first" value="Crouching Pixels" />
<c:url value="/showMovies" var="inputURL">
<c:param name="firstName" value="${first}" />
<c:param name="lastName" value="${last}" />
</c:url>
<p>url using param is: ${inputURL}</p>
<p><a href="${inputURL}">URL_above</a></p> <p>About to do a risky thing: </p>
<c:catch var="myException">
<% int x = 10/0; %>
</c:catch>
<p>If you see this, we survived.</p>
<c:if test="${myException != null}">
<p>There was an exception: ${myException.message}</p>
</c:if> </body>
</html>

错误页面建议使用 web.xml :

<%@page isErrorPage="true" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<p>同志,请先登陆</p>
<a href="login.jsp">click here</a>
<hr>
<p>${pageContext.exception}</p>
</body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>showMovies</servlet-name>
<servlet-class>showMovies</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>showMovies</servlet-name>
<url-pattern>/showMovies</url-pattern>
</servlet-mapping> <!-- 普遍型错误页面 -->
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/errorPage.jsp</location>
</error-page> <!-- 具体异常型 -->
<!-- http状态码型 -->
<error-page>
<error-code>404</error-code>
<location>/errorPage.jsp</location>
</error-page> </web-app>

说是留着参考。。事实上要用的时候还是直接谷歌、查文档实在。。。

05-11 22:05