Spring MVC使用配置
1、 创建项目文件夹,从spring官方网站http://spring.io/下载jar包,放到项目下面的WEB-INF/lib文件夹下面
2、 在WEB-INF/web.xml文件中,配置spring的servlet
3、 在eclipse中创建一个java project,创建一个类,
1) 一个服务端Action用注解@Controller表示
2) url用注解@RequestMapping表示
3) 请求需要执行的方法用注解@RequestMapping表示
4) 在执行的方法的参数中,加参数用以接收客户端传来的输入
5) 在执行的方法的参数中,用Model对象准备输出的值
6) Return 的字符串,是准备用来作为输出的视图的文件名,比如result.jsp
将编译好的class文件,发布到WEB-INF/classes目录下面
其他可用的注解还有:
有用于声明bean的Annotation:
@Component
@Controller(建议使用)
@Repository(建议使用)
@Service(建议使用)
有用于注入bean的Annotation:
@Autowired
@Qualifier
@Required
@Resource(建议使用)这是对jsr-250标准的实现
4、 写spring的配置文件,让spring的servlet找到我们的Action
5、 编写视图jsp文件
6、 发布项目后,在地址栏中测试
7、 Spring MVC工作原理
①当用户在浏览器中点击一个链接或者提交一个表单时,那么就会产生一个请求(request)。当请求离开浏览器时,它会携带用户请求的信息(比如说请求的URL信息,用户名,密码什么的)。
②请求的第一站到达的是Spring的DispatcherServlet,它是一个前端控制器,工作是将用户的请求委托给其他的组件(这里是交给Spring MVC的控制器)去处理。这里DispatcherServlet要决定将请求传给哪一个控制器(Controller)去处理,那么这时就需要处理器映射(HandlerMapping)了。处理器映射会看请求的URL信息,然后决定将请求交给哪一个控制器去处理。比如说有两个控制器ControllerA和ControllerB,分别处理url为a.do和b.do的请求,那么当请求者的url为a.do时,那么DispatcherServlet就将请求交给ControllerA进行处理。这个控制器就是我们开发人员写的了。
③当选择了一个合适的控制器后,DispatcherServlet就会根据控制器指定的方法里面的参数名称,从request对象中读取客户端传来的参数,然后调用这个方法。这时就进入我们的代码段了。我们在这里拿到了客户端提交来的数据,进行处理,比如对数据库的增删改操作。当然这些操作我们可以交给另外的service去处理,以方便做事务处理。
④我们的控制器对用户请求所携带的信息进行处理(或交给模型层处理)后,经常会产生一些其他的需要返回给浏览器进行显示的数据。这些原始数据直接显示出来显然是不友好的,那么就需要视图(View)来对这些数据进行显示了。控制器的最后一件事就是将模型数据打包,并且指定产生输出的视图的特定名称,然后它将模型(我们用Model对象)、视图名称发送给DispatcherServlet。所以控制器并没有与视图进行耦合,因为传递给DispatcherServlet的视图名称并不是某一个指定的特殊的文件名称(如后缀名一定是JSP或其他什么名称),它只要是一个可以产生输出和展示结果的逻辑名称就可以了。
⑤DispatcherServlet会向一个视图解析器(ViewResolver)进行请求,视图解析器可以将逻辑视图名称映射到一个特定的视图显示文件上面。
⑥现在DispatcherServlet知道哪一个视图文件可以显示结果了。该视图将会利用模板数据产生输出,这些输出通过response对象返回给客户端进行显示。
完