业务逻辑 依赖注入
框架结构图
package com.dragon.entity;
/**
* 商品类
* @author Administrator
*
*/
public class ProductInfo {
/**
* 商品描述
*/
private String description;
/**
* 价格
*/
private Double price;
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
public String toString() {
StringBuffer buffer = new StringBuffer();
buffer.append("Description: " + description + ";");
buffer.append("Price: " + price);
return buffer.toString();
}
}
业务层service com.dragon.service
package com.dragon.service;
import java.util.List;
import com.dragon.entity.ProductInfo;
public interface ProductManager {
/**
* 增大价格
* @param percentage
*/
public void increasePrice(int percentage);
/**
* 获得所有的商品
* @return
*/
public List<ProductInfo> getProductInfoList();
}
业务层的实现类 serviceImpl com.dragon.service.impl
package com.dragon.service.impl;
import java.util.List;
import com.dragon.entity.ProductInfo;
import com.dragon.service.ProductManager;
public class ProductManagerImpl implements ProductManager {
/**
* 创建商品的集合
*/
private List<ProductInfo> productList;
public List<ProductInfo> getProductList() {
return productList;
}
public void setProductList(List<ProductInfo> productList) {
this.productList = productList;
}
public List<ProductInfo> getProductInfoList() {
// TODO Auto-generated method stub
return productList;
}
public void increasePrice(int percentage) {
// TODO Auto-generated method stub
if (productList != null) {
for (ProductInfo product : productList) {
double newPrice = product.getPrice().doubleValue() *
(100 + percentage)/100;
product.setPrice(newPrice);
}
}
}
}
控制器类 com.dragon.controller
package com.dragon.controller;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import com.dragon.service.ProductManager;
/**
* 存货清单控制器类
* @author Administrator
*
*/
public class InventoryController implements Controller {
private ProductManager productManager;
public ProductManager getProductManager() {
return productManager;
}
public void setProductManager(ProductManager productManager) {
this.productManager = productManager;
}
public ModelAndView handleRequest(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
// TODO Auto-generated method stub
String now = (new java.util.Date()).toString();
//创建Map对象
Map<String,Object> models = new HashMap<String,Object>();
//将数据存入map中
models.put("productList", this.productManager.getProductInfoList());
models.put("now", now);
return new ModelAndView("show", "models",models);
}
}
Springmvc配置文件 springapp-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- the application context definition for the springapp DispatcherServlet -->
<!-- 添加一个bean入口 指定其一个类作为他的入口 -->
<bean name="/helloAction.do" class="com.dragon.controller.HelloAction">
<!-- 其中的name为 控制器类定义的变量successView value为需要访问的路径 -->
<property name="successView" value="index"></property>
</bean>
<bean id="productManager" class="com.dragon.service.impl.ProductManagerImpl">
<!-- 注入 对集合中注入对象-->
<property name="productList">
<list>
<ref bean="product1"/>
<ref bean="product2"/>
<ref bean="product3"/>
</list>
</property>
</bean>
<!--property 用来指定需要容器注入的属性 一下为设置值的注入 -->
<bean id="product1" class="com.dragon.entity.ProductInfo">
<property name="description" value="Lamp"/>
<property name="price" value="5.75"/>
</bean>
<bean id="product2" class="com.dragon.entity.ProductInfo">
<property name="description" value="Table"/>
<property name="price" value="75.25"/>
</bean>
<bean id="product3" class="com.dragon.entity.ProductInfo">
<property name="description" value="Chair"/>
<property name="price" value="22.79"/>
</bean>
<bean name="/show.do" class="com.dragon.controller.InventoryController">
<!-- 注入productManager -->
<property name="productManager" ref="productManager"></property>
</bean>
<!-- 为了减少代码量 声明一个视图解决的入口 配置view -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 提供jstl支持 -->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
<!-- 如果指定了后缀名和前缀名的时候 注入一个参数需要跳转的View地址 就不需要 书写后缀名称 系统则自动匹配-->
<!-- 前缀 -->
<property name="prefix" value="/"></property>
<!-- 后缀 -->
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- 配置Springmvc -->
<!-- spring-Mvc核心控制器 -->
<servlet>
<!-- 其中的servlet-name 可以自己定义 但是如果是自己定义 创建的spring配置文件的名字必须是 (servlet-name)-servlet.xml
系统会自动加载文件名为这个的xml配置文件 否则自己就需要指定文件名称进行加载
-->
<servlet-name>springapp</servlet-name>
<!-- 核心 -->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 访问的文件名是以do结尾的当然 也可以是其他的什么比如 *.jsp/*.htm /*.action ... -->
<servlet-mapping>
<servlet-name>springapp</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
show.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'show.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<h1></h1>
<!-- 获得当前的时间 -->
<p> <c:out value="${models.now}"/></p>
<h3>Products</h3>
<!-- 使用循环显示数据 -->
<c:forEach items="${models.productList}" var="prod">
<c:out value="${prod.description}"/> <i>$<c:out value="${prod.price}"/></i><br><br>
</c:forEach>
</body>
</html>
访问的方法
http://localhost:8080/Spring_MVC/show.do 就可以实现 其他的还在研究中
相关推荐
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。Spring MVC4是当前zuixin的版本,在众多特性上有了进一步的提升。, 在精通Spring...
Spring MVC 是一个基于Java的轻量级Web应用框架,它为开发者提供了模型-视图-控制器(MVC)架构,使开发人员能够更好地组织和分离应用程序的业务逻辑、数据处理和用户界面。Spring MVC是Spring框架的一个核心组件,...
Spring MVC 是一款强大的Java Web开发框架,用于构建高效、可维护和模块化的Web应用程序。它作为Spring框架的一部分,提供了一种优雅的方式来处理HTTP请求和响应,使得开发者可以专注于业务逻辑而不是底层实现。在这...
Spring MVC是Spring框架的一个核心模块,专为构建Web应用程序而设计。它提供了模型-视图-控制器(MVC)架构,使开发者能够有效地分离业务逻辑、数据处理和用户界面。在"Spring MVC 4.2.3"版本中,我们看到了一系列的...
Spring MVC是Spring框架的一个核心模块,专为构建Web应用程序提供模型-视图-控制器(MVC)架构。在Spring MVC 4.0版本中,它引入了许多改进和新特性,以提升开发效率和应用程序的性能。 1. **依赖注入**:Spring ...
Spring MVC 是一个基于Java的轻量级Web应用框架,它是Spring框架的重要组成部分,主要用于构建Web应用程序的后端控制器。这个教程“Spring MVC - A Tutorial”旨在帮助开发者深入理解和掌握Spring MVC的核心概念和...
三、Spring MVC核心流程图:描述了Spring MVC处理请求的流程,包括前端控制器接收请求,经过分发器分发给具体的控制器,然后由控制器处理业务逻辑,最后将结果返回给用户。 四、Spring MVC DispatcherServlet说明:...
Spring MVC 是一个强大的Java Web开发框架,它是Spring框架的一部分,专为构建高度可扩展和模块化的Web应用程序而设计。在2015年的版本中,Spring MVC 4已经相当成熟,提供了许多特性来简化开发流程并提高开发效率。...
这是一个基于Spring MVC、Mybatis和Spring框架实现的个人博客系统,涵盖了Web开发中的后端架构设计、数据库管理和前端展示等多个方面。以下将详细介绍这个系统的关键知识点: **1. Spring MVC** Spring MVC是Spring...
Spring MVC 是一个基于 Java 的轻量级Web应用框架,它为构建模型-视图-控制器(MVC)架构的应用程序提供了强大的支持。在本压缩包中包含了一系列与Spring MVC相关的jar文件,这些文件是构建和运行Spring MVC项目所...
Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一个重要模块,主要用于构建 Web 应用程序的后端控制层。这个框架提供了模型-视图-控制器(MVC)设计模式的实现,简化了Java Web应用的开发...
Spring MVC是Spring框架的一个核心模块,专用于构建Web应用程序。这个"Spring MVC使用Demo"提供了实践操作,帮助开发者深入理解Spring MVC的开发环境配置、注解的使用以及工作原理。 首先,Spring MVC的设计模式...
Spring MVC 是一个基于Java的轻量级Web应用框架,它是Spring框架的重要组成部分,主要用于构建Web应用程序的后端控制器。Spring MVC的设计目标是提供一个清晰的组件化架构,使得开发者可以独立地开发和测试控制器、...
在本项目中,我们主要探讨的是如何利用Spring MVC和Spring Security框架构建一个基本的无数据库登录系统。Spring MVC是Spring框架的一部分,用于处理Web应用程序的请求-响应模型,而Spring Security则是一个强大的...
Spring MVC的核心是MVC模式,它将应用程序分为三个主要部分:模型、视图和控制器。模型负责管理应用程序的数据和业务逻辑,视图负责呈现数据,而控制器处理用户的请求,协调模型和视图。 **2. 处理器映射器与处理器...
Spring MVC 和 MyBatis 是两个在Java Web 开发中广泛使用的框架。Spring MVC 作为Spring框架的一部分,负责处理HTTP请求并转发到相应的业务逻辑,而MyBatis则是一个轻量级的持久层框架,用于简化数据库操作。整合这...
Spring MVC 是一款基于Java的轻量级Web应用框架,它为构建RESTful应用程序提供了强大的支持。这个"Spring MVC 简单Demo"旨在帮助初学者理解如何设置和运行一个基本的Spring MVC项目。下面,我们将深入探讨Spring MVC...