【springmvc 3】----配置 VS 注解方式
来源:互联网 发布:网站数据库设计 编辑:程序博客网 时间:2024/06/12 16:06
【springmvc 3】----配置 VS 注解方式
Springmvc 在springmvc-xml有配置和注解方式两种,今天小编对两种都方式都进行了
一个代码的实践,我们发现,现在其实是发注解方式是比较的常用的,注解方式简单、
方便可见一斑:
配置方式的代码:
springmvc -xml:
<!-- 需要配置controller,handlerMapping,ViewResolver, interceptor --> <!-- 映射处理器之间是独立的,不相互影响 --> <!-- 默认的映射处理器 --> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean> <!-- 简单url的映射处理器 --> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/hello1.do">testController</prop> </props> </property> </bean> <!-- 控制器的类名映射处理器 --> <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean> <!-- 使用默认的映射处理器来映射controller --> <bean id="testController" name="/hello.do" class="cn.itcast.springmvc.TestController"></bean>
TestController.java:
public class TestController extends AbstractController {@Overrideprotected ModelAndView handleRequestInternal(HttpServletRequest arg0,HttpServletResponse arg1) throws Exception {System.out.println("hello springmvc");//viewName不是jsp的名称而是前缀与后缀之间的路径字符串return new ModelAndView("jsp1/index");}}
注解方式代码
(只要将上面的配置方式换成MVC注解驱动+扫描即可):
handler 实现的两个注解: @Controller 标志它是一个控制器; @RequestMapping("/url")
springmvc-xml:
<!-- mvc注解的驱动 --> <mvc:annotation-driven/> <!-- 一档有扫描器的定义MVC:annotation-driven 就不需要,扫标签已经有了注解驱动的功能 --> <context:component-scan base-package="cn.itcast.springmvc"/>
TestController.java
@Controller //用来标注当前类 springmvc的控制层类@RequestMapping("/test")// controller ,唯一标识或命名空间public class TestController { //有哪些注解方式:@controller同类别的注解: @service 一般用于服务层 ,@component 标注无法分层的类 ,@response 标注DAO层 /** * 方法的返回值代表 ModelAndViewH懂得ViewName * @return */ @RequestMapping("/hello.do")//用来访问控制层方法的主角 public String hello() { System.out.println("you did a good job, Daniel!"); return"jsp1/index"; }
最后的显示结果:
其实两种情况都是相同的如下:
index.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" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" 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/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd "> <!-- 需要配置方式:controller,handlerMapping,ViewResolver, interceptor 映射处理器之间是独立的,不相互影响 默认的映射处理器 <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean> 简单url的映射处理器 <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/hello1.do">testController</prop> </props> </property> </bean> 控制器的类名映射处理器 <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean> 使用默认的映射处理器来映射controller <bean id="testController" name="/hello.do" class="cn.itcast.springmvc.TestController"></bean> --> <!--使用注解方式 --> <!-- mvc注解的驱动 --> <mvc:annotation-driven/> <!-- 一档有扫描器的定义MVC:annotation-driven 就不需要,扫标签已经有了注解驱动的功能 --> <context:component-scan base-package="cn.itcast.springmvc"/> <!-- 前缀+ viewName +后缀 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- webroot到某一指定的文件夹的路径 --> <property name="prefix" value="/WEB-INF/jsp/"></property> <!-- 视图名称的后缀 --> <property name="suffix" value=".jsp"></property> </bean></beans>
web-xml:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <!-- 中央控制器 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <!-- struts习惯使用/*,在springmvc不管用 --> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%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 'index.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> hello springmvc!you are so good!</body></html>
TestController.java:
package cn.itcast.springmvc;import javax.servlet.http.HttpServletRequest;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controller //用来标注当前类 springmvc的控制层类@RequestMapping("/test")// controller ,唯一标识或命名空间public class TestController { //有哪些注解方式:@controller同类别的注解: @service 一般用于服务层 ,@component 标注无法分层的类 ,@response 标注DAO层 /** * 方法的返回值代表 ModelAndViewH懂得ViewName * @return */ @RequestMapping("/hello.do")//用来访问控制层方法的主角 public String hello() { System.out.println("you did a good job, Daniel!"); return"jsp1/index"; } }
最终的显示结果其实两种情况都是相同的如下:
index.jsp页面显示:
0 0
- 【springmvc 3】----配置 VS 注解方式
- 注解的方式配置springMVC
- SpringMVC--注解与配置方式
- SpringMVC使用注解方式配置IOC
- springmvc基于注解的配置方式
- SpringMVC中注解方式代替xml配置SpringMVC
- springMvc(3)---注解方式实现登陆
- SpringMVC—注解方式
- SpringMVC注解方式
- springmvc注解方式访问
- springmvc注解方式
- SpringMVC 注解方式
- springmvc之注解方式
- SpringMVC入门案例——注解配置方式
- Spring+SpringMVC+Mybatis使用注解方式配置双数据源
- 天易47----Springmvc注解方式实现aop配置简单示例
- SpringMVC学习之注解方式的配置及启用
- springMVC 注解事务配置
- C语言用函数指针的数组简单实现计算器功能
- 《MySQL必知必会》学习笔记十一(操作表)------掌握部分
- pinyin4j汉字转换拼音的工具类
- 第二天笔记
- c++中String类(1)
- 【springmvc 3】----配置 VS 注解方式
- 2017 Java后端面试总结
- 练习
- Rotate Array
- 每天一个 Linux 命令(4):mkdir
- Lucene初探之索引文件的基本类型与基本规则
- HDU5616 Jam's balance
- Java学习:coursera课程笔记(一)
- AndroidStudio无法启动模拟器问题