Mvc、Springmvc框架

发布于:2024-12-18 ⋅ 阅读:(28) ⋅ 点赞:(0)

一.Mvc:

1.概念:

MVC它是一种设计理念。把程序按照指定的结构来划分: Model模型 、View视图 、Controller控制层;

 结构图:

 二.Springmvc:

1.概念:

springmvc框架它是spring框架的一个分支。它是按照mvc架构思想设计的一款框架。。springmvc的主要作用: 接收浏览器的请求数据,对数据进行处理,然后返回页面进行显示.

2.为什么学springmvc?

 

 3.如何使用springmvc?⭐

准备工作:创建一个maven的web工程

 第一步:在创建好的maven的web工程中把依赖引入

  <dependencies>
    <!--springmvc依赖-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.15.RELEASE</version>
    </dependency>
  </dependencies>

第二步:创建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 http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">


 <!--第二步:springmvc的配置文件-->
    <!--包扫描  扫描的是@Controller 和 @RequestMapping
    扫描范围:扫描指定的包和子包
    可以到com.zyl
    -->
 <context:component-scan base-package="com.zyl.controller"/>
 <!--开启注解驱动-->
 <mvc:annotation-driven/>
    <!--放行静态资源-->
    <mvc:default-servlet-handler/>
 <!--视图解析器-->
 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--前缀-->
  <property name="prefix" value="/views/"/>
  <!--后缀-->
  <property name="suffix" value=".jsp"/>
 </bean>

</beans>

 第三步:注册公共的servlet ---[DispatcherServlet](这里注意web.xml版本太低不行,需要替换掉之前的4.0版本。看着改)

<?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">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
<!--第四步: 注册公共的servlet-DispatcherServlet-->
  <!--注册公共servlet-->
<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>

第四步:.编写controller类

基本完成搭建框架步骤!!!!

springmvc的流程:

 *     1. 客户端发生请求http://localhost:8080/hello/index
 *     2. 来到tomcat服务器。
 *     3. springmvc的前端控制器DipatcherServlet接受所有的请求。
 *     4. 查看你的请求地址和哪个@RequestMaping匹配。
 *     5. 执行对应的方法。方法会返回一个字符串。
 *     6. 把该字符串经过视图解析器拼接。 /前缀/字符串.后缀
 *     7. 拿到拼接的地址,找到对应的网页。 /views/hello.jsp
 *     8. 渲染该网页给客户

三、处理静态资源

静态资源就是网页中见到: js,css,image,html都是静态资源。

 

四、 接受参数

1. 接受少量参数

删除操作---值传递id.

 2.接受大量参数

添加操作 修改操作。应该封装一个实体类。必须保证实体类的属性要和参数的名字一致。

(封装一个实体类就行了)

五、 解决乱码

只能使用过滤器。

1.自己编写过滤器

package com.zyl.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

/**
 * @className: MyFilter
 * @author: Zyl
 * @date: 2024/12/14 15:04
 * @Version: 1.0
 * @description:
 */
@WebFilter(urlPatterns = "/*")
public class MyFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("过滤器初始化");
    }
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
       servletResponse.setCharacterEncoding("UTF-8");
       servletRequest.setCharacterEncoding("UTF-8");
        filterChain.doFilter(servletRequest,servletResponse);
    }
    @Override
    public void destroy() {

    }
}

注意使用过滤器需要引入依赖:

加上jdk8的代码吧:后期好找:

<!--使用jdk8版本的-->
<properties>
  <maven.compiler.source>8</maven.compiler.source>
  <maven.compiler.target>8</maven.compiler.target>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

六、 处理日期参数

这个比较简单,就在实体类里面加一个属性就可以了,然后加上注解:


网站公告

今日签到

点亮在社区的每一天
去签到