java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称。本站提供基于Java框架struts,spring,hibernate等的桌面应用、web交互及移动终端的开发技巧与资料

保持永久学习的心态,将成就一个优秀的你,来 继续搞起java知识。

1、搭建环境

导入SpringMVC相关的Jar包到WEB-INF下面的lib目录,包含spring的IOCjar包、webMVC的jar包。

2、在web.xml中配置DispatcherServlet 前端控制器组件

DispatcherServlet组件在SpringMVC中已经提供,只需要配置即可.org.springframework.web.servlet.DispatcherServlet。

<servlet>
    &lt;servlet-name&gt;<a href="http://www.cfei.net/archives/tag/springmvc" title="浏览关于“springmvc”的文章" target="_blank" class="tag_link">springmvc</a>&lt;/servlet-name&gt;
    &lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class&gt;
    &lt;!-- 在servlet中把初始化参数加载进去 --&gt;
    &lt;init-param&gt;
        &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;
        &lt;param-value&gt;classpath:applicationContext.xml&lt;/param-value&gt;
    &lt;/init-param&gt;
    &lt;!-- 设置加载的优先级 --&gt;
    &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
&lt;/servlet&gt;
&lt;servlet-mapping&gt;
    &lt;servlet-name&gt;springmvc&lt;/servlet-name&gt;
    &lt;!-- *.do后缀匹配模式 --&gt;
    &lt;url-pattern&gt;*.do&lt;/url-pattern&gt;
&lt;/servlet-mapping&gt;

3、编写Controller组件

建立一个实现 Controller接口的java类。Controller组件负责执行具体的业务方法,可调用其他组件完成具体业务。

package pers.zky.controller;

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

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
/**
* 编写Controller组件
* @author Zky
* @version
*/
public class HelloController implements Controller{
    /**
     * ModelAndView里面封装了我们要返回的视图和数据
     */
    @Override
    public ModelAndView handleRequest(HttpServletRequest arg0,
            HttpServletResponse arg1) throws Exception {
        System.out.println("进入了HelloController");
        return new ModelAndView("first");
    }
}

4、applicationContext中配置注册bean

1)、配置注册helloController

<bean id="helloController" class="pers.zky.controller.HelloController"></bean>

2)、配置处理映射的HandlerMapper

除了prop里面的值自己写以外,其他的都是固定写法。key是访问路径,里面的value是调用处理的bean。

<bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <!-- 在bean中注入要对应的关系 -->
    <property name="mappings">
        <props>
            <prop key="/hello/hello.do">helloController</prop><span style="font-family: Arial, Helvetica, sans-serif;">
</span>            <!-- web.xml里面配置了.do页面的访问模式,故请求到达web.xml后将根据spring的配置转到访问application.xml -->	
            <prop key="/hello/*.do">helloController</prop>
            <!-- 由于web.xml里面没配置.jsp页面的访问模式,故请求到达web.xml后将终止 -->	
            <prop key="/hello/*.jsp">helloController</prop>
        </props>
    </property>
</bean>

3)、配置视图解析器

除了property里面的值自己写以外,其他的都是固定写法。

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <!--
    prefix前缀 /代表WebRoot目录下面 这下面安全性不高,客户端可以输入地址直接访问 /WEB-INF/代表WebRoot/WEB-INF目录下面
    suffix后缀 .jsp代表后缀为.jsp页面
    -->
    <property name="prefix" value="/"></property>
    <property name="suffix" value=".jsp"></property>
</bean>

5、新建jsp页面,完成跳转的功能

访问web项目时,在端口后面跟的其实不是项目名,而是项目名的一个别名。

不过一般我们把开发时的项目名和访问时的项目名写到一样,建立web项目时默认的也是一样的。

这个名字可以在以下路径中修改和查看

项目名→MyEclipse→Project Facets→Web→Context Root→Web Context-root→访问的项目名

例如此项目,我们改成了SpringMVC03

访问http://localhost/SpringMVC03/hello/a.do

→ 请求到达web.xml

→ web.xml根据类型匹配决定是否访问application.xml

→ 请求到达handlerMapping

→ handlerMapping根据类型匹配确定访问的Controller

→ 匹配到Controller的类型为helloController,去根据helloController的bean的配置访问HelloController类

→ HelloController返回了视图first

→ hello去视图解析器里面根据prefix和suffix确定要返回的具体页面的路径和后缀

→ 此例确定返回的页面是/first.jsp,即返回WebRoot下面的first.jsp页面

得到http://localhost/SpringMVC03/first.jsp,但地址栏还是http://localhost/SpringMVC03/hello/a.do

访问http://localhost/SpringMVC03/hello/*.do都会返回上面的页面

但访问http://localhost/SpringMVC03/hello/*.jsp或*.html等就会返回404错误

SpringMVC基于XML配置基于\u6ce8\u89e3\u7684配置

因为水平有限,难免有疏忽或者不准确的地方,希望大家能够直接指出来,我会及时改正。一切为了知识的分享。

后续会有更多的精彩的内容分享给大家。