SpringMVC 入门
SpringMVC是什么?
Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出来,如下图:
入门程序
1.在IDEA中创建一个项目,添加一个模块springMVC,添加maven支持
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.3.RELEASE</version>
</dependency>
</dependencies>
2.在web/WEB_INF/web.xml文件中配置DispatcherServlet分发器
<!--配置分发器-->
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/spring/springMvc-servlet.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
如果不指定 <param-value>
的值,则默认配置文件为/WEB-INF/<servlet-name>-servlet.xml
。<load-on-startup>
是启动顺序,通常让Servlet跟随Servlet容器一起启动。<url-pattern>
定义要拦截的URL请求。
3.在resource下创建spring文件夹并且添加文件springMvc-servlet.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:mvc="http://www.springframework.org/schema/mvc"
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/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<!-- 使用注解驱动 -->
<mvc:annotation-driven />
<!-- 配置扫描路径 -->
<context:component-scan base-package="com.txp.springmvc.cotroller" />
<!--springMvc-servlet.xml 前后缀-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/" />
<property name="suffix" value=".jsp"/>
</bean>
</beans>
4.编写控制器
/**
* HomeController
*/
@Controller
public class Homecontroller {
/**
* 打开主页
*/
@RequestMapping("/home")
public String openHome(){
System.out.println("Hello World");
return null;
}
@RequestMapping("/home2")
public String openHome1(){
System.out.println("Hello World");
return "index2";
}
}
启动即可。
常用注解
- @Controller:声明Action组件,负责注册bean到Spring上下文
- @RequestMapping:用于为控制器指定可以处理的url请求
- @RequestParam:用于指定参数的name属性
- @RequestBody:用于读取Request请求的body部分数据
- @ResponseBody:用于将控制器方法返回的对象写入到Response对象的body数据区
- @PathVariable:用于指定url作为参数
- @Resource用于注入,( 由j2ee提供 ) 默认按名称装配
- @Autowired用于注入,(由spring提供) 默认按类型装配
- @ExceptionHandler:用于异常处理的方法
- @ControllerAdvice:用于使控制器成为全局的异常处理类
- @ModelAttribute:用于优先调用被注解的方法,或注解参数中的隐藏对象
入门程序例子二
模拟注册行为
首先:在web下创建reg.jsp文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>reg</title>
</head>
<body>
<form action="/doReg" method="post">
UserName:<input type="text" name="username"><br/>
PassWord:<input type="password" name="password"><br>
<input type="submit">
</form>
</body>
</html>
再者:添加RegController文件
@Controller
public class RegController {
@RequestMapping("/toReg")
public String toReg(){
return "reg";
}
@RequestMapping("/doReg")
public String doReg(@RequestParam("username") String username,@RequestParam("password") String password){
System.out.println("插入数据");
System.out.println(username+" "+password);
return "index";
}
}
其他文件不变