springMVC 学习第一篇

此篇为新手说明如何搭建一个基于springMVC框架的Web project.

使用工具:Idea tomcat

第一步:搭建springMVC框架自然少不了spring的jar包了,

下载spring jar包的地址:http://repo.springsource.org/libs-release-local/

沿着路径:org---springframework----spring  自行选择最新的稳定版本。

注意;springde 的核心容器依赖于common-logging的jar包,所以还要去下载这个jar包,地址如下:

http://commons.apache.org/

沿着路径 releases----logging  下载最新的commons-logging 得到一个 xxxx.bin.zip的压缩文件

OK,需要的jar包准备完毕,通过IDEA新建一个Java Web项目

点击File ----- New ---- Project 弹出下图

勾选Web Appcation 点击next完成。

这是只是简单的创建的一个java web项目,和spring还没有半毛钱关系。把之前下载好的jar添加进来。

因为IDEA工具不会主动为我们创建lib目录,我们需要手动创建,我在WEB-INF下新建一个Directory 取名lib.

File --- New ---- Directory

把下载好的jar包拷贝进来。

然后右击 lib目录,点击 add as library

OK,jar包添加完成,现在开始配置。web项目,入口首先是web.xml。所以先在这个里面配置servlet。web.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

这个是最简单的配置了,里面没有其他内容。就配了一个servlet,name是springmvc, 对应的class是DispatcherServlet。有servlet就必有对应的servlet-mapping。将任何的web请求都使用dispatcherServlet进行转发,所以我们配置的映射的值是“/”。

当项目加载DispatcherServlet时会需要一个Spring MVC的配置文件,默认情况下会去程序文件夹WEB-INF下查找对应的[servlet-name]-servlet.xml文件,因为我配置的servlet-name是springmvc,所以会去加载springmvc-servlet.xml文件,如果没有会报错。我在WEB-INF下新建一个xml,命名为springmvc-servlet.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">

    <bean name="/hello" class="cn.com.controller.HelloController"/>
</beans>

里面就添加一个bean,用来测试hello是否能请求到。

在java中新建一个HelloController.java,

DispatcherServlet在spring中充当一个前端控制器的角色,它的核心功能是分发请求。请求会被分发给对应处理的java类,Spring MVC中称为Handle.在Spring2.5之前,开发一个Handle的唯一方法是实现 org.springframword.web.servlet.mvc.Controller接口。

所以HelloController.java必须实现这个接口,然后重写handleRequest方法,HelloController.java类如下:

package cn.com.controller;


import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloController implements Controller {

    @Override
    public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
        System.out.println("进入hello");
        ModelAndView mav = new ModelAndView();
        mav.addObject("name","test");
        mav.setViewName("index.jsp");
        return mav;
    }
}

然后启动项目,在浏览器请求localhost:8080/hello,结果如下:

出现上图,OK搞定。

 

Controller接口的实现类,本例中如:HelloController、可以通过重写的handleRequest方法传递的参数访问对应请求的HttpServletRequest 和 HttpServletResponse 对象。方法处理完成请求之后,必须返回一个ModelAndView 对象。

从这可以看出在Spring2.5之前,这个还有很多缺点,如:

1.必须返回一个ModelAndView 对象,这个就很烦,我就想返回一个字符串还不行。返回类型不能变

2.Controller实现类重写了handleRequest。这个是一个请求。如果再处理一个新的请求,又必须要再写一个类,一个类只能处理一个单一的请求动作。就是说,一个用户的增删改查四个动作,就要写四个类处理四个请求。

为了处理这些问题,在spring2.5之后新增了基于注解的控制器,他可以支持同时处理多个请求的动作,而且无需实现任何接口,变的更加灵活。下一篇介绍注解篇

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值