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

乐山市住房和城乡建设局网站开发一个app需要多少钱

乐山市住房和城乡建设局网站,开发一个app需要多少钱,西安公司电话,电子商务网站建设的步骤一般为文章目录1. 获取单个参数2. 获取多个参数3. 获取对象4. 后端参数重命名 RequestParam5. 接收 JSON 格式的数据 RequestBody6. 从 URL 地址中获取参数 PathVariable7. 上传文件 RequestPart8. 获取Cookie (CookieValue)/Session/header8.1 获取 Request 和 Response 对象8.2 获取…

文章目录

  • 1. 获取单个参数
  • 2. 获取多个参数
  • 3. 获取对象
  • 4. 后端参数重命名 @RequestParam
  • 5. 接收 JSON 格式的数据 @RequestBody
  • 6. 从 URL 地址中获取参数 @PathVariable
  • 7. 上传文件 @RequestPart
  • 8. 获取Cookie (@CookieValue)/Session/header
    • 8.1 获取 Request 和 Response 对象
    • 8.2 获取 Cookie
    • 8.3 获取 Header(请求头)里面的信息
    • 8.4 存储和获取 Session

服务器端要得到用户的请求参数

@Data
public class UserInfo {private int id;private String username;private String password;private int age;
}

1. 获取单个参数

注意这里的参数类型要用 包装类,否则传一个空的值就会出错, 并且这里的参数一定要和前端传递的参数名保持一致,否则就获取不到参数的值了

@Controller
@ResponseBody   // 作用: 表示的是返回一个非静态页面的数据
@RequestMapping("/user")  // 类上的 RequestMapping 可以省略
public class UserController {@RequestMapping("/getuserbyid")public UserInfo getUserById(Integer id) {   //两种命名方式 getUserById | findUserById// 不查数据库,伪代码,返回用户对象UserInfo userInfo = new UserInfo();userInfo.setId(id);userInfo.setUsername("张三");userInfo.setAge(18);return userInfo;}
}

在这里插入图片描述

2. 获取多个参数

@Controller
@ResponseBody   // 作用: 表示的是返回一个非静态页面的数据
@RequestMapping("/user")  // 类上的 RequestMapping 可以省略
public class UserController {@RequestMapping("/login")public String login(String username, String password) {return "用户名: " + username + " | 密码: " + password;}
}

在这里插入图片描述

3. 获取对象

如果要获取的参数很多的话,也可以按照第二种方法来写,但是从代码的美观和维护角度来看,就不太建议这样来写了
Spring MVC 可以自动实现参数对象的赋值

@Controller
@ResponseBody   // 作用: 表示的是返回一个非静态页面的数据
@RequestMapping("/user")  // 类上的 RequestMapping 可以省略
public class UserController {@RequestMapping("/reg")public String reg(UserInfo userInfo) {return "用户信息:" + userInfo;}
}

在这里插入图片描述

4. 后端参数重命名 @RequestParam

有些特殊情况下,前端传递的参数 key 和我们后端接收的 key 可以不一致,比如前端传递了一个 time 给后端,而后端又是用 createtime 字段来接收的,这样就会出现参数接收不到的情况,如果出现这种情况,我们就可以使用 @RequestParam 来重命名前后端的参数值

@Controller
@ResponseBody   // 作用: 表示的是返回一个非静态页面的数据
@RequestMapping("/user")  // 类上的 RequestMapping 可以省略
public class UserController {@RequestMapping("/login")public String login(@RequestParam(value = "name", required = false) String username, String password) {return "用户名: " + username + " | 密码: " + password;}
}

在这里插入图片描述

在这里插入图片描述

5. 接收 JSON 格式的数据 @RequestBody

服务器端实现 JSON 数据的接收需要使用 @RequestBody 注解

@Controller
@ResponseBody   // 作用: 表示的是返回一个非静态页面的数据
@RequestMapping("/user")  // 类上的 RequestMapping 可以省略
public class UserController {@RequestMapping("/reg")public String reg(@RequestBody UserInfo userInfo) {return "用户信息:" + userInfo;}
}

在这里插入图片描述

6. 从 URL 地址中获取参数 @PathVariable

@Controller
@ResponseBody   // 作用: 表示的是返回一个非静态页面的数据
@RequestMapping("/user")  // 类上的 RequestMapping 可以省略
public class UserController {@RequestMapping("/hero/{id}/{name}")public String getHeroInfo(@PathVariable String id, @PathVariable String name) {return "ID:" + id + " | Name: " + name;}
}

在这里插入图片描述

7. 上传文件 @RequestPart

@Slf4j
@Controller
@ResponseBody   // 作用: 表示的是返回一个非静态页面的数据
@RequestMapping("/user")  // 类上的 RequestMapping 可以省略
public class UserController {@RequestMapping("/upimg")public boolean upImg(Integer uid, @RequestPart("img") MultipartFile file) {boolean result = false;// 保存图片到本地目录try {file.transferTo(new File("D:/IDEA/img.png"));result = true;} catch (IOException e) {log.error("上传图片失败: " + e.getMessage());}return result;}
}

在这里插入图片描述

文件上传,这样还有一个问题,这里上传文件到的目录是写为固定了的,那么比如说张三上传图片到这个位置,李四上传另一个图片也是到这个位置,李四的图片就会把张三的图片覆盖了,所以说就会有这样的一个问题

针对这个问题可以对上面的代码进行改进,主要就是这三个方面
在这里插入图片描述

(1)解决目录问题:不同平台的配置文件设置
  比如说在开发环境,需要将上传的文件保存到这个目录,但在生产环境中又需要将文件保存到 Linux 中的某个目录上,如果在开发时写了很多个需要上传文件的目录,那么到项目上线时,需要修改到 Linux 目录,是极为麻烦的,所以这就需要进行不同平台的配置文件设置
在这里插入图片描述
application-dev.yml

# 开发环境的配置文件# 图片保存的路径
img:path: D:/IDEA/

application-prod.yml

# 生产环境的配置# 图片保存的路径
img:path: /root/img/

application.yml

# 设置配置文件的运行平台
spring:profiles:active: dev

UserController.java

@Slf4j
@Controller
@ResponseBody   // 作用: 表示的是返回一个非静态页面的数据
@RequestMapping("/user")  // 类上的 RequestMapping 可以省略
public class UserController {// 从配置文件中读取图片的保存路径@Value("${img.path}")private String imgPath;@RequestMapping("/sayhi")public String sayHi() {return "66666" + imgPath;}
}

如果 application.yml 中设置的配置文件运行平台是开发环境,也就是 application-dev.yml,运行程序可以看到
在这里插入图片描述
反之如果在 application.yml 中设置为生产环境,运行程序
在这里插入图片描述


(2)生成图片名称:UUID
在这里插入图片描述

(3)获取原图片的上传格式:获取原文件名称,并根据原文件名称的后缀,来截取 “.” 后面的字符

@Slf4j
@Controller
@ResponseBody   // 作用: 表示的是返回一个非静态页面的数据
@RequestMapping("/user")  // 类上的 RequestMapping 可以省略
public class UserController {// 从配置文件中读取图片的保存路径@Value("${img.path}")private String imgPath;@RequestMapping("/upimg")public boolean upImg(Integer uid, @RequestPart("img") MultipartFile file) {boolean result = false;// 1.目录=imgPath// 2.图片名称(图片名称不能重复,如果重复就会把重名的图片覆盖)【UUID】// 3.获取原上传图片的格式(获取原文件名称,并根据原文件名称的后缀,来截取 “.” 后面的字符)String fileName = file.getOriginalFilename(); // 得到原图片的名称(xxx.png)fileName = fileName.substring(fileName.lastIndexOf(".")); // 得到图片后缀 (png)fileName = UUID.randomUUID().toString() + fileName; //UUID + 后缀格式// 保存图片到本地目录try {
//            file.transferTo(new File("D:/IDEA/img.png"));file.transferTo(new File(imgPath+fileName));result = true;} catch (IOException e) {log.error("上传图片失败: " + e.getMessage());}return result;}
}

可以看到这里使用 Postman,多点几次 Send,每次上传图片的名字是不同的
在这里插入图片描述

8. 获取Cookie (@CookieValue)/Session/header

8.1 获取 Request 和 Response 对象

因为 Spring MVC是基于 Servlet 的,所以这里可以直接写

@Slf4j
@Controller
@ResponseBody   // 作用: 表示的是返回一个非静态页面的数据
@RequestMapping("/user")  // 类上的 RequestMapping 可以省略
public class UserController {@RequestMapping("/sayhi")public String sayHi(HttpServletRequest request) {return "66666" + request.getParameter(("name"));}
}

在这里插入图片描述

8.2 获取 Cookie

(1)Servlet 获取 Cookie 的方法

@Slf4j
@Controller
@ResponseBody   // 作用: 表示的是返回一个非静态页面的数据
@RequestMapping("/user")  // 类上的 RequestMapping 可以省略
public class UserController {@RequestMapping("/cookie")public void getCookie(HttpServletRequest request) {// 得到全部 CookieCookie[] cookies = request.getCookies();for (Cookie item : cookies) {log.info("Cookie Name:" + item.getName() + " | Cookie Value: " + item.getValue());}}

(2)使用 @CookieValue 注解实现 Cookie 的读取

    @RequestMapping("/cookie2")public String getCookie2(@CookieValue("666")String cookie) {return "Cookie Value: " + cookie;}

8.3 获取 Header(请求头)里面的信息

(1)Servlet 获取 Header 的方法

    @RequestMapping("getua")public String getHead(HttpServletRequest request) {return "header: " + request.getHeader("User-Agent");}

在这里插入图片描述
(2)使用 @RequestHeader 注解实现 Header 的获取

    @RequestMapping("getua2")public String getHead(@RequestHeader("User-Agent")String userAgent) {return "header: " + userAgent;}

在这里插入图片描述

8.4 存储和获取 Session

(1)Session 存储和 Servlet 类似,是使⽤ HttpServletRequest 中获取的

    @RequestMapping("/setsess")public boolean setSession(HttpServletRequest request) {boolean result = false;// 1.得到 HttpSession// true =》 如果没有会话,那就创建HttpSession session = request.getSession(true);// 2.使用 setAtt 设置值session.setAttribute("userinfo","userinfo");result = true;return result;}

在这里插入图片描述

(2)获取 Session 方法1(Servlet 模式)

    @RequestMapping("/getsess")public String getSession(HttpServletRequest request) {String result = null;// 1. 先得到HttpSession 对象HttpSession session = request.getSession(false);// 2. getAttribute 得到 Session 信息if(session != null && session.getAttribute("userinfo") != null) {result = (String) session.getAttribute("userinfo");}return result;}

在这里插入图片描述

(3)获取 Seesion 方法2:@SessionAttribute
通常情况下需要添加 required = false ,如果不添加,那么当 session 中不存在此属性的时候程序运行就会报错

    @RequestMapping("/getsess2")public String getSession2(@SessionAttribute(value = "userinfo",required = false)String userinfo) {return "会话:" + userinfo;}
http://www.fp688.cn/news/143214.html

相关文章:

  • wordpress首页文章图片揭阳百度seo公司
  • 成都没有做网站的公司小时seo百度关键词点击器
  • html静态网站开发实验论坛外链代发
  • 中国建设银行河南省分行网站国内比百度好的搜索引擎
  • 科技公司网站推荐搜索引擎排名优化公司
  • 优惠券小程序源码百度seoo优化软件
  • 广州做网站的网络公司排名西安百度竞价托管
  • 洛阳网站建设联系方式销售管理软件
  • 网站推广对企业的优势外贸seo软件
  • 做网站卖假名牌违法吗下载百度推广app
  • 深圳南山网络公司win10系统优化软件
  • 昆明网站关键字优化广东队对阵广州队
  • 读取别人网站代码自己做鹤岗网站seo
  • 美食网站要怎么做最新军事战争新闻消息
  • seo网站怎么搭建外贸网站免费建站
  • 科技公司做网站注册域名后如何建立网站
  • 雁塔免费做网站谷歌平台推广外贸
  • 个人网站的建设流程搜索引擎营销的主要方法
  • 做微信平台图片网站郑州seo使用教程
  • 内丘企业做网站网站是怎么建立起来的
  • 怎么样做淘宝优惠券网站seo站长综合查询工具
  • 杭州建站模板搭建在线建站网页制作网站建设平台
  • 五大门户网站手机百度2020
  • wordpress 倡萌 相册谷歌seo服务公司
  • 企业展示型网站建设营销推广的主要方法
  • 数字域名做网站外包公司是正规公司吗
  • lnmp和wordpress怎么优化网站排名
  • 泉州中企动力科技股份有限公司优化流程
  • 有什么做C语言的网站成免费crm特色
  • 北京化妆品网站建设网站如何快速被百度收录