SpirngMVC的理解和使用

什么是SpirngMVC

要了解SpirngMVC,首先要了解MVC模式,MVC模式是指模型(Model)视图(View)控制器(Controller)的简写,其核心思想是通过将请求处理控制,业务逻辑,数据封装,数据显示等流程节点分离的思想来组织代码

所以,SpringMVC是一款基于MVC设计模式思想实现的MVC框架,属于Spring技术栈的一部分。可以帮助我们进行更加简洁的Web开发,并且天生与Spring框架集成,更利于架构的设计与搭建。

使用SpringMVC的流程
(1)请求处理

@RequestMapping:处理用户请求,类似于doget跟dopost位置:

作用于类上:一级目录    作用于方法:二级目录

@RequestMapping(value="/init")//二级目录
        public String userInit(){
            System.out.println("==========进入了springMVC的控制器=========");
            System.out.println("调用业务层喽");
            return "success";//返回方法执行完要跳转的页面名称
        }

@DeleteMapping删除         @PutMapping 修改

@GetMapping 查询           @PostMapping  新增

(2)参数绑定

有四种数据类型:1.基本数据类型 ,2.实体类  3.数组和集合  4.ServletAPI

使用方式:1.发送请求中携带数据的key与方法参数的name必须一致

@RequestMapping("/show5")
    public String show5(String name){
        System.out.println("超级大帅哥是:"+name);
        return "success";
    }
(3)常用注解有

@RequestParam
作用:把请求中指定名称的参数给控制器中的形参赋值。
          如果页面标签名称和方法参数名称不一致,可以使用此注解实现
属性:name属性:设置参数名称
         defaultValue属性:设置默认值         required属性:设置是否为必传
@RequestBody
作用:用于获取"请求体"内容。直接使用得到是 key=value&key=value...
           结构的数据,并可以转换为对象
属性: required:是否必须有请求体。默认值是:true。                                                  @PathVaribale
作用:用于绑定 url 中的占位符。例如:请求 url 中 /delete/{id},
       这个{id}就是 url 占位符。url 支持占位符是 spring3.0 之后加入的。是 springmvc 支持 rest 风格 URL 的一个重要标志
属性:value:用于指定 url 中占位符名称。required:是否必须提供占位符。                                   @RequestHeader
作用:用于获取请求消息头。
属性:  value:提供消息头名称      required:是否必须有此消息头
@CookieValue
作用
:  用于把指定 cookie 名称的值传入控制器方法参数。
属性:value:指定 cookie 的名称。required:是否必须有此 cookie。

(4)数据传递

方法的参数来进行数据的接受,返回值一般为string类型,当没有注解时返回值的字符串一般指的是路径或html文件的名字

当完成以上步骤即对项目的启动类进行运行,然后输入自己写好的Url路径(一般本机端口为localhos:8080/一级路径/二级路径)即可算是完成一个最简单的SpringMVC项目

Spring MVC是一种基于MVC(Model-View-Controller)模式的Web框架,可以用于开发Web应用程序。下面是一个简单的Spring MVC登录注册示例。 1. 创建一个Maven项目,添加Spring MVC的依赖。 ```xml <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.0.RELEASE</version> </dependency> ``` 2. 创建一个控制器(Controller)类,处理请求和响应。 ```java @Controller public class UserController { @RequestMapping("/login") public String login() { return "login"; } @RequestMapping("/register") public String register() { return "register"; } @RequestMapping("/doLogin") public String doLogin(@RequestParam String username, @RequestParam String password, Model model) { // 处理登录逻辑 if (isValid(username, password)) { model.addAttribute("username", username); return "welcome"; } else { model.addAttribute("error", "Invalid username or password"); return "login"; } } @RequestMapping("/doRegister") public String doRegister(@RequestParam String username, @RequestParam String password, Model model) { // 处理注册逻辑 if (isValid(username, password)) { model.addAttribute("username", username); return "welcome"; } else { model.addAttribute("error", "Invalid username or password"); return "register"; } } private boolean isValid(String username, String password) { // 验证用户名和密码是否正确 return true; } } ``` 3. 创建视图(View)文件,显示HTML页面。 - login.html ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Login</title> </head> <body> <h1>Login</h1> <form action="/doLogin" method="POST"> <div> <label for="username">Username:</label> <input type="text" id="username" name="username"> </div> <div> <label for="password">Password:</label> <input type="password" id="password" name="password"> </div> <button type="submit">Login</button> </form> <p style="color:red">${error}</p> </body> </html> ``` - register.html ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Register</title> </head> <body> <h1>Register</h1> <form action="/doRegister" method="POST"> <div> <label for="username">Username:</label> <input type="text" id="username" name="username"> </div> <div> <label for="password">Password:</label> <input type="password" id="password" name="password"> </div> <button type="submit">Register</button> </form> <p style="color:red">${error}</p> </body> </html> ``` - welcome.html ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Welcome</title> </head> <body> <h1>Welcome, ${username}!</h1> </body> </html> ``` 4. 配置Spring MVC,指定视图解析器(ViewResolver)和静态资源路径。 ```xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-5.2.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-5.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-5.2.xsd"> <context:component-scan base-package="com.example.controller" /> <mvc:annotation-driven /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/" /> <property name="suffix" value=".html" /> </bean> <mvc:resources mapping="/static/**" location="/static/" /> </beans> ``` 5. 运行Tomcat服务器,访问http://localhost:8080/login即可进入登录页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值