javaBean

在Eclipse中创建一个名为chapterO7的Web项目,然后在项目的src目录下创建包pidan.servlet,在包中创建一个用于存储用户名和密码的类MyServlet

package pidan.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;

/**
 * Servlet implementation class MyServlet
 */
@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);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

然后,在WebContent目录下编写一个名为myjsp的JSP文件,使用该文件来输出MyServlet所存储的信息

<%@ 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的文件

<%@ 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的文件

<%@ 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="提交"/>&nbsp;&nbsp;
		<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的文件

<%@ 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页面

 JSTL

将jstl.jar和standard.jar这两个文件复制到chapter07项目的lib目录下

 在chapterO7项目的WebContent目录下创建一个名为c_out1.jsp的文件

<%@ 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>

启动Tomcat服务器,在浏览器访问c_out1.jsp页面

 <c:forEach>标签

  • var属性用于指定将当前迭代到的元素保存到page域中的名称。
  • items属性用于指定将要迭代的集合对象。
  • varStatus属性用于指定当前迭代状态信息的对象保存到page域中的名称。
  • begin属性用于指定从集合中第几个元素开始进行迭代,begin的索引值从0开始。如果没有指定items属性,就从begin指定的值开始迭代,直到迭代结束为止。
  • step属性用于指定迭代的步长,即迭代因子的增量。

在项目的WebContent目录下,创建一个名为c_foreach1.jsp的文件

<%@ 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属性

<%@ 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}&nbsp;
	</c:forEach>
</body>
</html>

启动Tomcat服务器,在浏览器访问c_foreach2.jsp页面

 <c:forEach>标签的varStatus属性用于设置一个javax.servlet.jsp.jstl.core.LoopTagStatus类型的变量,这个变量包含了从集合中取出元素的状态信息。使用<c:forEach>标签的varStatus属性可以获取以下信息。

  • count:表示元素在集合中的序号,从1开始计数。
  • index:表示当前元素在集合中的索引,从0开始计数。
  • first:表示当前是否为集合中的第1个元素。
  • last:表示当前是否为集合中的最后一个元素。

 在项目的WebContent目录下,创建一个名为c_foreach3.jsp的文件

<%@ 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>

启动Tomcat服务器,在浏览器访问c_foreach3.jsp页面

<c:url>标签

  • value属性用于指定构造的URL。
  • context属性用于指定导入同一个服务器下其他Web应用的名称。
  • var属性用于指定将构造的URL地址保存到域对象的属性名称。
  • scope属性用于指定将构造好的URL保存到域对象中。

在项目的WebContent目录下新建一个名为c_url.jsp的文件

<%@ 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>

 启动Tomcat服务器,在浏览器访问c_url.jsp页面

       

        本章主要讲解了JavaBean、BeanUtils工具、EL表达式的基本语法、常见EL表达式隐式对象、JSTL的下载和使用以及JSTL常见标签库等知识。通过本章的学习,读者能够了解什么是JavaBean,什么是EL表达式和JSTL,可以熟练地掌握通过BeanUtils工具访问JavaBean、EL表达式的基本语法的格式、EL的常见隐式对象以及JSTL中的常见Core标签库等操作。 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐