本篇文章给大家带来的内容是关于SpringMVC环境搭建的详细过程,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

Spring MVC为展现层提供的基于MVC设计理念的优秀Web框架,是目前最主流的MVC框架之一。

Spring 3.0之后完全超越Struts2,称为最优秀的MVC框架。学完SpringMVC之后,瞬时间就能让你感到Struts2带给你的残酷。

Spring MVC通过一套MVC注解,让POJO称为处理请求的控制器,无需实现任何接口,耦合度低。

并且Spring MVC对rest风格很好的支持。。

利用了松散的耦合可拔插组件结构,比其他MVC框架更具扩展性和灵活性。

搭建Spring MVC环境

1)基于接口方式搭建MVC环境。实现Controller接口实现MVC

2)基于注解方式,在Spring3.0以后的版本中,使用注解极大的简化了传统的MVC配置,灵活性与可维护性得到了大大的提高哦。

实现SpringMVC步骤,第一个肯定是要到入对应jar包啦

SpringMVC环境搭建的详细过程

然后就是和Struts2一样在Web.xml配置一个核心控制器。用于拦截请求。

<!-- 配置SpringMVC的请求的Servlet -->   <servlet>           <servlet-name>DispatcherServlet</servlet-name>               <servlet-class>                   org.springframework.web.servlet.DispatcherServlet             </servlet-class>         <init-param>             <param-name>contextConfigLocation</param-name>             <param-value>classpath:applicationContext.xml</param-value>         </init-param>         <load-on-startup>1</load-on-startup>  </servlet>   <servlet-mapping>       <servlet-name>DispatcherServlet</servlet-name>       <url-pattern>/</url-pattern>   </servlet-mapping>

看到这里是不是感到很熟悉,只不过比Struts2多了几行而已。init-param是初始化要加载的spring文件,如果有多个可以使用逗号隔开

load-on-startup 在启动的时候立马加载。 <url-pattern>/</url-pattern>拦截所有的请求。(同时css,js也会被拦截);

然后我们写个Controller

package com.miya.spring.mvc.controller;  import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;  @Controller @RequestMapping("/Miya") public class MiyaHelloController {      @RequestMapping("/hello")     public String hello(){         System.out.println("hello Miya");         return "/hello";     } }

@Controller这个注解不用多说吧,声明一个控制器。

@RequestMapping定义在类上面是声明一个空间。在方法上面是声明一个请求路径

返回一个字符串你要访问的路径这个路径在哪里呢?

<context:component-scan base-package="com.miya.spring.mvc"/>          <!-- 视图解析器 -->     <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">         <!-- 前缀 -->         <property name="prefix" value="/WEB-INF/views"/>         <!-- 后缀 -->         <property name="suffix" value=".jsp"/>     </bean>

在我们Spring XML的配置中,我们首先扫描所有的注解,然后配置了一个试图解析器。

当我们返回那个hello的时候,它是 prefix + result(hello) +suffix 去访问我们的视图。

现在我们在index.jsp直接跑一个试试。

<% response.sendRedirect(request.getContextPath() + "/Miya/hello");     %>

request.getContextPath()拿到的是你的web项目的根路径,就是webContent(MyEclipse中是webRoot)。然后现在可以看到我们的命名空间Miya后面跟里面定义的方法请求路径

hello。我们最终访问后的地址http://localhost:8080/SpringMvcDemo1/Miya/hello 访问到的是WEB-INF/views/hello.jsp这个文件。而且这个请求还是个rest风格请求。

到了这里会发现比Struts2方便的多,Struts2每次配置请求都要去Struts2中配置action啊什么什么的一大堆,并且有的时候sturts文件中几千行,老眼昏花找个请求都要找半个小时。

我们还有一个实现方式就是实现Spring提供的Controller接口重写接口里面的方法。

package com.miya.spring.mvc.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; public class MiyaWordController implements Controller{     @Override     public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {         ModelAndView modelAndView = new ModelAndView();         modelAndView.setViewName("/hello");         return modelAndView;     } }

ModelAndView中可以设置视图,我设置的还是hello这个,然后我们需要在spring XML中配置一个bean,name是请求路径,class是指定控制器类

<bean name="/Miya/word" class="com.miya.spring.mvc.controller.MiyaWordController"></bean>

注意:我们在项目中拦截了所有的请求,会导致图片,样式,JS都报404,我们可以在spring XML中引入外部资源文件,而且这种实现接口的方式造成耦合度太高,而且每一个功能都需要写上一个类,导致我们代码的臃肿,所以还是推荐使用注解方式,注解目前是非常流行,并且很多框架都支持注解方式,并且语法简单,方便使代码简洁。

<!-- 引入外部样式 --> <mvc:resources location="/css/" mapping="/css/**"></mvc:resources>
标签
DT素材网

DT素材网

156

0

0

( 此人很懒并没有留下什么~~ )