HzhJava框架搭建三:一个基于配置的spring程序
来源:互联网 发布:mac怎么退出qq 编辑:程序博客网 时间:2024/06/07 23:48
一个基于配置的简单spring程序
先让我们来看一下程序的整个目录结构吧,红色方框里的内容是我们这次添加的,其它的是在“HzhJava框架搭建二”中就已经准备好的。
Food.java文件
package com.sprmvc.bean;public class Food {private String favoriteFruit;public String getFavoriteFruit() {return favoriteFruit;}public void setFavoriteFruit(String favoriteFruit) {this.favoriteFruit = favoriteFruit;}}FoodController文件
package com.sprmvc.controller;import java.util.ArrayList;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.AbstractController;import com.sprmvc.bean.Food;public class FoodController extends AbstractController { @Override public ModelAndView handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception { List<Food> foolList = new ArrayList<Food>(); Food f1 = new Food(); f1.setFavoriteFruit("香蕉"); foolList.add(f1); Food f2 = new Food(); f2.setFavoriteFruit("苹果"); foolList.add(f2); Food f3 = new Food(); f3.setFavoriteFruit("橘子"); foolList.add(f3); return new ModelAndView("food-form", "food", foolList); } }food-form.jsp文件
<%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><html><head><title>Fruit page</title></head><body><h1>Fruit page</h1><c:forEach items="${food}" var="food"> <c:out value="${food.favoriteFruit}"/><br/> </c:forEach> </body></html>index.jsp文件
<%@ page language="java" pageEncoding="UTF-8"%> <html><head><title>第一个JSP程序</title></head><body><h1>Home page</h1><p>This is Home page.</p><p><a href="food-page">Food page</a> <br /></p></body></html>上面是程序运行的相关代码,相信大家都能很容易的看懂,就不多说了,下面是运行这些代码的配置文件,也是今天要讲的关于spring配置的具体实现。
1、首先我们需要配置一个叫做web.xml的文件,这个文件指定了由“SpringMvc的前端控制器”来响应http请求;指定了还需要加载哪些配置文件;配置上下文载入器;
<?xml version="1.0" encoding="UTF-8"?><web-app id="WebApp_ID" version="3.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <!-- SpringMVC的前端控制器 --> <!-- 当DispatcherServlet载入后,它将从一个XML文件中载入Spring的应用上下文,该XML文件的名字取决于<servlet-name> --> <!-- 这里DispatcherServlet将试图从一个叫做springmvc-servlet.xml的文件中载入应用上下文,其默认位于WEB-INF目录下 --> <!-- 所以ContextLoaderListener参数值也可写成<param-value>classpath:applicationContext-*.xml</param-value> --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- 使用ContextLoaderListener配置时,需要告诉它Spring配置文件的位置 --> <!-- 如果没有指定,上下文载入器会在/WEB-INF/applicationContext.xml中找Spring配置文件 --> <!-- 我们可以通过在Servlet上下文中设置contextConfigLocation参数,来为上下文载入器指定一个或多个Spring配置文件 --> <!-- 注意:contextConfigLocation参数是一个用逗号分隔的路径列表,其路径是相对于Web系统的根路径的 --> <context-param> <param-name>contextConfigLocation</param-name> <!-- <param-value>/WEB-INF/springmvc-servlet.xml</param-value> --> <param-value>/WEB-INF/springmvc-servlet.xml, /WEB-INF/applicationContext-*.xml</param-value> </context-param> <!-- 配置上下文载入器 --> <!-- 上下文载入器载入除DispatcherServlet载入的配置文件之外的其它上下文配置文件 --> <!-- 最常用的上下文载入器是一个Servlet监听器,其名称为ContextLoaderListener --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>2、springmvc-servlet.xml,是将前台请求和后台java代码关联起来的地方,这里配置一个简单的映射
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> <!-- 【配置映射处理器】 --> <!-- SpringMVC自带的映射处理器均实现了Spring的Ordered接口,这意味着我们可以在应用系统中声明多个处理器映射 --> <!-- 并且可以设置它们的优先级,这主要体现在order属性上,其值越小,则对应的该映射处理器的优先级越高 --> <!-- SimpleUrlHandlerMapping的order值比BeanNameUrlHandlerMapping的小 --> <!-- 这意味着DispatcherServlet在映射URL的时候,首先会咨询SimpleUrlHandlerMapping --> <!-- 只有在SimpleUrlHandlerMapping无法返回结果时,才咨询BeanNameUrlHandlerMapping --> <bean id="beanNameUrlMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"> <property name="order" value="1"/> </bean> <bean name="/food-page" class="com.sprmvc.controller.FoodController" /></beans>3、applicationContext-view.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" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> <!-- 【配置视图解析器】 --> <!-- InternalResourceViewResolver会在ModelAndView返回的视图名前加上prefix指定的前缀,再在最后加上suffix指定的后缀 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/pages/"/> <property name="suffix" value=".jsp"/> </bean> </beans>然后启动服务器,在浏览器的地址栏里输入http://localhost:8080/HzhJava/即可运行处这个简单的spring配置的程序。
0 0
- HzhJava框架搭建三:一个基于配置的spring程序
- HzhJava框架搭建四:一个基于注解的spring程序
- HzhJava框架搭建二:添加tomcat和spring运行一个简单web程序
- HzhJava框架搭建一:Eclipse+Maven创建一个web项目
- 基于注解的Spring MVC 框架搭建及配置详解
- 搭建一个spring mvc框架(三)
- 基于Struts+Spring+Hibernate的Web应用框架的搭建(三)
- 搭建一个简单的Spring MVC框架
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- 基于Spring框架的Shiro配置
- 优先队列用法
- 黑马程序员——GUI
- Android自定义控件——开源组件SlidingMenu的项目集成
- VirtualBox添加共享文件夹支持(客机Ubuntu14.10)
- Git的一次使用流程
- HzhJava框架搭建三:一个基于配置的spring程序
- HQL 查询
- 程序性能优化-深入理解计算机系统
- 黑马程序员----------------------------------------------C语言易忘基础知识点一
- POJ 3723 Conscription (最大生成树)
- FFmpeg处理过程(代码说明)
- 面向对象(成员变量和局部变量)
- Spark MLlib[学习计划]
- Dominating Patterns(Aho_corasick入门)