目录结构
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"><display-name>SpringMVC01</display-name><!-- 处理中文乱码 --><filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- SpringMVC控制器 --><servlet><servlet-name>dispatcherServlet</servlet-name><!-- 主要就是DispatcherServlet这个servlet起到分发的作用,对请求进行控制分发 --><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><!-- 每个springmvc项目都要一个springmvc项目配置位置,下面配置springmvc配置文件的路径 --><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/springMVC-servlet.xml</param-value></init-param><!-- 当容器启动时立即启动 --><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><!-- 下面配置springmvc的过滤分发请求类型,可以是/ 或者*.action等 --><url-pattern>/</url-pattern></servlet-mapping>
</web-app>
springmvc-servlet
<?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"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd"><!-- 定义要扫描 controller的包--><context:component-scan base-package="wormday.springmvc.helloworld" /><mvc:default-servlet-handler /><!-- 启动注解驱动 SpringMVC 功能 --><mvc:annotation-driven /><!-- 配置视图解析器 如何把handler 方法返回值解析为实际的物理视图 --><!--指定视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 视图的路径 --><property name="prefix" value="/WEB-INF/"/><!-- 视图名称后缀 --><property name="suffix" value=".jsp"/></bean></beans>
HIcontroller类
package wormday.springmvc.helloworld;import org.springframework.stereotype.Controller;import org.springframework.ui.Model; // 这里导入了一个Model类import org.springframework.web.bind.annotation.*;@Controller
@RequestMapping("/hi")
public class HiController {@RequestMapping("/say")public String say(Model model) { // 参数中传入Modelmodel.addAttribute("name","wormday"); // 指定Model的值model.addAttribute("url","http://www.cnblogs.com/wormday/p/8435617.html"); // 指定Model的值return "say";}@RequestMapping("/loginForm")public String loginForm(){return "login";}@RequestMapping("/hi")public String loginFor(){return "hi";}@RequestMapping(value = "/login",method = RequestMethod.POST)public String loginXS(String username, String password){System.out.println("执行登录");System.out.println("username"+username);System.out.println("password"+password);return "redirect:hi";}@RequestMapping("/testcase")public String testCookie(@CookieValue("JSESSIONID") String sessionId){System.out.println(sessionId);return "success";}@RequestMapping("/testHeader")public String testHeader(@RequestHeader(value = "User-Agent") String header){System.out.println(header);return "success";}@RequestMapping(value = "/trstram",params = {"username","age!=10"})public String testParam(String username,Integer age){System.out.println(username+" "+age);return "success";}@RequestMapping("/textpath/*/helen")public String test(){System.out.println("1");return "success";}
}
usercontroller类
package wormday.springmvc.helloworld;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;@Controller
@RequestMapping("/hi")
//@RequestMapping("/list")public class UserController {/* @RequestMapping(value = "/list",method = RequestMethod.GET)public String login(String username,String password){System.out.println("方法1:参数直接获取");System.out.println("username:"+username);System.out.println("password:"+password);return "list";}*/@RequestMapping(value = "/list",method = RequestMethod.GET)public String listForm(@RequestParam(value = "currentpage",required = false,defaultValue = "1")Integer currentpage,@RequestParam(value = "pagesize",required = false,defaultValue = "10")Integer pagesize){System.out.println("currentpage"+currentpage);System.out.println("pagesize"+pagesize);return "list";}
}
say.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
hello world,${name}
<br/>${url}</body>
</html>复制代码
login.jsp
<%--Created by IntelliJ IDEA.User: geyaoDate: 2019/11/6Time: 19:57To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<form action="hi" method="post"><label for="username">用户名<input type="text" id="username" name="username"></label><label for="password">密码<input type="text" id="password" name="password"></label><button>登录</button>
</form>
</body>
</html>
hi.jsp
<%--Created by IntelliJ IDEA.User: geyaoDate: 2019/11/6Time: 20:17To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
我是歌谣,登录成功
</body>
</html>
list.jsp
<%--Created by IntelliJ IDEA.User: geyaoDate: 2019/11/6Time: 19:57To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<h1>我是表单</h1></body>
</html>
success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
成功</body>
</html>
运行结果