花瓣小跑 发表于 2024-12-17 18:38:43

Springmvc初学

什么是springmvc

   springmvc框架它是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]
查看完整版本: Springmvc初学