`

java-例子:MVC模式,用jstl和el输出数据到jsp页面.

    博客分类:
  • java
阅读更多
例子:利用session完成购物车.

domain:
package cn.itcast.cd.jsp.domain;

public class User {
	private String name;
	private String password;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	@Override
	public String toString() {
		return "User [name=" + name + ", password=" + password + "]";
	}
}

package cn.itcast.cd.jsp.domain;

import java.util.ArrayList;
import java.util.List;

public class ShoppingCar {
	private List<ShoppingCarItem> list = new ArrayList<ShoppingCarItem>();

	public List<ShoppingCarItem> getList() {
		return list;
	}
	
	public void add(ShoppingCarItem item){
		list.add(item);
	}
	
	public void remove(String id){
		for (ShoppingCarItem item : list) {
			if (id.equals(item.getId())){
				list.remove(item);
				break;
			}
		} 
	}
}

package cn.itcast.cd.jsp.domain;

public class ShoppingCarItem {
	private String id;
	private String name;
	private double price;
	private Integer number;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	public Integer getNumber() {
		return number;
	}
	public void setNumber(Integer number) {
		this.number = number;
	}
}

package cn.itcast.cd.utils;

public class Utils {
	public static boolean hasLength(String str) {
		return str != null && !"".equals(str);
	}
}



servlet:
package cn.itcast.cd.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import cn.itcast.cd.jsp.domain.User;

/**
 * Servlet implementation class LoginServlet
 */
public class LoginServlet extends HttpServlet {
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		
		//获取参数
		String name = request.getParameter("name");
		String password = request.getParameter("password");
		
		//封装对象
		User user = new User();
		user.setPassword(password);
		user.setName(name);		
		
		HttpSession session = request.getSession();
		session.setAttribute("user", user);
		
		//显示到页面
		RequestDispatcher dispatcher = request.getRequestDispatcher("/welcome.jsp");
		dispatcher.forward(request, response);
		
	}

}

package cn.itcast.cd.servlet;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import cn.itcast.cd.jsp.domain.ShoppingCar;
import cn.itcast.cd.jsp.domain.ShoppingCarItem;

/**
 * Servlet implementation class BuyServlet
 */
public class BuyServlet extends HttpServlet {

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		String name = request.getParameter("name");
		String number = request.getParameter("number");
		
		ShoppingCarItem item = new ShoppingCarItem();
		item.setName(name);
		item.setNumber(Integer.parseInt(number));
		
		HttpSession session = request.getSession();
		ShoppingCar car = (ShoppingCar)session.getAttribute("car");
		if (car == null) {
			//car为空,则创建一个购物车,并放到session中,否则,session中有购物车,不需要再添加到session中.
			car = new ShoppingCar();
			session.setAttribute("car", car);
		}
		car.add(item);
		
		RequestDispatcher dispatcher = request.getRequestDispatcher("/car.jsp");
		dispatcher.forward(request, response);
		
	}

}

package cn.itcast.cd.servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import cn.itcast.cd.jsp.domain.ShoppingCar;
import cn.itcast.cd.jsp.domain.ShoppingCarItem;

/**
 * Servlet implementation class ShowServlet
 */
public class ShowServlet extends HttpServlet {
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		
		HttpSession session = request.getSession();
		ShoppingCar car = (ShoppingCar)session.getAttribute("car");
		
		RequestDispatcher dispatcher = request.getRequestDispatcher("/car.jsp");
		dispatcher.forward(request, response);
	}

}


登陆页面:
<%@ 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 PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="/login" method="post">	
		<table border="0" cellpadding="3" cellspacing="0">
			<tr>
				<td>用户名:</td>
				<td><input type="text" name="name"/></td>
			</tr>
			<tr>
				<td>密&emsp;码:</td>
				<td><input type="password" name="password"/></td>
			</tr>
			<tr>
				<td colspan="2" align="center">
					<input type="submit" value="登 陆"/>
				</td>
			</tr>
		</table>
	</form>
</body>
</html>



欢迎页面:
<%@ 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 PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	欢迎回来!<font color="blue"><b><i>${sessionScope.user.name}</i></bi></font><br/>
	<a href="/buy.jsp">开始购物</a>
	<a href="/show">管理购物车</a>
</body>
</html>


购买页面:
<%@ 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 PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="/buy" method="post">	
		<table border="0" cellpadding="3" cellspacing="0">
			<tr>
				<td>商品名称:</td>
				<td>
					<select name="name">
						<option>鼠标</option>
						<option>键盘</option>
						<option>显示器</option>						
					</select>
				</td>
			</tr>
			<tr>
				<td>数&emsp;&emsp;量:</td>
				<td><input type="text" name="number"/></td>
			</tr>
			<tr>
				<td colspan="2" align="center">
					<input type="submit" value="购买"/>
				</td>
			</tr>
		</table>
	</form>
</body>
</html>

<%@ 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 PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
 	<c:choose>
 		<c:when test="${empty sessionScope.car}">
 			购物车没有任何商品......
 		</c:when>
 		<c:otherwise>
 			
		<table>
			<tr>
				<th>商品名称</th>
				<th>商品数量</th>
			</tr>
			<c:forEach items="${sessionScope.car.list}" var="item">
				<tr>
					<td>${item.name }</td>
					<td>${item.number }</td>
				</tr>
			</c:forEach>
		</table>
		</c:otherwise>
	</c:choose>
	<form action="/buy.jsp" method="post">
		<input type
		="submit" value="继续购物"/>
	</form>
</body>
</html>


分享到:
评论

相关推荐

    动态网页JSP实验:MVC模式

    JSP页面可以通过EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)来访问模型中的数据。 4. **整合三者**:在JSP中通过请求转发或包含指令将模型数据传递给视图。控制器会将处理结果转发...

    jstl-1.2.jar standard-1.1.2.jar

    在实际应用中,将这两个库添加到项目的类路径中,可以方便地在JSP页面上使用JSTL标签,比如使用`&lt;c:forEach&gt;`进行迭代,`&lt;c:if&gt;`进行条件判断,或者使用`&lt;fmt:formatDate&gt;`进行日期格式化。这极大地提高了代码的...

    JSTL包 jstl-1.2.jar standard.jar

    使用JSTL和EL,开发者可以避免在JSP页面中编写过多的Java脚本,从而实现“视图”和“逻辑”的分离,更符合MVC(Model-View-Controller)设计模式。这有利于提升代码的可维护性和团队协作效率。 集成JSTL到项目中,...

    包含jstl-api-1.2.1.jar,jstl-1.2.jar,jstl-impl-1.2.jar,standard-1.1.2.jar

    - **减少Java代码**:JSTL减少了JSP页面中的Java代码量,使得页面更加整洁,遵循了MVC设计模式。 - **重用性**:JSTL标签可以重复使用,提高代码复用率。 在实际应用中,这些jar包通常会添加到项目的类路径中,以...

    Java-JSP-Servlet员工信息管理系统Mysql数据库+JSTL(可作为Java课设毕业设计)

    系统架构通常采用MVC(Model-View-Controller)模式,其中Model代表数据模型,处理业务逻辑和数据访问;View负责用户界面展示;Controller(Servlet)处理用户请求,协调Model和View之间的交互。整个系统通过HTTP...

    jstl-1.1.2.jar(及源码)、standard-1.1.2.jar(及源码)

    使用JSTL可以使得JSP页面更加清晰,遵循MVC设计模式,提高代码的可读性和可维护性。此外,由于JSTL是标准库,这意味着它的兼容性和社区支持都非常好。 8. **注意事项** 虽然JSTL提供了许多功能,但并不是所有任务...

    jstl.jar和standard.jar包.zip

    总的来说,`jstl.jar` 和 `standard.jar` 在Java Web开发中起着至关重要的作用,它们帮助开发者编写更清晰、更易于维护的JSP页面,通过JSTL标签和EL表达式来处理常见的页面逻辑,使得页面代码更加符合MVC(Model-...

    jstl.jar,jstl-1.2.jar,jstl-api-1.2.jar

    JSTL的使用大大简化了JSP页面的编写,使得代码更加清晰,更符合MVC设计模式,让开发者能够专注于业务逻辑而不是页面呈现细节。在实际开发中,JSTL常常与EL(Expression Language)一起使用,提供更强大的数据绑定和...

    Java-JSTL(JSP标准标签库)介绍

    Java-JSTL,全称JavaServer Pages Standard Tag Library,是Java服务器页面标准标签库,它为JSP开发者提供了一系列预定义的、用于处理常见任务的标签。这些标签旨在简化JSP开发,提高代码的可读性和可维护性,降低与...

    JSTL1.2.5 taglibs-standard-jstlel-1.2.5.jar

    在实际应用中,JSTL的使用能够显著提高JSP页面的可维护性和可读性,因为它将业务逻辑和显示逻辑分离,遵循了MVC(Model-View-Controller)设计模式。通过结合EL,开发者可以更加便捷地处理数据和控制页面流,使得JSP...

    JSP源码——jsp+servlet+javaBean实现MVC_jspmvc.zip

    【JSP源码——jsp+servlet+javaBean实现MVC】是基于Java Web技术构建的一种经典MVC(Model-View-Controller)模式的应用实例。在Web开发中,MVC模式被广泛采用,它将应用程序的业务逻辑、数据处理和用户界面分离,...

    jstl和el的基础

    总之,JSTL和EL的结合使用,能够极大地提升JSP页面的可维护性和效率,让代码更加简洁,更符合MVC设计模式,从而降低开发和维护的复杂度。在实际开发中,应当充分利用这两个工具来提高代码质量。

    java项目 mvc模式 jsp

    学习这个项目,你可以了解如何在Java Web应用中实现MVC模式,包括Servlet的生命周期、请求响应处理,JSP的EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)的使用,以及如何设计和组织...

    jstl.jar,standard.jar

    使用JSTL可以使得JSP页面更加整洁,将业务逻辑与展示逻辑分离,符合MVC设计模式。 **standard.jar**是另一个关键组件,它是JSTL依赖的Tomcat提供的Java Expression Language (EL)实现,名为Tomcat EL。EL是一种轻量...

    jstl.jar+standard.jar

    使用JSTL可以显著提高代码的可读性和可维护性,因为它将业务逻辑从视图层(JSP页面)移出,遵循了MVC(Model-View-Controller)设计模式。JSTL的核心库文件就是jstl.jar,其中包含了一系列的标签实现。 2. Standard...

    JSP+Struts+JSTL+EL学习实例

    2. **JSP页面设计**:学习如何在JSP页面中使用JSTL标签(如`&lt;c:forEach&gt;`、`&lt;fmt:formatDate&gt;`等)和EL表达式(如`${}`)进行数据处理和展示。 3. **Action和Service层设计**:查看Action类如何接收请求,调用...

    JSP+Servlet+JSTL--学生成绩管理系统..

    这个系统利用了Java服务器页面(JSP)、Servlet和JavaServer Pages Standard Tag Library(JSTL)等技术,构建在MySQL数据库之上,提供了数据存储和查询的功能。 首先,JSP是Java的一种动态网页技术,它允许开发者...

    jstl-1.1.0.jar和jstl-1.2.0.jar

    **JSTL(JavaServer Pages Standard Tag Library)**是Java Web开发中的一种标准标签库,它为JSP页面提供了一套方便使用的标签,用于简化HTML和Java代码的结合,提高开发效率。标题提到的`jstl-1.1.0.jar`和`jstl-...

    JSTL和EL帮助文档

    使用JSTL可以减少在JSP页面中直接编写Java脚本,遵循MVC(Model-View-Controller)设计模式,提高了代码的可读性和可维护性。JSTL主要由以下几个核心模块组成: 1. **Core**: 提供基本的控制结构,如循环、条件判断...

    jsp实验-用java实现MVC模式的管理系统

    【标题】"jsp实验-用java实现MVC模式的管理系统"揭示了本次实验的核心内容,即使用Java语言和JSP技术构建一个基于MVC(Model-View-Controller)设计模式的管理信息系统。这个系统旨在帮助初学者理解并实践MVC模式在...

Global site tag (gtag.js) - Google Analytics