javaBean
在Eclipse中创建一个名为chapterO7的Web项目,然后在项目的src目录下创建包pidan.servlet,
在包中创建一个用于存储用户名和密码的类MyServlet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| package baixiao.servlet; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
@WebServlet("/MyServlet") public class MyServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setAttribute("username", "dashuju"); request.setAttribute("password", "123456"); RequestDispatcher dis=request.getRequestDispatcher("/myjsp.jsp"); dis.forward(request, response); }
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }****
|
然后,在WebContent目录下编写一个名为myjsp的JSP文件,使用该文件来输出MyServlet所存储的信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| **<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <%=(String) request.getAttribute("username") %><br/> <%=(String) request.getAttribute("password") %><br/> <hr/> 使用EL表达式:<br /> ${username}<br /> ${password}<br /> </body> </html>**
|
最后,部署Web项目chapter07,启动Tomcat 服务器,在浏览器访问MyServlet页面
在项目的WebContent目录下,新建一个名为scopes.jsp的文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% pageContext.setAttribute("userName","HYS"); %> <% request.setAttribute("bookName","dashuju2004"); %> <% session.setAttribute("userName","Java Web"); %> <% application.setAttribute("bookName", "Java 基础"); %> ${pageScope.userName }<br /> ${requestScope.bookName }<br /> ${sessionScope.userName }<br /> ${applicationScope.bookName }<br /> ${userName } </body> </html>
|
启动Tomcat 服务 器, 在浏览器访问scopes.jsp页面
在项目的WebContent目录下,新建一个名为param.jsp的文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="${pageContext.request.contextPath}/param.jsp"> num1: <input type="text" name="num1"><br /> num2: <input type="text" name="num"><br /> num3: <input type="text" name="num"><br /> <br /> <input type="submit"value="提交"/> <input type="submit"value="重置"/><hr/> num1: ${param.num1}<br /> num2: ${paramValues.num[0]}<br /> num3: ${paramValues.num[1]}<br /> </form> </body> </html>
|
启动Tomcat 服务器,在浏览器访问param.jsp页面,浏览器窗口中会显示一个表单,在这个表单中输入3个数字,分别为10、20、30,然后单击【提交】按钮
在项目的WebContent目录下,新建一个名为cookie.jsp的文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% response.addCookie(new Cookie("uesrName","pidan")); %> Cookie对象的信息:<br /> ${cookie.userName }<br /> Cookie对象的名称和值:<br /> ${cookie.userName.name }=${cookie.userName.value } </body> </html>**
|
启动Tomcat服务器,在浏览器访问cookie.jsp页面,由于是浏览器第1次访问cookie.jsp页面,
此时,服务器还没有接收到名为userName的Cookie信息,因此,浏览器窗口中不会显示 。
接下来刷新浏览器, 第2次访问cookie.jsp页面
在chapterO7项目的WebContent目录下创建一个名为c_out1.jsp的文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <%--第1个out标签--%> userName属性的值为: <c:out value="${param.username}" default="unknown"/><br /> <%--第2个out标签--%> userName属性的值为: <c:out value="${param.username}"> unknown </c:out> </body> </html>****
|
<c:forEach>标签
var属性用于指定将当前迭代到的元素保存到page域中的名称。
items属性用于指定将要迭代的集合对象。
varStatus属性用于指定当前迭代状态信息的对象保存到page域中的名称。
begin属性用于指定从集合中第几个元素开始进行迭代,begin的索引值从0开始。如果没有指定items属性,就从begin指定的值开始迭代,直到迭代结束为止。
step属性用于指定迭代的步长,即迭代因子的增量。
在项目的WebContent目录下,创建一个名为c_foreach1.jsp的文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| **<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.*"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% String[] fruits ={"apple","orange","grape","banana"}; request.setAttribute("ff", fruits); %> String数组中的元素: <br /> <c:forEach var="name" items="<%=fruits %>"> ${name}<br /> </c:forEach> <% Map userMap = new HashMap(); userMap.put("Tom","123"); userMap.put("Make","123"); userMap.put("Lina","123"); request.setAttribute("map", userMap); %> <hr /> HashMap集合中的元素: <br /> <c:forEach var="entry" items="<%=userMap %>"> key:${entry.key}-------${entry.value}<br /> </c:forEach> </body> </html>**
|
启动Tomcat服务器,在浏览器访问c_foreach1.jsp页面

在项目的WebContent目录下,创建一个名为c_foreach2.jsp的文件,该文件中使用了
<c:forEach>标签的begin、end和step属性
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.*"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> colorsList集合(指定迭代范围和步长) <br /> <% List colorsList=new ArrayList(); colorsList.add("red"); colorsList.add("yellow"); colorsList.add("blue"); colorsList.add("green"); colorsList.add("black"); colorsList.add("gray"); request.setAttribute("list", colorsList); %> <c:forEach var="aa" items="${list }" begin="0" end="5" step="2"> ${aa} </c:forEach> </body> </html>
|
<c:forEach>标签的varStatus属性用于设置一个javax.servlet.jsp.jstl.core.LoopTagStatus类型的变量,这个变量包含了从集合中取出元素的状态信息。使用<c:forEach>标签的varStatus属性可以获取以下信息。
count:表示元素在集合中的序号,从1开始计数。
index:表示当前元素在集合中的索引,从0开始计数。
first:表示当前是否为集合中的第1个元素。
last:表示当前是否为集合中的最后一个元素。
在项目的WebContent目录下,创建一个名为c_foreach3.jsp的文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.*"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body style="text-align: center"> <% List userList = new ArrayList(); userList.add("Tom"); userList.add("Make"); userList.add("Lina"); request.setAttribute("users",userList); %> <table border="1"> <tr> <td>序号</td> <td>索引</td> <td>是否为第一个索引</td> <td>是否为最后一个索引</td> <td>元素的值</td> </tr> <!-- varStatus属性 --> <c:forEach var="bb" items="${users }" varStatus="vv"> <tr> <td>${vv.count}</td> <td>${vv.index}</td> <td>${vv.first }</td> <td>${vv.last }</td> <td>${bb }</td> </tr> </c:forEach> </table> </body> </html>
|
<c:url>标签
value属性用于指定构造的URL。
context属性用于指定导入同一个服务器下其他Web应用的名称。
var属性用于指定将构造的URL地址保存到域对象的属性名称。
scope属性用于指定将构造好的URL保存到域对象中。
在项目的WebContent目录下新建一个名为c_url.jsp的文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> 使用绝对路径构造URL:<br /> <c:url var="absoulateURL" value="http://localhost:8888/chapter07/login.html"> <c:param name="username" value="张三"></c:param> <c:param name="country" value="中国"></c:param> </c:url> <a href="${absoulateURL }">绝对路径登录页面</a> <hr /> 使用相对路径:<br /> <c:url var="risistURL" value="login.html?username=张三&country=中国"></c:url> <a href="${risistURL }">相对路径登录页面</a> </body> </html>
|
本章主要讲解了JavaBean、BeanUtils工具、EL表达式的基本语法、常见EL表达式隐式对象、JSTL的下载和使用以及JSTL常见标签库等知识。
通过本章的学习,读者能够了解什么是JavaBean,什么是EL表达式和JSTL,可以熟练地掌握通过BeanUtils工具访问JavaBean、EL表达式的基本语法的格式、
EL的常见隐式对象以及JSTL中的常见Core标签库等操作。