当前位置: 首页 > news >正文

springMVC---常用注解

目录

一、创建项目

1.依赖

2.web.xml

3.spring-mvc.xml

二、RequestParam注解

1.作用

2.属性

3.代码

DeptController类

启动tomcat

三、RequestBody注解 

1.作用

2.属性

3.代码

(1)DeptController类

(2)index.jsp

(3)启动tomcat

四、PathVaribale注解

1.作用

2.属性

3.Restful风格的URL

4.代码

(1)DeptController类

(2)web.xml

(3)启动tomcat

五、RequestHeader注解

1.作用

2.属性

3.代码

(1)DeptController类

(2)启动tomcat

六、CookieValue注解

1.作用

2.属性

3.代码

(1)只有value

(2)只有value,但是没有提供

(3)两个都有


一、创建项目

1.依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.qcby</groupId><artifactId>springMVC13</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!--版本锁定--><spring.version>5.0.2.RELEASE</spring.version></properties><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.0</version><scope>provided</scope></dependency></dependencies>
</project>

2.web.xml

<?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"><!-- 配置过滤器,解决中文乱码的问题 --><filter><filter-name>characterEncodingFilter</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></filter><filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--前端控制器--><servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><!--配置启动加载--><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>
</web-app>

3.spring-mvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!-- 配置spring创建容器时要扫描的包 --><context:component-scan base-package="com.qcby.controller"></context:component-scan><!-- 配置视图解析器 --><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/pages/"></property><property name="suffix" value=".jsp"></property></bean><!-- 配置spring开启注解mvc的支持--><!--    <mvc:annotation-driven></mvc:annotation-driven>-->
</beans>

二、RequestParam注解

1.作用

把请求中的指定参数传递给控制器中的形参赋值

2.属性

(1)value:请求参数中的名称

(2)required:请求参数中是否必须提供此参数,默认是true(必须提供),false(表示可以不传值)

3.代码

DeptController类

package com.qcby.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;@Controller
@RequestMapping("/dept")
public class DeptController {/** RequestParam注解* required=false, 默认为true,表示必须传值,不传就会报错,抛出异常;为false表示可以不传值* defaultValue="abc",abc是传的值;如果没有传值,就按默认值,默认值是""(空字符串)* */@RequestMapping("/save1.do")public String save(@RequestParam(value = "username",required = false,defaultValue = "abc") String name ){System.out.println("姓名:"+name);return "success";}
}

启动tomcat

三、RequestBody注解 

1.作用

用户获取请求体的内容(注:get方法不可以

2.属性

required:是否必须有请求体,默认是true

3.代码

(1)DeptController类

加了一个save2()方法

/*
* @RequestBody
* */
@RequestMapping("/save2.do")
public String save2(@RequestBody String body){System.out.println("请求体内容:"+body);return "success";
}

(2)index.jsp

<%--Created by IntelliJ IDEA.User: lenovoDate: 2024/11/3Time: 19:13To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body><form action="dept/save2.do" method="post">用户名:<input type="text" name="name" /><br/>密码:<input type="password" name="password" /><br/>年龄:<input type="text" name="age" /><br/><input type="submit" value="提交" />
</form></body>
</html>

(3)启动tomcat

现在<form>换成get请求:

<form action="dept/save2.do" method="get">用户名:<input type="text" name="name" /><br/>密码:<input type="password" name="password" /><br/>年龄:<input type="text" name="age" /><br/><input type="submit" value="提交" />
</form>

 运行

四、PathVaribale注解

1.作用

有绑定url中的占位符的

例:url中有/delete/{id},{id}就是占位符

2.属性

value:指定url中的占位符

3.Restful风格的URL

(1)请求路径一样,可以根据不同的请求方式去执行后台的不同方法

(2)Restful风格的URL优点

①结构清晰

②符合标准

③易于理解

④扩展方便

4.代码

(1)DeptController类

加了一个save3()方法

/*
* @PathVariable 指定url占位符的名称
* */
@RequestMapping(path = "/save3.do/{id}")
public String save3(@PathVariable(value = "id") Integer id){System.out.println("id:"+id);return "success";
}

(2)web.xml

(3)启动tomcat

五、RequestHeader注解

1.作用

获取指定请求头的值

2.属性

value:请求头的名称

3.代码

(1)DeptController类

加了一个save4()方法

/*
* @RequestHeader  获取请求头的值
* */
@RequestMapping("/save4.do")
public String save4(@RequestHeader(value = "Accept-Language") String header){System.out.println("Accept请求头的值:"+header);return "success";
}

(2)启动tomcat

六、CookieValue注解

1.作用

用于获取指定cookie的名称的值

2.属性

value:cookie的名称

defaultValue:如果没有value提供的值,则使用defalutValue的值

3.代码

(1)只有value

①DeptController类

加了一个save5()方法

/*
* @CookieValue 获取到cookie的值
* */
@RequestMapping("/save5.do")
public String save5(@CookieValue(value = "JSESSIONID") String cookie){System.out.println("值:"+cookie);return "success";
}

②启动tomcat

(2)只有value,但是没有提供

①DeptController类

加了一个save6()方法

@RequestMapping("/save6.do")
public String save6(@CookieValue(value = "cookie") String cookie){System.out.println("值:"+cookie);return "success";
}

②启动tomcat

(3)两个都有

①DeptController类

加了一个save7()方法

@RequestMapping("/save7.do")
public String save7(@CookieValue(value = "cookie",defaultValue = "abc") String cookie){System.out.println("值:"+cookie);return "success";
}

②启动tomcat

http://www.lryc.cn/news/520429.html

相关文章:

  • 青龙面板脚本开发指南:高效自动化任务的实现
  • 深入详解DICOM医学影像定位线相关知识:理解定位线的概念、定位线的作用以及定位线显示和计算原理
  • 网络应用技术 实验七:实现无线局域网
  • kubeneters-循序渐进Cilium网络(一)
  • elasticsearch中IK分词器
  • Qt之http客户端类
  • 18.C语言文件操作详解:指针、打开、读取与写入
  • 深入浅出 OpenResty
  • 在 .NET 9 中使用 Scalar 替代 Swagger
  • ue5 蒙太奇,即上半身动画和下半身组合在一起,并使用。学习b站库得科技
  • 多活架构的实现原理与应用场景解析
  • 一 rk3568 Android 11固件开发环境搭建 (docker)
  • 小结:华为路由器常用的操作指令
  • 旅游网站设计与实现
  • 【AI大模型】BERT GPT ELMo模型的对比
  • qt 快捷功能 快速生成 setter getter 构造函数 父类虚函数重写 成员函数实现 代码框架 查看父类及父类中的虚函数
  • 【计算机网络】深入浅出计算机网络
  • springMVC---resultful风格
  • 汽车基础软件AutoSAR自学攻略(三)-AutoSAR CP分层架构(2)
  • IntelliJ IDEA 主题插件
  • 2025最新JAVA面试八股文【基础篇】
  • element plus 使用 el-tree 组件设置默认选中和获取所有选中节点id
  • 高级java每日一道面试题-2025年01月09日-数据库篇-视图是什么?
  • python学习整理
  • Qt 5.14.2 学习记录 —— 십이 QLineEdit、QTextEdit
  • 【LC】2270. 分割数组的方案数
  • 【办公类-99-01】20250103用“课题阶段资料模版“批量制作“7个课题档案袋“
  • Objective-C语言的面向对象编程
  • 有限元分析学习——Anasys Workbanch第一阶段笔记(11)横梁中点挠度仿真结果与计算结果对比
  • GO语言实现KMP算法