第一讲:hello spring mvc
5、hello spring案例
步骤:
a) 导入相关jar包
b) 配置web.xml文件--配置分发器(视图分发器其实就是一个servlet,servlet怎么配你就怎么配)
1 <servlet> 2 <servlet-name>springmvc</servlet-name> 3 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 4 <load-on-startup>1</load-on-startup> <!-- 跟随服务器一起启动 --> 5 </servlet> 6 <servlet-mapping> 7 <servlet-name>springmvc</servlet-name> 8 <url-pattern>*.do</url-pattern> 9 </servlet-mapping>
c) 添加springmvc配置文件:默认在WEB-INF下添加 [DispatcerServlet Name]-servlet.xml文件(本次在D:java资料spring-framework-4.1.2.RELEASEdocsspring-framework-referencehtml进入到网页选V 17.3.1找到的)
<?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:p="http://www.springframework.org/schema/p"
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">
</beans>
d) 编写HelloController.java(在Struts里面称为action,在springMVC里面称为controller,控制器)
/01springmvc_hello/src/cn/sxt/controller/HelloController.java
public class HelloController implements Controller{ @Override public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception { ModelAndView mv = new ModelAndView(); //封装要显示到视图中的数据 mv.addObject("msg","hello springmvc"); //视图名 mv.setViewName("hello"); return mv; } }
e) 编写springmvc配置文件(重头戏),刚才已经写了dispatcherServlet配置(web.xml里面,因为它就相当于一个servlet分发器,随服务器一起启动的)和controller(前端控制器)的配置
还需要handler Mapping、handler Adapter、adapter
<!--配置HandlerMapping Ctrl+T查找即可没必要记忆--> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean> <!--配置HandlerAdapter --> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean> <!-- 配置渲染器 --> <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <!-- 结果视图的前缀 --> <property name="prefix" value="/WEB-INF/jsp/"/> <!-- 结果视图的后缀 --> <property name="suffix" value=".jsp"/> <!-- --> </bean> <!-- 配置请求和处理器 --> <bean name="/hello.do" class="cn.sxt.controller.HelloController"></bean>
f)测试,
把刚才的项目部署到tomcat上,用浏览器输入路径http://localhost:8080/hello/hello.do访问
第二讲使用注解开发springmvc
2.web.xml配置
注意:方框内指明mvc的配置文件位置(src/mvc.xml)
4、springmvc配置
<!-- 配置渲染(解析)器 --> <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <!-- 结果视图的前缀 --> <property name="prefix" value="/WEB-INF/jsp/"/> <!-- 结果视图的后缀 --> <property name="suffix" value=".jsp"/> <!-- --> </bean> <!-- 注解扫描,自动扫描这个包下面的注解 -->此处改用扫描了 <context:component-scan base-package="cn.sxt.controller"></context:component-scan>
把这个项目部署到tomcat上,用浏览器输入路径http://localhost:8080/annotation/hello.do访问
或者后面写annotation/hello来访问,也可以访问到,这就是在mvc.xml文件里面配置的adapter的作用,如果把这个adapter的配置删除了,则后面必须hello.do才能访问到(要不然怎么叫适配器呢)