目录
什么是springmvc
SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于SpringFrameWork的后续产品,已经融合在 Spring Web Flow 中。
为什么使用springmvc
我们要先思考之前的操作流程
以往我们在编写代码的过程中,我们在客户端发送请求,通过tomcat的内置引擎把客户的请求封装为Request对象,把响应封装为Response对象,再通过servlet,使用request接受请求参数,并且处理业务代码,使用response响应客户,发送到DAO中,处理数据库数据。
思考:
1.如果使用servlet来接受参数,我们需要手动把接受的参数封装到相应的实体类对象。
2.还需要把相应的结果手动转成json
3.处理业务完成跳转之后容易出现路径的404问题。
这样的操作是不是特别麻烦,而且问题较多,这样springmvc就应运而生了,springmvc框架在实际的开发中接受浏览器请求响应,并且返回页面进行显示,上手比较简单。
spring基础操作
软件:IntelliJ IDEA 2020.1 x64
在idea中创建一个web工程
在main文件夹下创建java,resources
在pom.xml中引入springmvc的依赖
<dependencies>
<!--maven可以把该依赖相关的依赖都引入。-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
</dependencies>
替换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_4_0.xsd"
version="4.0">
在Java目录下根据正确的建包方法创建控制层
编写相关代码
@Controller//表示此java文件为控制层
public class HelloController {
@RequestMapping("/hello01") //根据请求路径映射响应的方法。
public String hello01(){
return "/views/hello01.jsp";
}
}
创建springmvc.xml配置文件
对springmvc进行基本配置
<?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
https://www.springframework.org/schema/context/spring-context.xsd">
<!--1.包扫描 扫描我们自己的控制层类所在的包或者父包-->
<context:component-scan base-package="com.zhang.controller"/>
</beans>
在web.xml引入前端控制器
<!--注册servlet-->
<servlet>
<servlet-name>springmvc01</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--加载springmvc的配置文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc01.xml</param-value>
</init-param>
</servlet>
<!--servlet映射路径
/: 表示所有的控制层路径 以及静态资源
/*: 表示全部 包含jsp网页
-->
<servlet-mapping>
<servlet-name>springmvc01</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
然后就可以进行测试了
启动服务器,键入http://localhhost:8080/项目名/hello01
spring接受请求参数
在表单提交时注册添加,我们可以把所有的请求参数封装到一个实体类对象中
在Java文件夹创建entity实例文件夹,并且创建用户User,为节省get,set方法的编写,这里在pom.xml中引入lombok的jar包
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
</dependency>
编写User对象
创建控制层
可以在springmvc配置文件中放入视图解析器
//视图解析器作用: 把返回的值进行拼接。 /** * <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> * <property name="prefix" value="/views/"/> * <property name="suffix" value=".jsp"/> * </bean> * /views/index02.jsp */
创建登录页面
接受日期类型参数的解决办法:
在日期类型前放入
@DateTimeFormat(pattern="yyyy-MM-dd") //HH:24进制
并且在springmvc.xml配置文件中插入
<mvc:annotation-driven/>
测试:登录后跳转至index02页面并在控制台输出
放行静态资源
什么是静态资源: 比如: css, js, img,html
<!--放行静态资源--> <mvc:default-servlet-handler/>
解决办法
这样图片就会在页面上显示了。