SpringMVC环境搭建(一)
2021-06-19 23:04
标签:搭建 设计理念 springmvc 技术分享 ann att col 设置 请求 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配置一个核心控制器。用于拦截请求。 看到这里是不是感到很熟悉,只不过比Struts2多了几行而已。init-param是初始化要加载的spring文件,如果有多个可以使用逗号隔开 load-on-startup 在启动的时候立马加载。 然后我们写个Controller @Controller这个注解不用多说吧,声明一个控制器。 @RequestMapping定义在类上面是声明一个空间。在方法上面是声明一个请求路径 返回一个字符串你要访问的路径这个路径在哪里呢? 在我们Spring XML的配置中,我们首先扫描所有的注解,然后配置了一个试图解析器。 当我们返回那个hello的时候,它是 prefix + result(hello) +suffix 去访问我们的视图。 现在我们在index.jsp直接跑一个试试。 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接口重写接口里面的方法。 ModelAndView中可以设置视图,我设置的还是hello这个,然后我们需要在spring XML中配置一个bean,name是请求路径,class是指定控制器类 注意:我们在项目中拦截了所有的请求,会导致图片,样式,JS都报404,我们可以在spring XML中引入外部资源文件,而且这种实现接口的方式造成耦合度太高,而且每一个功能都需要写上一个类,导致我们代码的臃肿,所以还是推荐使用注解方式,注解目前是非常流行,并且很多框架都支持注解方式,并且语法简单,方便使代码简洁。 SpringMVC环境搭建(一) 标签:搭建 设计理念 springmvc 技术分享 ann att col 设置 请求 原文地址:https://www.cnblogs.com/SimpleWu/p/9689648.html
servlet>
servlet-name>DispatcherServletservlet-name>
servlet-class>
org.springframework.web.servlet.DispatcherServlet
servlet-class>
init-param>
param-name>contextConfigLocationparam-name>
param-value>classpath:applicationContext.xmlparam-value>
init-param>
load-on-startup>1load-on-startup>
servlet>
servlet-mapping>
servlet-name>DispatcherServletservlet-name>
url-pattern>/url-pattern>
servlet-mapping>
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";
}
}
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>
response.sendRedirect(request.getContextPath() + "/Miya/hello");
%>
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;
}
}
bean name="/Miya/word" class="com.miya.spring.mvc.controller.MiyaWordController">bean>
mvc:resources location="/css/" mapping="/css/**">mvc:resources>