Spring MVC 中的DispatcherServlet文件与Controller类中可以使用的注解
来源:互联网 发布:python 定义类 编辑:程序博客网 时间:2024/06/05 20:51
Spring MVC 中的 DispatcherServlet 的功能
功能:
根据URI调用对应的Controller的对应方法
根据返回的值跳转到对应的JSP页面
将请求的参数值包装传给对应的Controller中去。
DispatcherServlet 的使用
首先在web.xml中配置一个DispatcherServlet类
<servlet> <servlet-name>HelloWeb</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>HelloWeb</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
就像这样,就配置了一个Helloweb 的一个DispatcherServlet,而且,还必须在相同目录下,也就是/WEB-INF/
目录下配置 Helloweb-servlet.xml
文件,对自定义的DispatcherServlet进行配置。名字不能改变。。
改变DispatcherServlet 文件的位置
如果你想将 Helloweb-servlet.xml
文件写在其它地方,只需要在web.xml 中 <servlet>
标签下使用 <init-param>
标签对 contextConfigLocation
的值进行改变就了。不仅可以改变位置,也可以改变文件名。就像下图将文件名改变成 Helloweb-config.xml
文件。
<servlet> <servlet-name>HelloWeb</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/config/Helloweb-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>HelloWeb</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
配置DispatcherServlet的XML文件
我们就配置默认的 Helloweb-servlet.xml
文件来了解这个文件到底干了什么。。
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- 指定控制器所在的包 --> <context:component-scan base-package="controller" /> <!-- 配置视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean></beans>
1、在指定的包下,找到有 @Controller
标签的类,它就是一个控制器,可以根据对应的URL来进行不同的处理。
2、根据对应控制器的返回的视图,使用定义好的视图解析器进行解析。。。。
有@Controller注解的类
有 @Controller
注解的类成为了控制器,可以处理HTTP请求。具体是怎么样实现呢?
首先,找到控制器中有 @RequestMapping
注解的方法,这样的方法就是可以处理HTTP请求的方法,然后根据注解中value的值表示此方法只能处理对应的URI。返回的字符串就是对应的视图的名字。。更多有关 @RequestMapping
注解的内容,请看这篇文章。
@Controllerpublic class HelloController{ @RequestMapping("/login") public String getLogin() { return "login"; } @RequestMapping(value = "/{userName}") public String login(ModelMap model, @PathVariable String userName) { User user = new User(); user.setUserName(userName); user.setPassword("123456"); model.addAttribute("user", user); return "userInfo"; }}
其实 @RequestMapping
注解也可以放在类名上,对这时注解对URI的限制是对全类的,如果类中的方法也的 @RequestMapping
注解,那方法要匹配的URI就是类的限制加上方法的限制。。
使用@AutoWired和@Service注解进行依赖注入
@AutoWired
注解可以注释属性或方法,此时,属性或方法就不需要定义了,它在生成类时,就会注入对应的实例。而被 @Service
注解注释的类就是要被注入的类。
比如,你需要在控制器中使用 UserService
类中的方法。
@ModelAttribute 注解
- Spring MVC 中的DispatcherServlet文件与Controller类中可以使用的注解
- Spring Mvc中Controller 中的@ResponseBody 注解
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- angular-cli 安装与使用
- linux下ftp服务器的安装与登录
- 程序和软件有何不同
- Arrays.asList()返回的List不能add和remove
- ZooKeeper简介
- Spring MVC 中的DispatcherServlet文件与Controller类中可以使用的注解
- 洛谷1130红牌
- BZOJ1083: [SCOI2005]繁忙的都市
- 堆内存和栈内存详解
- ubuntu17.04安装tensorflow1.3(GPU)详解
- 二本院校找java实习的艰辛路
- ajax基础用法
- Java后台框架篇--Spring之WebFlow
- Linux 文件压缩及归档