Spring MVC 入门

参考:https://fangjian0423.gitbooks.io/springmvc-source-minibook/content/SpringMVC-introduction.html

SpringMVC:

使用:

需要在web.xml里配置DispatcherServlet。

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springConfig/dispatcher-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

需要在init-param里加上contextConfigLocation,这是配置spring上下文的配置文件,然后需要注意url-pattern是/不是/*,如果是/*的话可能会造成所有的url都会走springMVC了,把一些原本的.jsp .*这类的给覆盖掉了

classpath:springConfig/dispatcher-servlet.xml

这个srping配置文件里可以配置扫描包的路径,<context:component-scan base-package="org.format.demo.controller" />

@RequestMapping

顾名思义,就是请求映射。

  • 我们看到@RequestMapping("/")中的"/"的意义就是contextPath后面的路径;也就是 http://host:port/contextPath 后面的路径。 (这里不一定都要以"/"开头,比如 "/employee", 我们可以写成 "employee" )

  • @RequestMapping注解的method参数
      method参数表示的HTTP请求的方式。常见的有GET,PUT,POST,DELETE等。若请求的方法与后台编写的方法不一致,会出现HTTP 405错误。

  • @PathVariable注解
      这是一种基于RESTFUL的注解。我们看到detail方法的@RequestMapping的value值/detail/{employeeId},参数中加入了一个@PathVariable employeeId。 这样起作用的路径就根据employee的Id,即每个员工都有独立的一个URI路径资源。 符合RESTFUL架构。

  • Controller的方法参数
      Controller的方法访问非常灵活。 比如Employee有id,name,age等属性。 只要我们在前台传入name为id,name,age这3个参数,并且接受的方法有一个Employee对象参数,SpringMVC会自动把3个注入到这个对象中。 还有其他一些Integer,Long参数等,SpringMVC会默认帮我们自动转化。 同时参数也可以丢入一些HttpServletRequest, HttpServletResponse, HttpServletSession对象,SpringMVC会自动帮我们注入。 这点非常方便。

  • 不带参数基于方法的@RequestMapping会被当然基于类的@RequestMapping所作用的地址的默认进入的方法

Final

SpringMVC是一个Web MVC框架。 它的特点是轻便,与Spring无缝整合,上手简单。它的易用性、可扩展性、安全性均非常理想。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容