本篇文章给大家带来的内容是关于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包啦
然后就是和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>
以上就是springmvc环境搭建的详细过程的详细内容。