javaweb22/4/9
JSP内置对象
内置对象及其作用域
(一)
1.jsp页面1 四个内置对象存取信息
<body>
<%--    内置对象--%>
<%
    //存信息
    pageContext.setAttribute("name1","wp01");//保存的数据只在一个页面中有效
    request.setAttribute("name2","wp02");//保存的数据只在一次请求中有效,请求转发会携带这个数据
    session.setAttribute("name3","wp03");//保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器
    application.setAttribute("name4","wp04");//保存的数据在服务器中有效,从打开服务器到关闭服务器
%>
<%
    //用pageContext取信息
    String name1 = (String)pageContext.findAttribute("name1");
    String name2 = (String)pageContext.findAttribute("name2");
    String name3 = (String)pageContext.findAttribute("name3");
    String name4 = (String)pageContext.findAttribute("name4");
    String name5 = (String)pageContext.findAttribute("name5");
%>
<%--  EL表达式不会输出找不到的数据,一般都用EL表达式--%>
${name1}
${name2}
${name3}
${name4}
${name5}
</body>
2结果

(二)用另一个jsp页面取信息
1.jsp页面
<%
    //用pageContext取信息
    String name1 = (String)pageContext.findAttribute("name1");
    String name2 = (String)pageContext.findAttribute("name2");
    String name3 = (String)pageContext.findAttribute("name3");
    String name4 = (String)pageContext.findAttribute("name4");
    String name5 = (String)pageContext.findAttribute("name5");
%>
<%--  EL表达式不会输出找不到的数据,一般都用EL表达式--%>
${name1}
${name2}
${name3}
${name4}
${name5}
</body>
2.结果

jsp标签请求转发携带参数
1.要转发的页面
<body>
<jsp:forward page="study.jsp">
    <jsp:param name="name" value="wp"/>
    <jsp:param name="age" value="20"/>
</jsp:forward>
</body>
2.转发到的页面
<body>
<%= request.getParameter("name")%>
</body>
3.结果

EL表达式
- 获取数据
- 执行运算
- 获取web开发的常用对象
JSTL表达式
JSTL表达式的使用是为了弥补HTML标签的不足,标签的功能和java代码一样
核心标签
<%--必须导入核心标签库--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
案例:使用jstl标签简单实现管理员登录
1.jsp页面
<body>
    <form action="jstl01.jsp" method="get">
        <input type="text" name="username" value="${param.username}">
        <input type="submit" value="登录">
    </form>
    <c:if test="${param.username=='admin'}" var="isAdmin">
       <c:out value="欢迎管理员登录"/>
    </c:if>
    <c:out value="${isAdmin}"/>
    <jsp:forward page="study.jsp">
        <jsp:param name="name" value="wp"/>
        <jsp:param name="age" value="20"/>
    </jsp:forward>
</body>
2.结果


3.遇到的问题
报500错误,Tomcat Localhost日志显示java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.ConditionalTag
jstl包没导进来。
原因:导错jstl包
 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号