指令包含:可以在一个jsp中包含另一个jsp中的内容。会将包含页面和被包含页面放在一起编译,形成一个java类。所以,是在编译时发生的。
只能包含文件,不允许两个页面之间存在同名变量。被包含页面也不应该出现<html><head>等标签。
动作包含:作用和指令包含一样,可以在一个jsp中包含另一个资源的内容。将在包含页面中包含被包含页面输出的结果,两个jsp分别编译形成
java类。是在请求时发生的,允许两个变量同名,不但可以包含文件,而且可以包含servlet输出的结果,并且可以传参。
被包含页面也不应该出现<html><head>等标签。
<jsp:include page="/include.jsp">
<jsp:param value="2" name="id"/>
</jsp:include>
动作转发:可以通过请求转发的方式,跳转到另一个资源。
<jsp:forward page="/test.jsp"></jsp:forward>
EL表达式:只能从作用域中取出共享对象的值。${},不能取出jsp脚本中定义的局部变量。EL表达式在取值时,如果作用域中没有该共享对象,页面上
什么也没有,而对于jsp会打印出null信息。EL表达式同时支持算数运算、逻辑运算等常见表达式。
EL表达式在取共享对象的属性值${bean.name}时,调用的是共享对象的get()方法,即使没有属性,但是有对应的方法,同样,可以用EL表达式取值。
所以要求实体类属性命名要规范,前两个字母不能大写。
EL表达式,${aaa}取值时,会从四个作用域中查找共享对象,查找时,会先查找小作用域中的共享对象(pageContext>request>session>application),
找到后就不会在查找其他作用域中的共享对象。
EL表达式中提供了作用域的隐式对象,可以直接查找某一个作用域中的共享对象(pageScope,requestScope,sessionScope,applicationScope)
${param.id}利用EL表达式中的param隐式对象可以取出请求参数名称为ID的值
jstl:标准标签库,将jsp页面中的java代码封装成标签形式。最常用的是核心库core.
如果需要在jsp中使用jstl的核心库,需要使用taglib指令导入。
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
判断标签:
<c:if test="">
</c:if>
当test中的表达式返回true时,执行标签里面的内容。
javax.el.PropertyNotFoundException:属性未找到异常
URL路径有两个一样的异常:
Caused by: java.lang.IllegalArgumentException: The servlets named [com.emproject.servlet.CheckCodeServlet] and
[com.emproject.servlet.LoginServlet] are both mapped to the url-pattern [/em/login] which is not permitted
原文:http://www.cnblogs.com/lyrand/p/7752009.html