一、SpringMVC了解
- springmvc的底层是Servlet,以Servlet为核心,接收请求,处理请求,显示处理结果给用户。
- DispatcherServlet 是框架一个Servlet对象,负责接收请求,响应处理结果。
- DispatcherServlet 他的父类是HttpServlet
- M:Model,模型层,指工程中的JavaBean,作用是处理数据
- V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据
- C:Controller,控制层,指工程中的servlet,作用是接收请求和响应浏览器
- MVC的处理模式是:用户通过视图层(View)将数据发送给服务器的控制层(Controller),控制层通过调用业务层在调用数据层去获取数据, 然后再将请求处理的结果返回给View视图层,最后视图层渲染数据响应给浏览器。
二、SpringMVC入门
2.1 springmvc配置
<!-- 添加注解扫描器 -->
<context:component-scan base-package="com.meteor.controller"/>
<!-- 添加视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置前缀 -->
<property name="prefix" value="/admin/"/>
<!-- 配置后缀 -->
<property name="suffix" value=".jsp"/>
</bean>
<!-- 注册SpringMVC框架 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<!-- 填写springmvx.xml配置文件的名称,让它去读取 -->
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--注册Spring框架,目的就是启动spring容器-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext_*.xml</param-value>
</context-param>
2.2 解决post请求中文乱码问题
<!--添加中文编码过滤器
private String encoding;
private boolean forceRequestEncoding;
private boolean forceResponseEncoding;
-->
<filter>
<filter-name>encode</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>
<init-param>
<param-name>forceRequestEncoding</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>forceResponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encode</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2.3 @RequestMapping注解
- 可以放在类的上面,相当于多加了一层路径
- 可以放在方法上面,表示请求的路径
- value可以默认不写,method默认是GET请求