Spring MVC 入门示例

本文介绍了SpringMVC的基本配置及使用方法。包括项目搭建步骤、web.xml配置、MVC控制配置文件设置、控制器实现及视图展示。通过示例演示了如何处理HTTP请求并返回动态内容。

为了简单,将spring-framework中dist下的所有jar包拷贝到项目的WEB-INF/lib目录下
需要添加Apache commons logging日志,此处使用的是commons.logging

 

web.xml中添加如下配置:

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  5.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  6.     <welcome-file-list>  
  7.         <welcome-file>index.jsp</welcome-file>  
  8.     </welcome-file-list>  
  9.     <session-config>  
  10.         <session-timeout>30</session-timeout>  
  11.     </session-config>  
  12.     <filter>  
  13.         <filter-name>CharacterEncodingFilter</filter-name>  
  14.         <filter-class>  
  15.             org.springframework.web.filter.CharacterEncodingFilter  
  16.         </filter-class>  
  17.         <init-param>  
  18.             <param-name>encoding</param-name>  
  19.             <param-value>utf-8</param-value>  
  20.         </init-param>  
  21.         <init-param>  
  22.             <param-name>forceEncoding</param-name>  
  23.             <param-value>true</param-value>  
  24.         </init-param>  
  25.     </filter>  
  26.     <filter-mapping>  
  27.         <filter-name>CharacterEncodingFilter</filter-name>  
  28.         <url-pattern>/*</url-pattern>  
  29.     </filter-mapping>  
  30.     <servlet>  
  31.         <servlet-name>dispatcherServlet</servlet-name>  
  32.         <servlet-class>  
  33.             org.springframework.web.servlet.DispatcherServlet  
  34.         </servlet-class>  
  35.         <init-param>  
  36.             <param-name>contextConfigLocation</param-name>  
  37.             <param-value>/WEB-INF/spring/*.xml</param-value>  
  38.         </init-param>  
  39.         <load-on-startup>1</load-on-startup>  
  40.     </servlet>  
  41.     <servlet-mapping>  
  42.         <servlet-name>dispatcherServlet</servlet-name>  
  43.         <url-pattern>*.do</url-pattern>  
  44.     </servlet-mapping>  
  45. </web-app>  

以上配置已经增加了由spring提供的编码过滤器来解决乱码问题

 

编写MVC控制配置文件mvc-config.xml,该文件在WEB-INF的spring文件下,而web.xml中已经配置加载该文件夹下的所有xml文件

Java代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xmlns:p="http://www.springframework.org/schema/p"  
  5.     xmlns:context="http://www.springframework.org/schema/context"  
  6.     xsi:schemaLocation="  
  7.         http://www.springframework.org/schema/beans  
  8.         http://www.springframework.org/schema/beans/spring-beans.xsd  
  9.         http://www.springframework.org/schema/context  
  10.         http://www.springframework.org/schema/context/spring-context.xsd">  
  11.   
  12.     <!-- prefix和suffix:查找视图页面的前缀和后缀(前缀[逻辑视图名]后缀)  
  13.         比如传进来的逻辑视图名为hello,则该该jsp视图页面应该存放在“WEB-INF/jsp/hello.jsp” -->  
  14.     <bean  
  15.         class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  16.         <property name="prefix" value="/jsp/" />  
  17.         <property name="suffix" value=".jsp" />  
  18.     </bean>  
  19.   
  20.     <bean name="/hello.do" class="test.HelloWorldController" />  
  21. </beans>  

 

编写控制的类,该类接受参数,设置该参数为视图数据

Java代码   收藏代码
  1. package test;  
  2. import javax.servlet.http.HttpServletRequest;  
  3. import javax.servlet.http.HttpServletResponse;  
  4. import org.springframework.web.servlet.ModelAndView;  
  5. import org.springframework.web.servlet.mvc.Controller;  
  6. // http://localhost:8080/spring/hello.do?user=java  
  7. public class HelloWorldController implements Controller{  
  8.     public ModelAndView handleRequest(HttpServletRequest request,  
  9.             HttpServletResponse response) {  
  10.         ModelAndView mv = new ModelAndView();  
  11.         // 添加模型数据 可以是任意的POJO对象  
  12.         mv.addObject("user", request.getParameter("user"));  
  13.         // 设置逻辑视图名,视图解析器会根据该名字解析到具体的视图页面  
  14.         mv.setViewName("hello");  
  15.         return mv;  
  16.     }  
  17. }  

 

视图使用JSP,页面很简单。在WebRoot下新建文件夹jsp,新建jsp命名为hello.jsp。

Java代码   收藏代码
  1. <%@ page language="java" pageEncoding="UTF-8"%>  
  2. <html>  
  3. <head>  
  4. <title>SpringMVC</title>  
  5. </head>  
  6. <body>  
  7. 您好,${user }!  
  8. </body>  
  9. </html>  

 

访问路径http://localhost:8080/spring/hello.do?user=java看效果

 

请您到ITEYE网站看 java小强 原创,谢谢!

http://cuisuqiang.iteye.com/ !

自建博客地址:http://www.javacui.com/ ,内容与ITEYE同步!

2 
3 
分享到:   
参考知识库
Java EE知识库 23262  关注 | 1416  收录
评论
2 楼  Stark_Summer 2014-05-10  
endual 写道
果断用maven啊。

果断用 maven too
1 楼  endual 2014-04-10  
果断用maven啊。
需求响应动态冰蓄冷系统与需求响应策略的优化研究(Matlab代码实现)内容概要:本文围绕“需求响应动态冰蓄冷系统与需求响应策略的优化研究”展开,基于Matlab代码实现,重点探讨了冰蓄冷系统在电力需求响应背景下的动态建模与优化调度策略。研究结合实际电力负荷与电价信号,构建系统能耗模型,利用优化算法对冰蓄冷系统的运行策略进行求解,旨在降低用电成本、平衡电网负荷,并提升能源利用效率。文中还提及该研究为博士论文复现,涉及系统建模、优化算法应用与仿真验证等关键技术环节,配套提供了完整的Matlab代码资源。; 适合人群:具备一定电力系统、能源管理或优化算法基础,从事科研或工程应用的研究生、高校教师及企业研发人员,尤其适合开展需求响应、综合能源系统优化等相关课题研究的人员。; 使用场景及目标:①复现博士论文中的冰蓄冷系统需求响应优化模型;②学习Matlab在能源系统建模与优化中的具体实现方法;③掌握需求响应策略的设计思路与仿真验证流程,服务于科研项目、论文写作或实际工程方案设计。; 阅读建议:建议结合提供的Matlab代码逐模块分析,重点关注系统建模逻辑与优化算法的实现细节,按文档目录顺序系统学习,并尝试调整参数进行仿真对比,以深入理解不同需求响应策略的效果差异。
综合能源系统零碳优化调度研究(Matlab代码实现)内容概要:本文围绕“综合能源系统零碳优化调度研究”,提供了基于Matlab代码实现的完整解决方案,重点探讨了在高比例可再生能源接入背景下,如何通过优化调度实现零碳排放目标。文中涉及多种先进优化算法(如改进遗传算法、粒子群优化、ADMM等)在综合能源系统中的应用,涵盖风光场景生成、储能配置、需求响应、微电网协同调度等多个关键技术环节,并结合具体案例(如压缩空气储能、光热电站、P2G技术等)进行建模与仿真分析,展示了从问题建模、算法设计到结果验证的全流程实现过程。; 适合人群:具备一定电力系统、能源系统或优化理论基础,熟悉Matlab/Simulink编程,从事新能源、智能电网、综合能源系统等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①开展综合能源系统低碳/零碳调度的科研建模与算法开发;②复现高水平期刊(如SCI/EI)论文中的优化模型与仿真结果;③学习如何将智能优化算法(如遗传算法、灰狼优化、ADMM等)应用于实际能源系统调度问题;④掌握Matlab在能源系统仿真与优化中的典型应用方法。; 阅读建议:建议结合文中提供的Matlab代码与网盘资源,边学习理论模型边动手调试程序,重点关注不同优化算法在调度模型中的实现细节与参数设置,同时可扩展应用于自身研究课题中,提升科研效率与模型精度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值