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

利用万网做网站男男做受网站

利用万网做网站,男男做受网站,安全教育平台登录入口网址,自媒体培训文章目录 一、常用注解二、参数传递2.1 基础类型String2.2 复杂类型2.3 RequestParam2.4.路径传参 PathVariable2.4 Json数据传参 RequestBody2.5 RequestHeader 三、方法返回值3.1 void3.2 Stringmodel3.3 ModelAndView 一、常用注解 SpringMVC是一个基于Java的Web框架&#…

文章目录

  • 一、常用注解
  • 二、参数传递
    • 2.1 基础类型+String
    • 2.2 复杂类型
    • 2.3 @RequestParam
    • 2.4.路径传参 @PathVariable
    • 2.4 Json数据传参 @RequestBody
    • 2.5 @RequestHeader
  • 三、方法返回值
    • 3.1 void
    • 3.2 String+model
    • 3.3 ModelAndView

一、常用注解

SpringMVC是一个基于Java的Web框架,它提供了一系列的注解来简化开发过程。以下是一些常用的SpringMVC注解:

  1. @Controller: 用于标识一个类为控制器,处理用户请求并返回相应的结果
  2. @RequestMapping:、 用于映射请求URL和处理方法,可以用在类级别和方法级别。在类级别上,可以指定公共的URL前缀,而在方法级别上,可以指定具体的URL路径。
  3. @RequestParam: 用于将请求参数绑定到方法的参数上。可以指定参数的名称、是否必需以及默认值。
  4. @PathVariable: 用于将URL路径中的变量绑定到方法的参数上。可以指定变量的名称和是否必需。
  5. @ResponseBody: 用于将方法的返回值直接写入HTTP响应体中,而不是通过视图解析器进行渲染。
  6. @ModelAttribute:用于将请求参数绑定到方法的参数上,并将其添加到模型中。可以指定参数的名称和是否必需。
  7. @SessionAttributes:用于指定模型中的属性应该存储在会话中,以便在多个请求之间共享。
  8. @Valid:用于启用参数的校验功能,可以与JSR-303/JSR-349标准的注解一起使用。

这些注解只是SpringMVC中的一部分,还有其他很多注解可以用于处理拦截器、异常处理、文件上传等功能。具体使用哪些注解取决于你的需求和项目的架构。

二、参数传递

SLF4J(Simple Logging Facade for Java)是一个为Java应用程序提供日志记录的简单门面(facade)框架。它允许开发人员在应用程序中使用统一的API来记录日志,而无需关心底层日志实现的细节。SLF4J提供了一种灵活的方式来切换不同的日志实现,如Logback、Log4j和java.util.logging等。通过使用SLF4J,开发人员可以在不修改应用程序代码的情况下更改日志记录实现,从而提供了更好的可维护性和灵活性。
pom.xml

<log4j2.version>2.9.1</log4j2.version>
<log4j2.disruptor.version>3.2.0</log4j2.disruptor.version>
<slf4j.version>1.7.13</slf4j.version>//-------------------------------------------------<!--4.log日志相关依赖--><!-- log4j2日志相关依赖 -->
<!-- log配置:Log4j2 + Slf4j -->
<!-- slf4j核心包-->
<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version>
</dependency>
<dependency><groupId>org.slf4j</groupId><artifactId>jcl-over-slf4j</artifactId><version>${slf4j.version}</version><scope>runtime</scope>
</dependency><!--核心log4j2jar包-->
<dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>${log4j2.version}</version>
</dependency>
<dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>${log4j2.version}</version>
</dependency>
<!--用于与slf4j保持桥接-->
<dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId><version>${log4j2.version}</version>
</dependency>
<!--web工程需要包含log4j-web,非web工程不需要-->
<dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-web</artifactId><version>${log4j2.version}</version><scope>runtime</scope>
</dependency><!--需要使用log4j2的AsyncLogger需要包含disruptor-->
<dependency><groupId>com.lmax</groupId><artifactId>disruptor</artifactId><version>${log4j2.disruptor.version}</version>
</dependency>

2.1 基础类型+String


package com.xqx.web;import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Slf4j
@Controller
@RequestMapping("/param")
public class ParamController {@RequestMapping("/hello1")public String toHello1(Integer bid,String bname){log.info("基础类型+String传参:bid:{},bname:{}",bid,bname);return "index";}

在这里插入图片描述

在这里插入图片描述

2.2 复杂类型

@Slf4j
@Controller
@RequestMapping("/param")public String hello1(Book book, HttpServletRequest request){//servlet参数获取方式log.info("复杂类型参数:bname:{},bid:{}",request.getParameter("bid"),request.getParameter("bname"));//复杂传参log.info("复杂类型参数:book:{}", book.toString());return "index";}

在这里插入图片描述
在这里插入图片描述

2.3 @RequestParam

	@Slf4j@Controller@RequestMapping("/hello3")public String requestParam(@RequestParam String bname,@RequestParam(required = false)  Integer bid) {log.info("requestParam类型参数 bname:{},bid:{}", bname, bid);return "index";}

在这里插入图片描述

这种参数传递类型,如果不传参会报错

被@RequestParam注解的参数required默认为true表示请求中一定要传入对应的参数,否则会报404错误如果设置为false时,当请求中没有此参数,将会默认为null,而对于基本数据类型的变量,则必须有值,这时会抛出空指针异常。如果允许空值,则接口中变量需要使用包装类来声明。

2.4.路径传参 @PathVariable

如果我要通过id进行删除某一项可以用PathVariable注释

    @RequestMapping("/hello4/{bid}")public String rjcc(@PathVariable("bid")Integer bid) {log.info("PathVariable bid:{}",bid);return "index";}

在这里插入图片描述
在这里插入图片描述

2.4 Json数据传参 @RequestBody

在实际开发中运用最多的就是通过Json数据进行传输,SpringMVC默认使用的是jackson来处理json的转换,所以需要在pom.xml添加jackson依赖。另外推荐使用postman或者apipost/eolink等工具发送请求数据。

 <jackson.version>2.9.3</jackson.version><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>${jackson.version}</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>${jackson.version}</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>${jackson.version}</version></dependency>
//    能接受json数据,前提导入了Jackson依赖,没有导入Jackson依赖的话那进不了这个方法@RequestMapping("/hello6")public String RequestBody2(@RequestBody Map map) {log.info("RequestBody map:{}",map);return "index";}//  不能接受json数据@RequestMapping("/hello5")public String RequestBody1(Map map) {log.info("RequestBody map:{}",map);return "index";}

在这里插入图片描述

2.5 @RequestHeader

@RequestHeader 注解可以用在方法的参数上,用于将指定的请求头的值注入到方法参数中。

    @RequestMapping("/hello7")public String RequestHeader(@RequestHeader("jwt") String  jwt) {log.info("RequestHeader jwt:{}",jwt);return "index";}

在这里插入图片描述

三、方法返回值

为了方便模拟效果,借助ResponseUtil工具类,ResponseUtil类提供了一种方便的方式来将对象以文本或JSON格式写入HTTP响应流中,以便在Web应用程序中向客户端返回数据。
ResponseUtil:

package com.xqx.util;import com.fasterxml.jackson.databind.ObjectMapper;import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;public class ResponseUtil {public static void write(HttpServletResponse response,Object o)throws Exception{response.setContentType("text/html;charset=utf-8");PrintWriter out=response.getWriter();out.println(o.toString());out.flush();out.close();}public static void writeJson(HttpServletResponse response,Object o)throws Exception{ObjectMapper om = new ObjectMapper();
//		om.writeValueAsString(o)代表了json串write(response, om.writeValueAsString(o));}
}

3.1 void


@Controller
@RequestMapping("/rs")
public class ReturnController {@RequestMapping("/hello1")public void hello1(HttpServletResponse response){Map<String,Object> map=new HashMap<>();map.put("code",200);map.put("msg","成功添加...");try {ResponseUtil.writeJson(response,map);} catch (Exception e) {e.printStackTrace();}}

在这里插入图片描述

3.2 String+model

jsp

<%--Created by IntelliJ IDEA.User: 86156Date: 2023/9/5Time: 15:49To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
名称:${name}
地址:${address}
</body>
</html>

测试

@Controller
@RequestMapping("/rs")
public class ReturnController {@RequestMapping("/hello2")public String hello2(Model model,HttpServletRequest request){model.addAttribute("name","xqx");request.setAttribute("address","长沙");return "index";}}

在这里插入图片描述

3.3 ModelAndView


@Controller
@RequestMapping("/rs")
public class ReturnController {@RequestMapping("/hello3")public ModelAndView hello3(){ModelAndView mv=new ModelAndView();mv.addObject("xqx","666");mv.setViewName("index");return mv;}}

jsp

<%--Created by IntelliJ IDEA.User: 86156Date: 2023/9/5Time: 17:00To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
名称:${name}
地址:${address}
评价:${xqx}
</body>
</html>

在这里插入图片描述

http://www.yayakq.cn/news/897591/

相关文章:

  • 最新网站域名网格建设专业好不好
  • 响应式网站一般做几个设计稿石家庄市最新消息今天
  • 一般做网站要多少钱公司网站建设 邮箱
  • 广西网站建设贵吗龙宜推广公司是正规吗
  • 常州市教育基本建设与装备管理中心网站这几年做啥网站致富
  • 韩国做 mp4下载网站wordpress弹窗通知
  • 开源镜像网站开发建设电子商务网站的规划书
  • 企业网站建设找智恒网络南京建设网页培训班
  • 怎么看别的网站是那个公司做的快速建站
  • 智慧团建网站注册登录入口黄冈建设局网站
  • 营销团队外包神马搜索seo优化排名
  • 网页设计教程网站网页制作与网站建设宝典 第2版
  • 宣讲家网站两学一做心得wordpress远程安装教程
  • 分类目录网站有哪些中信建设有限责任公司唐万哩
  • 建网站代理哪个建设网站后怎么发布
  • 网站开发php和ui做网站做
  • wordpress抓取设置惠州自动seo
  • 扬州建设网站呼和浩特市做网站公司好的
  • 多语种网站后台北京宣传册高端设计公司
  • 广东网站建设包括什么wordpress 插件 浮动小人
  • 直播网站如何做怎样做公司的网站
  • 初级网站开发的自我推荐做网站的结论
  • 知名广州网站建设网站由哪三部分构成
  • 温州敎玩具网站建设thinkphp网站开发
  • 企业网站设计专业好吗制作软件网站
  • 模板在线制作模板网站有利于做seo吗
  • 网站开发怎样实现上传视频wordpress 关闭工具栏
  • 个人网站服务器大连地图
  • 电商网站网络服务在线网站分析工具
  • 龙岗网站建设费用陕西西安网站设计公司