国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

沒有后臺的網(wǎng)站怎么做排名搜索風(fēng)云榜入口

沒有后臺的網(wǎng)站怎么做排名,搜索風(fēng)云榜入口,山東響應(yīng)式網(wǎng)站建設(shè),做化妝品網(wǎng)站的原因目錄 1. 關(guān)于json 2. 通過Maven倉庫,將Jackson下載導(dǎo)入到項目中 3. 使用Jackson 3.1 關(guān)于readValue方法 3.2 關(guān)于Request.class類對象 3.3 關(guān)于request對象的屬性類型 3.4 關(guān)于writeValueAsString 前端向后端傳遞參數(shù)通常有三種方法: 第一種&…

目錄

1. 關(guān)于json

2.? 通過Maven倉庫,將Jackson下載導(dǎo)入到項目中

3.?使用Jackson

3.1 關(guān)于readValue方法

3.2?關(guān)于Request.class類對象

3.3 關(guān)于request對象的屬性類型

3.4 關(guān)于writeValueAsString


前端向后端傳遞參數(shù)通常有三種方法:

第一種:

【JavaEE】_前端使用GET請求的queryString向后端傳參-CSDN博客

第二種:

【JavaEE】_前端POST請求借助form表單向后端傳參-CSDN博客

第三種:

使用POST請求的body部分向后端傳參,且body格式為json格式;

本篇介紹第三種方法;

1. 關(guān)于json

1. body部分的格式就是json

此時請求報頭部分有:Content - Type : application / json

2. 對于通過GET請求的query string部分傳參和通過POST請求的body的form表單格式傳參,是servlet天然支持的,但是對于POST請求的body使用json格式傳參,servlet本身并不支持,需要引入額外的第三方庫

3. json本質(zhì)也是鍵值對,但規(guī)則和form表單不同,解析方式也不同。且json支持嵌套,手寫解析json并不容易;

4. json的第三方庫非常豐富,本專欄使用jackson。(spring官方推薦jackson,被spring集成)

代碼編寫詳情如下:

2.? 通過Maven倉庫,將Jackson下載導(dǎo)入到項目中

選擇Jackson Databind版本:

復(fù)制并粘貼至pom.xml中:

,引入依賴后,pom.xml內(nèi)容如下:

<?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>org.example</groupId><artifactId>Servlet</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.15.0</version></dependency></dependencies><packaging>war</packaging><build><finalName>Servlet</finalName></build></project>

如果導(dǎo)入緩慢或失敗,可以點擊Maven面板的刷新按鈕,此處不再贅述,若對導(dǎo)入依賴仍有疑問,請查看本專欄Servlet程序編寫方法一文,鏈接如下:

【JavaEE】_Servlet程序的編寫方法-CSDN博客

3.?使用Jackson

1. Jackson的重點為:一個對象和兩個方法;

一個對象:ObjectMapper類;

兩個方法:readValue方法WriteAsString方法;

2. 使用一個ObjcectMapper類(對象映射器),可以把json字符串映射為一個Java對象,或把一個java對象映射成json字符串;

網(wǎng)絡(luò)傳輸中,使用的是json字符串

實現(xiàn)業(yè)務(wù)邏輯的java代碼中,使用的是java對象

站在服務(wù)器角度,就需要把獲取到的請求(json字符串)先映射為java對象,

再進行一系列業(yè)務(wù)邏輯處理。

處理完畢后,還需要把處理完的java對象再映射回json字符串,通過響應(yīng)返回;

3. json字符串向java對象的映射:json字符串——>java對象:使用readValue方法

? ? java對象向json字符串的映射:java對象——>json字符串:使用writeValueAsString方法

現(xiàn)約定請求格式如下:

POST /json
Content-Type: application/json{username:"zhangsan",password:"123"
}

約定響應(yīng)格式如下:(也按照json來組織)

{ok: true
}

.java文件內(nèi)容如下:

import com.fasterxml.jackson.databind.ObjectMapper;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
class Request{public String username;public String password;
}
class Response{public boolean ok;
}
@WebServlet("/Json")
public class JsonParameterServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// 1. 獲取請求body,并將其按照json格式解析為請求java對象ObjectMapper objectMapper = new ObjectMapper();Request request = objectMapper.readValue(req.getInputStream(), Request.class);System.out.println("username: "+ request.username);System.out.println("password: "+ request.password);// 2. 構(gòu)造響應(yīng)java對象,并將其轉(zhuǎn)為json格式字符串Response response = new Response();response.ok =true;String respJson = objectMapper.writeValueAsString(response);resp.setContentType("application/json; charset=utf8");resp.getWriter().write(respJson);}
}

使用postman構(gòu)造一個POST請求發(fā)送:

獲取到的響應(yīng)如下:

在服務(wù)器日志端也可獲取到前端的參數(shù):

3.1 關(guān)于readValue方法

1. 把body的流對象(方法的第一個參數(shù))直接傳給readValue,這個方法內(nèi)部就會讀取InputStream中的所有數(shù)據(jù)(HTTP請求中的body,即json字符串);

2. 嘗試把json字符串解析成Map(鍵值對);

3. 把Map轉(zhuǎn)換成java對象(方法的第二個參數(shù));

readValue內(nèi)部就可以通過反射API創(chuàng)建出Request.class實例,并且根據(jù)Request.class提供的屬性的名字(username和password)來查詢上述Map,把得到的結(jié)果(zhangsan和123)賦值給對應(yīng)的屬性(username和password),從而獲取到了一個完整的Request對象;

請注意反射屬于非常規(guī)操作,除非萬不得已,在開發(fā)中不要隨便使用反射;

3.2?關(guān)于Request.class類對象

對于一個java代碼,會被javac編譯成.class文件(二進制),這個文件包含了.java源代碼中的核心信息,比如類的名稱、屬性及其類型、方法及其參數(shù)與類型、父類、實現(xiàn)的接口、注解等等;

當(dāng)java進程啟動,就會讀取.class文件,把這些二進制內(nèi)容讀到內(nèi)存并進行解析,這個過程稱為類加載

類加載完畢后,就會在內(nèi)存中獲取到一個類對象。

故而.class文件中的所有信息也都在類對象中了。

可以將類對象理解為一個類的圖紙,后續(xù)要構(gòu)造這個類的實例都是基于類對象來進行展開的;

3.3 關(guān)于request對象的屬性類型

在本例中,Request對象的兩個屬性均使用public修飾:

class Request{public String username;public String password;
}

如果要將屬性被private修飾,必須提供對應(yīng)的Getter和Setter方法,

否則Jackson只會處理public屬性;

3.4 關(guān)于writeValueAsString

可以將writeValueAsString視為readValue的反向操作,這個方法可以把一個java對象映射成json字符串;

1. 通過傳入的參數(shù)獲取到類對象,通過反射獲取到屬性(ok);

2. 根據(jù)屬性名獲取屬性值(true);

3. 把上述屬性名與屬性值按照json格式構(gòu)造成字符串(reqJson)作為返回值;

http://m.aloenet.com.cn/news/28596.html

相關(guān)文章:

  • flash怎么做網(wǎng)站抖音流量推廣神器軟件
  • 網(wǎng)站的風(fēng)格有哪些什么是seo
  • 電子商務(wù)網(wǎng)站建設(shè)是什么重慶森林為什么叫這個名字
  • 自己做外貿(mào)網(wǎng)站能接到單嗎網(wǎng)店運營實訓(xùn)報告
  • 大學(xué)招生網(wǎng)站建設(shè)關(guān)鍵信息基礎(chǔ)設(shè)施安全保護條例
  • 動態(tài)網(wǎng)站編程文明seo
  • 高校網(wǎng)站建設(shè)需求分析報告百度號注冊官網(wǎng)
  • 網(wǎng)站做詞seo服務(wù)是什么意思
  • 做靜態(tài)網(wǎng)站用什么軟件西安網(wǎng)絡(luò)推廣外包公司
  • html php網(wǎng)站開發(fā)網(wǎng)址如何被快速收錄
  • 基于bmob的網(wǎng)站開發(fā)廣州seo代理
  • 有沒有專做于投融資的網(wǎng)站互換鏈接的方法
  • 黨中央建設(shè)的少年網(wǎng)站百度流量統(tǒng)計
  • 網(wǎng)站排名軟件包年找代寫文章寫手
  • 餐飲網(wǎng)站 設(shè)計技術(shù)教程優(yōu)化搜索引擎整站
  • 綿陽城鄉(xiāng)住房建設(shè)廳網(wǎng)站廣告信息發(fā)布平臺
  • 做網(wǎng)站的費用記哪個科目百度pc網(wǎng)頁版登錄入口
  • 怎么建小說網(wǎng)站微信crm客戶管理系統(tǒng)
  • 邢臺網(wǎng)站制作地方谷歌引擎搜索
  • jsp 做網(wǎng)站還是php北京網(wǎng)站制作推廣
  • 鎮(zhèn)江模板網(wǎng)站小紅書廣告投放平臺
  • 移動網(wǎng)站趨勢推廣引流平臺
  • 在線設(shè)計軟件南寧seo渠道哪家好
  • 做淘寶詳情頁的素材網(wǎng)站2023年8月疫情爆發(fā)
  • 外貿(mào)網(wǎng)站建設(shè)網(wǎng)站漯河seo公司
  • 自己做的網(wǎng)站 怎么在網(wǎng)上銷售登錄百度app
  • 重慶微信網(wǎng)站制作廈門人才網(wǎng)唯一官網(wǎng)登錄
  • wordpress全球化移投界seo
  • 網(wǎng)站建設(shè)需準(zhǔn)備什么軟件門戶網(wǎng)站怎么做
  • wordpress億起發(fā)搜索引擎seo