提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、域对象?
1.page域(pageContext):只能作用于当前页面,既不能用来做做转发的数据分享,也不能做重定向的数据分享。
2.request域:只能作用于同一个请求的数据共享,所以只能在请求的转发中使用。
3.session域:只能作用于一次对话中共享数据(一次对话:用户打开浏览器,浏览多个web站点后,关闭该浏览器),转发和重定向都可以使用
4.context域(application):只能在同一个web应用中使用。(全局的)
之所以他们是域对象,原因是他们都内置了map集合,都有setAttribute和getAttribute方法
域对象的作用:临时的存储有效的数据,四个作用域保存的值
域对象的范围:pageContext<request<session<application
代码如下(示例):
<!-- 通过jsp表达式的方式进行输出作用域保存的值 -->
<%=pageContext.getAttribute("杨过") %>
<br/>
<%=request.getAttribute("张无忌") %>
<br/>
<%=session.getAttribute("郭靖") %>
<br/>
<%=application.getAttribute("宋威") %>
<hr/>
<!--
EL表达式
属于JSP的一个基础语法,作用:让数据调用的更简单。
$ { }
-->
<h2>EL表达式获取域对象所保存的值</h2>
<!-- 通过EL表达式的方式进行输出域对象所保存的值 -->
<%=pageContext.getAttribute("杨过") %> ==== ${杨过 }
<br/>
${郭靖 }
<!-- 通过域对象保存同一个键 不同的值 -->
<%
//存储值
pageContext.setAttribute("zkingzz", "西施");
request.setAttribute("zkingzz", "王昭君");
session.setAttribute("zkingzz", "貂蝉");
application.setAttribute("zkingzz", "杨玉环");
%>
<hr/>
<!-- 获取 -->
<!-- 通过jsp表达式的方式进行输出作用域保存的值 -->
<%=pageContext.getAttribute("zkingzz") %>
<br/>
<%=request.getAttribute("zkingzz") %>
<br/>
<%=session.getAttribute("zkingzz") %>
<br/>
<%=application.getAttribute("zkingzz") %>
<h3>通过EL表达式获取同一个键不同的值</h3>
${zkingzz }
<!-- 超链接跳转 属于重定向 -->
<p>
<a href = "demo3.jsp">跳转</a>
</p>
<!-- 转发 -->
<%-- <jsp:forward page="demo3.jsp"></jsp:forward> --%>
<!-- 通过EL表达式获取四个域对象分别保存的值 -->
<!-- EL表达式中提供了四个隐式域对象 -->
<hr/>
${pageScope.zkingzz }
<br/>
${requestScope.zkingzz }
<br/>
${sessionScope.zkingzz }
<br/>
${applicationScope.zkingzz }
<hr/>
<!-- EL表达式获取的值可以有哪些? -->
${123 }
${"123" }
${1==2 }
${"love"=="爱" }
equals
${"love" eq "爱" }
${1>2 }
<%
List<String> list = new ArrayList<String>();
list.add("zhangsan");
list.add("lisi");
session.setAttribute("list",list);
%>
${list }
<hr/>
<!-- 保存实体 -->
<%
Student stu = new Student("张三","男");
session.setAttribute("stu", stu);
%>
${sessionScope.stu.name }
<!-- empty 判断EL表达式中的变量是否存在 -->
${empty list }
一、域对象?
1.page域(pageContext):只能作用于当前页面,既不能用来做做转发的数据分享,也不能做重定向的数据分享。
2.request域:只能作用于同一个请求的数据共享,所以只能在请求的转发中使用。
3.session域:只能作用于一次对话中共享数据(一次对话:用户打开浏览器,浏览多个web站点后,关闭该浏览器),转发和重定向都可以使用
4.context域(application):只能在同一个web应用中使用。(全局的)
之所以他们是域对象,原因是他们都内置了map集合,都有setAttribute和getAttribute方法
域对象的作用:临时的存储有效的数据,四个作用域保存的值
域对象的范围:pageContext<request<session<application
代码如下(示例):
<!-- 通过jsp表达式的方式进行输出作用域保存的值 -->
<%=pageContext.getAttribute("杨过") %>
<br/>
<%=request.getAttribute("张无忌") %>
<br/>
<%=session.getAttribute("郭靖") %>
<br/>
<%=application.getAttribute("宋威") %>
<hr/>
<!--
EL表达式
属于JSP的一个基础语法,作用:让数据调用的更简单。
$ { }
-->
<h2>EL表达式获取域对象所保存的值</h2>
<!-- 通过EL表达式的方式进行输出域对象所保存的值 -->
<%=pageContext.getAttribute("杨过") %> ==== ${杨过 }
<br/>
${郭靖 }
<!-- 通过域对象保存同一个键 不同的值 -->
<%
//存储值
pageContext.setAttribute("zkingzz", "西施");
request.setAttribute("zkingzz", "王昭君");
session.setAttribute("zkingzz", "貂蝉");
application.setAttribute("zkingzz", "杨玉环");
%>
<hr/>
<!-- 获取 -->
<!-- 通过jsp表达式的方式进行输出作用域保存的值 -->
<%=pageContext.getAttribute("zkingzz") %>
<br/>
<%=request.getAttribute("zkingzz") %>
<br/>
<%=session.getAttribute("zkingzz") %>
<br/>
<%=application.getAttribute("zkingzz") %>
<h3>通过EL表达式获取同一个键不同的值</h3>
${zkingzz }
<!-- 超链接跳转 属于重定向 -->
<p>
<a href = "demo3.jsp">跳转</a>
</p>
<!-- 转发 -->
<%-- <jsp:forward page="demo3.jsp"></jsp:forward> --%>
<!-- 通过EL表达式获取四个域对象分别保存的值 -->
<!-- EL表达式中提供了四个隐式域对象 -->
<hr/>
${pageScope.zkingzz }
<br/>
${requestScope.zkingzz }
<br/>
${sessionScope.zkingzz }
<br/>
${applicationScope.zkingzz }
<hr/>
<!-- EL表达式获取的值可以有哪些? -->
${123 }
${"123" }
${1==2 }
${"love"=="爱" }
equals
${"love" eq "爱" }
${1>2 }
<%
List<String> list = new ArrayList<String>();
list.add("zhangsan");
list.add("lisi");
session.setAttribute("list",list);
%>
${list }
<hr/>
<!-- 保存实体 -->
<%
Student stu = new Student("张三","男");
session.setAttribute("stu", stu);
%>
${sessionScope.stu.name }
<!-- empty 判断EL表达式中的变量是否存在 -->
${empty list }
三、JSTL库
由JSP所提供的一套标准标签
--通用标签:set out remove
--条件标签:if if...else
--迭代标签:forEach for循环
JSTL库怎么使用
导入------taglib指令
代码如下(示例):
<!-- 通过JSTL库中的if标签实现一个登录案例 -->
<!--
已登录----显示当前的登录名
未登录 ----显示登录的表单
-->
<%
//获取
request.setCharacterEncoding("utf-8");
String username = request.getParameter("username");
if(username!=null){
Student student = new Student(username,"男");
session.setAttribute("student", student);
}
%>
<c:if test="${empty student }">
<form action = "demo4.jsp" method = "post">
账户 <input type = "text" name = "username"/>
<br/>
<br/>
密码 <input type = "password" name = "password"/>
<br/>
<br/>
<input type = "submit" value = "登录"/>
</form>
</c:if>
<c:if test="${not empty student }">
<h4>欢迎您回来!${student.username }</h4>
</c:if>
<!-- remove标签 移除 -->
<c:set var="bb" value="123456"></c:set>
移除前: <c:out value="${bb }"></c:out>
<!-- 移除 -->
<hr/>
<c:remove var="bb" />
移除后:<c:out value="${bb }"></c:out>
<!-- foreach循环标签 -->
<hr/>
<!--
sb 变量
begin 起始值
end 终值
step 每次增长2
varStatus 获取数据对应的行号(Y1阶段 J2EE 自定义JSP标签)
-->
<c:forEach var="sb" begin="1" end="100" step="2" varStatus="demo" >
${sb }----${demo.index }----${demo.count } <br/>
</c:forEach>
<br/>
<%
List<Student> myList = new ArrayList<Student>();
myList.add(new Student("张三1","男"));
myList.add(new Student("张三2","男"));
myList.add(new Student("张三3","男"));
myList.add(new Student("张三4","男"));
myList.add(new Student("张三5","男"));
session.setAttribute("myList", myList);
%>
<c:forEach items="${myList }" var="stu">
${stu.username } ${stu.sex }
</c:forEach>
总结