SpringMVC示例
来源:互联网 发布:淘宝企业店铺有优势吗 编辑:程序博客网 时间:2024/06/07 00:21
先看一个SpringMVC的HelloWorld
SpringMVC传统的控制器开发方式是实现Controller接口,Spring2.5开始,提供了注解类型的开发方式,比前者更好。本文分别介绍了2种方式。
基于Controller接口的方式
首先熟悉几个概念
DispatcherServlet:
SpringMVC提供了org.springframework.web.servlet.DispatcherServlet作为Servlet。通过一个额外的xml文件来控制。
Controller接口:
请求通过DispatcherServlet分发给对应的处理的Java类(SpringMVC中称为Handle)。该类应该实现org.springframework.web.servlet.mvc.Controller接口,该接口必须实现一个方法,签名如下
ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception
接下来演示基于Controller接口的例子
1.导入必要的jar文件。
2.配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <servlet> <servlet-name>springmvc</servlet-name> <!--加载DispatcherServlet--> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <!--contextConfigLocation是参数名称,它的值为SpringMVC配置文件的路径。 若不配置它,则Spring默认到/WEB-INF/文件夹下查找[servlet-name]-servlet.xml文件 SpringMVC根据该xml文件创建一个WebApplicationContext容器, 类似Spring的ApplicationContext容器,开发者可以使用Spring的各种功能--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/springmvc-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping></web-app>
3.配置SpringMVC的配置文件(/WEB-INF/springmvc-config.xml)
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" 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.xsd"> <bean name="/hello" class="controller.HelloController"/></beans>
可见,与Spring的配置文件类似,它描述了一个bean,对应的类为controller文件夹下的HelloController类。
4.Controller类的实现(/controller/HelloController)
package controller;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.Controller;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class HelloController implements Controller{ @Override public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { ModelAndView mv = new ModelAndView(); mv.addObject("message","HelloWorld"); mv.setViewName("/WEB-INF/content/welcome.jsp"); return mv; }}
5.View页面(/WEB-INF/content/welcome.jsp)
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>welcome</title></head><!--body中使用了EL表达式--><body>${requestScope.message}</body></html>
部署Web应用后,在浏览器中输入URL来测试
http://localhost:8080/hello
显示出welcome页面,SpringMVC访问成功。
基于注解的控制器
只需要修改3、4两步的文件即可
springmvc-config.xml:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--这里不再需要描述bean,而是扫描controller文件夹,查找其中所有基于注解的类--> <context:component-scan base-package="controller"/></beans>
HelloController:
package controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;<!--使用@Controller注解,无需实现接口,可以同时处理多个请求-->@Controllerpublic class HelloController{ <!--通过@RequestMapping映射"/hello"--> @RequestMapping(value = "/hello") <!--hello是普通方法,不再继承自Controller接口--> public ModelAndView hello() { ModelAndView mv = new ModelAndView(); mv.addObject("message","HelloWorld"); mv.setViewName("/WEB-INF/content/welcome.jsp"); return mv; }}
总结
SpringMVC开发流程
1.在web.xml文件中定义前端控制器DispatcherServlet来拦截用户请求。
2.若要用Post方式提交请求,则编写包含表单数据的jsp页面。
3.定义处理用户请求的类。
4.通过spring的xml配置文件:描述该类(基于Controller接口的情况)或者扫描指定包下所有的基于注解的类。
5.编写视图页面。
6.enjoy it. :)
与传统的servlet+Jsp模式相比,SpringMVC是在web.xml文件和控制类中间加入了DispatcherServlet和Spring配置文件,从而将Spring引入到服务器端的程序,接下来像Spring一样,运行时根据配置文件来生成容器、再自动通过反射机制实例化bean……
当然SpringMVC的作用远不仅如此,本文只是一个入门的引导。
(萌新一枚,难免有错误或疏漏,欢迎指正)
- springMVC示例
- SpringMVC示例
- SpringMVC示例
- springmvc简单示例
- SpringMVC+Hibernate整合(示例)
- SpringMVC+JPA入门示例
- SpringMVC的简单示例
- SpringMVC+myBatis简单示例
- SpringMVC详细示例
- SpringMVC + Hibernate + Framewoker 示例
- SpringMVC详细示例
- SpringMVC+JDBC:分页示例
- SpringMVC详细示例
- SpringMVC详细示例实战
- springmvc下载文件示例
- SpringMVC入门小示例
- springmvc(2)---入门示例
- SpringMVC项目示例创建
- 如何通过反射创建对象?
- 安卓app如何处理串口的响应信息
- (数据库)-触发器
- Android Retrofit2的使用
- redis详解
- SpringMVC示例
- Android fitsSystemWindows 作用
- libcudnn.so.6:cannot open sharedobjectfile: No such file or directory
- Whither Swift?
- BZOJ 1030 文本生成器 AC自动机+dp
- Pandas透视表和交叉表
- 获取python路径
- 3D数学基础---坐标系
- android 进程与线程