今天我们来学习第一个SpringMVC程序

一.配置开发方式

(1)首先建立一个SpringMVC  web程序

(2)导入jar包

(3)建立UserController.java

  1. package com.zk.UserController;
  2.  
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5.  
  6. import org.springframework.web.servlet.ModelAndView;
  7. import org.springframework.web.servlet.mvc.Controller;
  8.  
  9. public class UserController implements Controller{
  10.  
  11. public ModelAndView handleRequest(HttpServletRequest request,
  12. HttpServletResponse response) throws Exception {
  13. // TODO Auto-generated method stub
  14. // 接受请求,接受参数,验证参数
  15. // 封装参数,调用业务方法
  16. // 返回视图
  17. ModelAndView mv=new ModelAndView();
  18. //设置页面回显数据
  19. mv.addObject("hello", "凤姐喜欢你");
  20. //指定跳转视图,返回物理视图
  21. //mv.setViewName("/jsp/index.jsp");
  22. //返回逻辑视图
  23. mv.setViewName("index");
  24. return mv;
  25. }
  26.  
  27. }

(4)配置web.xml,在web.xml配置DispatcherServlet

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  7. <display-name>Spring_001</display-name>
  8. <servlet>
  9. <servlet-name>springmvc</servlet-name>
  10. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  11. <!--
  12. Spring 默认加载SpringMVC的配置文件,这个需要满足一下规则:
  13. 命名规则:Servlet-name-servlet.xml========>SpringMVC-servlet.xml
  14. 路径规范SpringMVC-serlvet.xml必须放在WEB-INF下
  15. -->
  16. <init-param>
  17. <param-name>contextConfigLocation</param-name>
  18. <param-value>/WEB-INF/config/springmvc.xml</param-value>
  19. </init-param>
  20. </servlet>
  21. <servlet-mapping>
  22. <servlet-name>springmvc</servlet-name>
  23. <url-pattern>*.do</url-pattern>
  24. </servlet-mapping>
  25. <welcome-file-list>
  26. <welcome-file>index.jsp</welcome-file>
  27. </welcome-file-list>
  28. </web-app>

(5)配置springmvc.xml,放在config文件夹下;

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans
  5. http://www.springframework.org/schema/beans/spring-beans.xsd
  6. http://www.springframework.org/schema/aop
  7. http://www.springframework.org/schema/aop/spring-aop.xsd
  8. http://www.springframework.org/schema/tx
  9. http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
  10. <!-- 配置处理器映射器,SpringMVC的默认处理器映射器
  11. BeanNameUrlHandlerMapping:根据bean(自定义Contoller)的name属性的url去寻找handler(Action:controller)
  12. -->
  13. <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
  14. <!-- 配置处理器适配器:负责执行Controller,springMVC默认处理器适配器SimpleControllerHandlerAdapter -->
  15. <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
  16. <!-- 配置自定义UserController -->
  17. <bean name="/hello.do" class="com.zk.UserController.UserController"></bean>
  18. <!-- 配置SpringMVC视图解析器:解析逻辑视图
  19. 后台返回逻辑视图,
  20. 视图解析器解析出真正的物理视图:前端+逻辑视图+后缀=====/WEB-INF/jsps/index.jsp
  21. -->
  22. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  23. <property name="prefix" value="/WEB-INF/jsp/"></property>
  24. <property name="suffix" value=".jsp"></property>
  25. </bean>
  26. </beans>

(6)jsp目录下,index.jsp

  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6.  
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  8. <html>
  9. <head>
  10. <base href="<%=basePath%>">
  11. <title>My JSP 'index.jsp' starting page</title>
  12. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  13. <meta http-equiv="pragma" content="no-cache">
  14. <meta http-equiv="cache-control" content="no-cache">
  15. <meta http-equiv="expires" content="0">
  16. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  17. <meta http-equiv="description" content="This is my page">
  18. <!--
  19. <link rel="stylesheet" type="text/css" href="styles.css">
  20. -->
  21. </head>
  22.  
  23. <body>
  24. ${hello }
  25. </body>
  26. </html>

运行程序后,输入url:http://ms-20170731tkkc:8080/SpringMVC_001/hello.do,得到运行结果为:

二.注解开发方式

第二种开发方式为注解开发,使用@Controller加@RequestMapping进行注解开发。

代码如下:

UserController.java

  1. package com.zk.Controller;
  2.  
  3. import org.springframework.stereotype.Controller;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. import org.springframework.web.bind.annotation.RequestMethod;
  6.  
  7. @Controller//<bean id="UserController" class="UserController路径">
  8. public class UserController {
  9. //访问路径注意更改
  10. //请求映射value="/hello.do",
  11. //@RequestMapping("hello")
  12. //@RequestMapping("/hello.do")
  13. //@RequestMapping(value="/hello.do")
  14. //@RequestMapping(value="/hello.do",method=RequestMethod.GET)
  15. @RequestMapping(value="/hello.do",method={RequestMethod.GET,RequestMethod.POST})
  16. public String myHello(){
  17. return "hello";
  18. }
  19. }

requestMapping(value=”/hello.do”,method=RequestMethod.POST)

浏览器直接访问,a标签都是get请求

表单提交(指定post),ajax指定post提交,post提交。

Spring.xml配置文件如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans
  3. xmlns="http://www.springframework.org/schema/beans"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xmlns:p="http://www.springframework.org/schema/p"
  6. xmlns:context="http://www.springframework.org/schema/context"
  7. xsi:schemaLocation="http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  9. http://www.springframework.org/schema/context
  10. http://www.springframework.org/schema/context/spring-context-3.0.xsd
  11. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
  12. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
  13.  
  14. <context:component-scan base-package="com.zk.Controller"></context:component-scan>
  15.  
  16. <!-- 配置注解处理器映射器
  17. 功能:寻找执行类Controller
  18. -->
  19. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>
  20.  
  21. <!-- 配置注解处理器适配器
  22. 功能:调用controller方法,执行controller
  23. -->
  24. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>
  25.  
  26. <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  27. <property name="prefix" value="/WEB-INF/jsp/"></property>
  28. <property name="suffix" value=".jsp"></property>
  29. </bean>
  30. </beans> 

web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  7. <display-name>Spring_006</display-name>
  8. <servlet>
  9. <servlet-name>springmvc</servlet-name>
  10. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  11. <!--
  12. Spring 默认加载SpringMVC的配置文件,这个需要满足一下规则:
  13. 命名规则:Servlet-name-servlet.xml========>SpringMVC-servlet.xml
  14. 路径规范SpringMVC-serlvet.xml必须放在WEB-INF下
  15. -->
  16. <init-param>
  17. <param-name>contextConfigLocation</param-name>
  18. <param-value>/WEB-INF/config/springmvc.xml</param-value>
  19. </init-param>
  20. </servlet>
  21. <servlet-mapping>
  22. <servlet-name>springmvc</servlet-name>
  23. <url-pattern>*.do</url-pattern>
  24. </servlet-mapping>
  25. <welcome-file-list>
  26. <welcome-file>index.jsp</welcome-file>
  27. </welcome-file-list>
  28. </web-app>

hello.jsp

  1. <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6.  
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  8. <html>
  9. <head>
  10. <base href="<%=basePath%>">
  11.  
  12. <title>My JSP 'Hello.jsp' starting page</title>
  13.  
  14. <meta http-equiv="pragma" content="no-cache">
  15. <meta http-equiv="cache-control" content="no-cache">
  16. <meta http-equiv="expires" content="0">
  17. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  18. <meta http-equiv="description" content="This is my page">
  19. <!--
  20. <link rel="stylesheet" type="text/css" href="styles.css">
  21. -->
  22.  
  23. </head>
  24.  
  25. <body>
  26. Hello,UserController <br>
  27. </body>
  28. </html>

  运行结果如下:

SpringMVC_001 第一个SpringMVC程序的更多相关文章

  1. 手把手教你优雅的编写第一个SpringMVC程序

    可能之前写的文章走进SpringMVC世界,从SpringMVC入门到SpringMVC架构中的第一个springMVC入门程序讲解的不是那么优雅.细致.精巧,因此特地写这篇稍微优雅.细致.精巧一些的 ...

  2. SpringMVC-02 第一个SpringMVC程序

    SpringMVC-02 第一个SpringMVC程序 第一个SpringMVC程序 配置版 新建一个Moudle , springmvc-02-hello,确定依赖导入进去了 1.配置web.xml ...

  3. 第一个SpringMVC程序 (配置版)

    通过配置版本的MVC程序,可以了解到MVC的底层原理,实际开发我们用的是注解版的! 1.新建一个普通Maven的项目,然后添加web的支持 2.导入相关的SpringMVC的依赖 3.配置web.xm ...

  4. SpringMVC学习02(我的第一个SpringMVC程序)

    2.Hello,SpringMVC 2.1 配置版 1.新建一个Moudle , springmvc-02-hello , 添加web的支持! 2.确定导入了SpringMVC 的依赖! 3.配置we ...

  5. 1、第一个SpringMVC程序

    1.创建如下项目结构 2.在src下的com.springmvc下创建User.java package com.springmvc; public class User { private Stri ...

  6. 第一个SpringMVC程序 (注解版)

    1.新建一个web项目 2.导入相关jar包 3.编写web.xml , 注册DispatcherServlet <?xml version="1.0" encoding=& ...

  7. 第一个SpringMVC程序(最简单的)

      注册中央调度器,这个中央调度器就是org.springframework.web.servlet.DispatcherServlet这个类(web.xml servlet-name节点的名字,必须 ...

  8. 第一个SpringMVC程序

    1.创建工程 2.导入依赖 3.编写配置文件(web.xml) 配置了SpringMVC的入口: 4.SpringMVC的配置文件 路径:默认情况下,在目录下找这个文件:/WEB-INF/{servl ...

  9. 建立一个简单的SpringMVC程序

    首先,所建立的程序是一个web程序,所以在web.xml文件中进行如下的配置: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...

随机推荐

  1. Python中matplotlib模块的简单使用

    测试代码如下: # encoding:utf-8 import numpy as np import matplotlib.pyplot as plt x = np.array([1,2,3,4,5, ...

  2. PP: A dual-stage attention-based recurrent neural network for time series prediction

    Problem: time series prediction The nonlinear autoregressive exogenous model: The Nonlinear autoregr ...

  3. 常见通用框架的理解(Redis,Zookeeper,Thrift)

    redis 主要功能是内存版的Hashta zookeeper 主要功能是分布式中的全局变量. thrift  跨平台的Client和Server通信架构. taskengine用于启动定时任务和查看 ...

  4. Spring-Boot-2.0.0-M1版本将默认的数据库连接池从tomcat jdbc pool改为了hikari

    spring-configuration-metadata.json spring-boot-autoconfigure-2.0.0.M7.jar!/META-INF/spring-configura ...

  5. java 学习(day1)

    之前学java没好好听课,会一点又不熟练,于是准备重新开始学一些细节,记录每日所学新知识. a+b java的a+b很有意思,当你输出的是" "+a+b,先假设a=2,b=3.然后 ...

  6. JS高级---复习和课程介绍

    课程介绍 浅拷贝 深拷贝----------|======>递归 遍历DOM树-------|======>递归------晚上能够把代码写出来是最好的   正则表达式-------很重要 ...

  7. 题解【洛谷P2003】平板

    题面 由于本题中\(n\)很小,\(\Theta(n^2)\)的暴力也可以通过. 具体可参照洛谷题解区 #include <bits/stdc++.h> #define itn int # ...

  8. paper: VG -- re-read

    重点:  1.The constructed graph inherits several properties of the series in its structure. periodic se ...

  9. python3练习100题——022

    为了周末轻松点,多做一些题. 原题链接:http://www.runoob.com/python/python-exercise-example22.html 题目:两个乒乓球队进行比赛,各出三人.甲 ...

  10. Hibernate项目的基本步骤和一些错误提示

    以数据库中有一张user表为例: 1.编写POJO持久化类User.javaPOJO(Plain Old Java Objects),简单的Java对象.一个POJO类不用继承任何类,也无须实现任何接 ...