当前位置: 首页 > news >正文

spring基于xml配置文件和基于注解方式入门案例实现

1.基于xml方式

引入相关的jar包

<!--springmvc需要的jar包--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.10.RELEASE</version> </dependency> <!--servlet相关包--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> </dependencies>

配置web.xml

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> <!--配置servlet--> <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--配置springmvc.xml的路径--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>SpringMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>

配置为根目录,当访问网站时,读取springmvc.xml文件中的配置
当访问/test 时调用 com.shunli.handler.MyHandler ,进行相应数据处理,然后访问视图层的show.jsp

配置springmvc.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.xsd"> <!--配置HandlerMapping, 将url请求映射到Handler--> <bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <!--配置mapping--> <property name="mappings"> <props> <prop key="/test">testHandler</prop> </props> </property> </bean> <!--配置Handler--> <bean id="testHandler" class="com.shunli.handler.MyHandler"></bean> <!--配置视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--配置前缀--> <property name="prefix" value="/"></property> <!--配置后缀--> <property name="suffix" value=".jsp"></property> </bean> </beans>

MyHandler.java

package com.shunli.handler; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; /** * @author shunli */ public class MyHandler implements Controller { @Override public ModelAndView handleRequest(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse) throws Exception { //装载模型数据和逻辑视图 ModelAndView modelAndView = new ModelAndView(); //添加模型数据 modelAndView.addObject("name", "Tom"); //添加逻辑视图 modelAndView.setViewName("show"); return modelAndView; } }

2.基于注解方式

与xml不同的是不需要配置这两个bean

<bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <bean id="testHandler" class="com.shunli.handler.MyHandler"></bean>

首先配置springmvc2.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:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 开启注解扫描 --> <!-- 其中base-package属性指定需要扫描的基类包,spring容器将会扫描这个基类包及其子包中的所有类 --> <!-- 当需要扫描多个包时,可以使用逗号分隔 --> <context:component-scan base-package="com.shunli.handler"></context:component-scan> <!--配置视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--配置前缀--> <property name="prefix" value="/"></property> <!--配置后缀--> <property name="suffix" value=".jsp"></property> </bean> </beans>

AnnotationHandler.java

package com.shunli.handler; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import java.util.Map; @Controller public class AnnotationHandler { /* 第一种方式 */ @RequestMapping("/modelAndviewview") public ModelAndView modelAndViewTest(){ //装载模型数据和逻辑视图 ModelAndView modelAndView = new ModelAndView(); //添加模型数据 modelAndView.addObject("name","Tom"); //添加逻辑视图 modelAndView.setViewName("show"); return modelAndView; } /* 第二种 */ @RequestMapping("/model") public String modelTest(Model model){ //添加模型数据 model.addAttribute("name", "Jerry"); //设置逻辑视图 return "show"; } /* 第三种 */ @RequestMapping("/cat") public String MapTest(Map<String, String> map){ //添加模型数据 map.put("name", "Cat"); return "show"; } }
http://www.jsqmd.com/news/1281514/

相关文章:

  • 镜头、角色、剧情自由把控,可控式 AI 视频工作台横向测评
  • 2026 上海二手空调出租、冷库设备回收,工厂暖通方案实地测评 - LYL仔仔
  • AI工具爆发期的致命盲区(92%从业者正在忽略的3项元能力)
  • 让Switch变身万能主机:sys-con第三方控制器支持完整指南
  • 2026年07月PPR管材供应厂家:台州博朗特热能科技有限公司专业制造实力解析 - 卓企推荐
  • 力扣算法训练--2.两数相加
  • 存储型XSS窃取Cookie攻防全解析:从漏洞利用到纵深防御实践
  • ADC124S051驱动代码编写-HAL库-USB虚拟串口发送
  • 2026西安搬家避坑指南|3家本地老牌搬家公司深度对比 - 幸福生活序曲
  • 语言到底在学什么?
  • Claude Code系统提示词精简80%:从臃肿到高效的工程实践
  • 纽扣电池供电优化:NBM5100A与PIC18F4458的物联网应用
  • 物联网安全:硬件级解决方案与SE050开发实战
  • 岗位任务指南:一线销售、财务、供应链的高频决策如何数据化
  • 电机工作原理、类型及应用全解析
  • 《leetcode-php》求三角形的最小加权路径和
  • 扎根昆仑绿洲打造高端米——羊脂白露米品牌发展纪实 - 品牌推荐君
  • 终极SVG编辑神器:SVGEdit免费高效导出PDF、PNG和高质量SVG的完整指南
  • Android免Root防撤回终极指南:永久告别消息撤回烦恼
  • 从图形化编程到Python海龟绘图:四色旋转方块阵实战解析
  • AI智能体正在集体“上岗“:当Agent学会替你干活,人机交互的最后一层界面为什么还是“哑“的?
  • VisualCppRedist AIO:Windows运行库管理的终极解决方案
  • 2026年牦牛骨高汤冰煮锁鲜与鲜菌慢熬解析 - 万相科技
  • 05.01.01.泛微OA Ecology10(获取WebService接口数据(ERP TipTop GP5.3)action方式)
  • OpenClaw智能代理框架:金融分析、自动化与本地部署实战
  • 焊接符号知识问答
  • Windows风扇控制终极指南:3步打造完美静音散热系统
  • 力扣:逆波兰表达式
  • AI如何优化学术写作:文献梳理与术语校验实战
  • Java雷坑整理(2)