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无缝整合,上手简单。它的易用性、可扩展性、安全性均非常理想。