第一讲 Hello Spring MVC

来源:互联网 发布:时时彩软件urssc 编辑:程序博客网 时间:2024/05/16 07:18
一、mvc框架要做哪些事情:
  1. 将url映射到java类或java类的方法
  2. 封装用户提交的数据
  3. 处理请求-调用相关的业务处理-封装响应的数据
  4. 将响应数据的数据进行渲染(jsp、html、freemarker等)

二、spring mvc:是一个轻量级的基于请求响应的mvc框架。

三、为什么要学习spring mvc?
  • 性能较structs2好
  • 简单便捷易学
  • 天生和spring无缝集成(使用spring aop、 ioc)
  • 使用约定优于配置
  • 能够进行简单的junit测试
  • 支持Restful风格
  • 异常处理
  • 本地化、国际化
  • 数据验证、类型转换等
  • 拦截器等
     使用的人多,使用的公司多。

四、简单了解结构

五、spring mvc的案例

     步骤:

  1. 导入jar包
        
     <dependencies>
           <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.0.1</version>
                <scope>provided</scope>
           </dependency>
           <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>4.2.1.RELEASE</version>
           </dependency>
           <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jstl</artifactId>
                <version>1.2</version>
           </dependency>
     </dependencies>


          
 <dependency>
 <groupId>javax.servlet</groupId>
 <artifactId>jstl</artifactId>
 <version>1.2</version>
 </dependency>


//新建一个ModelAndView对象
ModelAndView mv = new ModelAndView();
//封装要显示到视图中的数据
mv.addObject("msg", "Hello, spring mvc!");
//设置视图名
mv.setViewName("hello");
因为这里渲染的是jsp页面所以加入这个jar包

  1. 配置web.xml文件-配置分发器

     <display-name>spring-web</display-name>
     <welcome-file-list>
           <welcome-file>index.html</welcome-file>
     </welcome-file-list>
     
     <servlet>
           <servlet-name>example</servlet-name>
           <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
           <load-on-startup>1</load-on-startup>
     </servlet>
     <servlet-mapping>
           <servlet-name>example</servlet-name>
           <url-pattern>*.do</url-pattern>
     </servlet-mapping>

    • load-on-startup标记容器是否在启动的时候实例化并调用其init()方法的优先级。
    • 它的值表示servlet应该被载入的顺序
    • 当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet;
    • 如果值小于0或未指定时,则表示只有在第一次请求的容器才在该servlet调用初始化函数
    • 正值越小,servlet的优先级越高,应用启动时就越先加载。
    • 值相同时,容器就会自己选择顺序来加载。

  1. 添加spring mvc配置文件:默认在WEB-INF下添加[servlet-name]-servlet.xml文件

  1. 编写HelloController.java

public class HelloController implements Controller {

     public ModelAndView handleRequest(HttpServletRequest request,
                HttpServletResponse response) throws Exception {
           //新建一个ModelAndView对象
           ModelAndView mv = new ModelAndView();
           //封装要显示到视图中的数据
           mv.addObject("msg", "Hello, spring mvc!");
           //设置视图名
           mv.setViewName("hello");
           return mv;
     }

}

  1. 编写spring mvc配置文件

     <!-- 配置HandlerMapping -->
     <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" />
         <!-- 例:视图名为:hello   渲染后:/WEB-INF/jsp/hello.jsp 该页面-->
     </bean>
     <!-- 配置请求和处理器 -->
     <bean name = "/hello.do" class = "com.liujie.controller.HelloController"></bean>

        /hello.do也可以写成/hello,如果没有配置HandlerAdapter则一定要写成/hello.do

  1. 测试运行


六、使用注解(Annotation)的配置

  1. 编写HelloController.java

@Controller
public class HelloController {

     @RequestMapping("/hello")
     public ModelAndView handleRequest(HttpServletRequest request,
                HttpServletResponse response) throws Exception {
           ModelAndView mv = new ModelAndView();
           mv.setViewName("hello");
           mv.addObject("msg", "Hello, spring mvc!");
           return mv;
     }

}
  
  1. 编写spring mvc配置文件

     <!-- 配置渲染器 视图解析器 -->
     <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" />
         <!-- 例:视图名为:hello   渲染后:/WEB-INF/jsp/hello.jsp 该页面-->
     </bean>
    <!-- spring容器扫描指定包下的所有类,如果类上有注解  那么根据注解产生相应bean对象已经映射信息 -->
    <context:component-scan base-package="com.liujie.controller"/>

七、可以自定义spring mvc配置文件的位置及名字

  1. 配置web.xml文件-配置分发器

  <servlet>
     <servlet-name>mvc</servlet-name>
       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
     <init-param>
           <param-name>contextConfigLocation</param-name>
           <param-value>classpath:mvc.xml</param-value>
     </init-param>
     <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
     <servlet-name>mvc</servlet-name>
     <url-pattern>*.do</url-pattern>
  </servlet-mapping>

classpath:        对应于maven项目中的 

原创粉丝点击