Springmvc初学
什么是springmvcspringmvc框架它是spring框架的一个分支。它是按照mvc架构思想设计的一款框架。springmvc的重要作用: 吸收浏览器的请求数据,对数据进行处理,然后返回页面进行表现。
为什么要学习springmvc
https://i-blog.csdnimg.cn/direct/9244661c0a0b40e39dbbae06401f0c95.png
如何使用springmvc?
1.创建maven的web工程并把依靠引入
<dependencies>
<!--springmvc依靠-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.15.RELEASE</version>
</dependency>
</dependencies>
2.创建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"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
<!--1.包扫描-->
<context:component-scan base-package="com.ykq.controller"/>
<!--2.开启注解驱动-->
<mvc:annotation-driven/>
<!--3.视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--前缀-->
<property name="prefix" value="/views/"/>
<!--后缀-->
<property name="suffix" value=".jsp"/>
</bean>
</beans>
3.注册公共的servlet ---
<?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">
<servlet>
<servlet-name>spring01</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--加载spring设置文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring01.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>spring01</servlet-name>
<!--访问任何路径都会颠末servlet-->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
4.编写controller类
@Controller //表示该类为控制层类.
@RequestMapping("/book")
public class BookController {
@RequestMapping("/index") //当访问index路径时会映射到该方法。
public String index(){ //业务代码
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~");
return "hello";//颠末视图解析器。/views/hello.jsp
}
@RequestMapping("/add") //当访问index路径时会映射到该方法。
public String add(){ //业务代码
System.out.println("************************");
return "add";//颠末视图解析器。/views/hello.jsp
}
}
5.总结springmvc的流程
1. 客户端发生请求http://localhost:8080/book/index
2. 来到tomcat服务器。
3. springmvc的前端控制器DipatcherServlet担当所有的请求。
4. 查看你的请求地址和哪个@RequestMaping匹配。
5. 执行对应的方法。方法会返回一个字符串。
6. 把该字符串颠末视图解析器拼接。 /前缀/字符串.后缀
7. 拿到拼接的地址,找到对应的网页。 /views/hello.jsp
8. 渲染该网页给客户
6.处理静态资源
静态资源:网页中见到: js,css,image,html都是静态资源。
由于springmvc拦截所有的资源。包罗静态资源路径。如访问/images/2.jpg 默认找@RequestMapping路径。而springmvc并每个该路径。我们正常不颠末让springmvc找@RequestMapping. 我们应该告诉springmvc不处理这种资源路径。
在springmvc设置文件中参加下面的内容即可放行静态资源。
<!--3.放行静态资源-->
<mvc:default-servlet-handler/>
7. 担当参数
7.1 担当少量参数(如删除操作通报id)
https://i-blog.csdnimg.cn/direct/11040b086be64ac2a23265a3671a0708.png
7.2 担当大量参数
如添加操作 修改操作。应该封装一个实体类。必须包管实体类的属性要和参数的名字同等。
https://i-blog.csdnimg.cn/direct/d16beff56c1641e99a13397893cf2fff.png
7.3 解决乱码问题(编码过滤器)
@WebFilter(urlPatterns = "/*")
public class EncodingFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
servletRequest.setCharacterEncoding("utf-8");
servletResponse.setCharacterEncoding("utf-8");
filterChain.doFilter(servletRequest,servletResponse);//放行
}
@Override
public void destroy() {
}
}
7.4 处理日期参数(@DateTimeFormat注解)
https://i-blog.csdnimg.cn/direct/52327ebc1c4a4e5190686f32f304aec3.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]