springMVC_基本开发及配置

1. 导包
 因为springMVC是spring的一个web应用包,所以,只需要再spring需要导的包的基础上再多导入spring-webmvc-3.2 RELESE.jar包就可以了。
开发所需要的所有包
2. 前端控制器(DispatcherServlet)配置

  <!-- 前端控制器 -->
  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 加载springmvc配置 -->
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <!-- 配置文件的地址
            如果不配置contextConfigLocation,
            默认查找的配置文件名称classpath下的:servlet名称+"-serlvet.xml"即:springmvc-serlvet.xml
         -->
        <param-value>classpath:springmvc.xml</param-value>
    </init-param>
  </servlet>

  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <!-- 
    可以配置/ ,此工程 所有请求全部由springmvc解析,此种方式可以实现 RESTful方式,需要特殊处理对静态文件的解析不能由springmvc解析。
    可以配置*.do或*.action,所有请求的url扩展名为.do或.action由springmvc解析,此种方法常用。
    不可以/*,如果配置/*,返回jsp也由springmvc解析,这是不对的。  
     -->
    <url-pattern>*.action</url-pattern>
  </servlet-mapping>

3. 处理器映射器(HandlerMapping)配置
 <1>在springmvc.xml中配置:

<!-- 配置处理器映射器 springmvc框架根据HandlerMapping接口判断是否是处理器映射器 -->
<!-- 根据bean的name进行查找Handler 将action的url配置在bean的name中 -->
<bean       class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
</bean>

 我们用到了这个处理器映射器BeanNameUrlHandlerMapping,它是根据请求URL(XXXX.action)匹配spring容器bean的name,找到相对应的bean(程序编写的Handler)。
注意:所有的处理器映射器都实现HandlerMapping接口。

<2>使用注解方式

spring3.1之前默认加载映射器是
org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping3.1之后要使用:
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping
在springmvc.xml中配置RequestMappingHandlerMapping:
使用RequestMappingHandlerMapping需要在Handler中使用@controller标识此类是一个控制器,使用@requestMapping指定Handler方法所对应的url。

4. 处理器适配器(HandlerAdapter)配置
 <1>在springmvc.xml中进行配置:

<!-- 配置处理器适配器 springmvc框架根据HandlerAdapter接口判断是否是处理器适配器 -->
<bean       class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />

程序编写Handler根据适配器的要求编写。
SimpleControllerHandlerAdapter适配器要求
通过supports方法知道Handler必须要实现哪个接口
注意:所有的处理器适配器都实现HandlerAdater接口。

<2>注解适配器的方式

spring3.1之前默认加载映射器是
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter3.1之后要使用:
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter

RequestMappingHandlerAdapter,不要求Handler实现任何接口,它需要和RequestMappingHandlerMapping注解映射器配对使用,主要解析Handler方法中的形参。

5. Handler编写
<1>开发Handle

public class ItemController2 implements HttpRequestHandler {

    @Override
    public void handleRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        // 使用静态数据将商品信息列表显示在jsp页面
        // 商品列表
        List<Items> itemsList = new ArrayList<Items>();

        Items items_1 = new Items();
        items_1.setName("联想笔记本");
        items_1.setPrice(6000f);
        items_1.setCreatetime(new Date());
        items_1.setDetail("ThinkPad T430 联想笔记本电脑!");

        Items items_2 = new Items();
        items_2.setName("苹果手机");
        items_2.setPrice(5000f);
        items_2.setDetail("iphone6苹果手机!");

        itemsList.add(items_1);
        itemsList.add(items_2);

        request.setAttribute("itemsList", itemsList);
        //转发到jsp页面
        request.getRequestDispatcher("/WEB-INF/jsp/itemsList.jsp").forward(request, response);  
    }

<2>注解开发Handle

@Controller
public class ItemController3 {
    //商品列表,@RequestMapping中url建议和方法名一致,方便开发维护
    @RequestMapping("/queryItems")
    public ModelAndView queryItems(){

        // 使用静态数据将商品信息列表显示在jsp页面
        // 商品列表
        List<Items> itemsList = new ArrayList<Items>();

        Items items_1 = new Items();
        items_1.setName("联想笔记本");
        items_1.setPrice(6000f);
        items_1.setCreatetime(new Date());
        items_1.setDetail("ThinkPad T430 联想笔记本电脑!");

        Items items_2 = new Items();
        items_2.setName("苹果手机");
        items_2.setPrice(5000f);
        items_2.setDetail("iphone6苹果手机!");

        itemsList.add(items_1);
        itemsList.add(items_2);

        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("itemsList", itemsList);
        //指定逻辑视图名
        modelAndView.setViewName("itemsList");

        return modelAndView;
    }

6. 处理器(Handler)配置
 <1>Handler由springMVC管理,在springmvc.xml中进行配置。

<!-- 配置Handler 由于上面使用了BeanNameUrlHandlerMapping处理映射器,name配置为url -->
<bean id="itemController1" name="/itemList.action"
        class="cn.itcast.springmvc.first.ItemController1">
</bean>

<!-- handler2 -->
    <bean id="itemController2" class="cn.itcast.springmvc.first.ItemController2">
</bean>

<!--简单url映射 集中配置bean的id对应 的url -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/itemsTest1.action">itemController1</prop>
                <prop key="/itemsTest2.action">itemController2</prop>
            </props>
        </property>
</bean>

<2>使用注解配置

<!-- 注解的handler,单个配置 -->
<!-- <bean class="cn.itcast.springmvc.first.ItemController3"/> -->
<!-- 使用spring组件扫描 -->
<context:component-scan base-package="cn.itcast.springmvc.first" />

建议使用组件扫描,组件扫描可以扫描@Controller、@Service、@component、@Repsitory等

7. 视图解析器(ViewResolver)配置

<!-- 配置视图解析器 要求将jstl的包加到classpath -->
<!-- ViewResolver -->
<bean       class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/jsp/" />
    <property name="suffix" value=".jsp" />
</bean>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值