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

电子商务网站建设设计古色古香 网站模板

电子商务网站建设设计,古色古香 网站模板,wordpress插件常用,企业网站建设费用怎么入账系列文章目录 Java知识点 文章目录 系列文章目录👉前言👉一、封装的目标👉二、套接字层封装👉壁纸分享👉总结 👉前言 Java 网络编程封装原理主要围绕着将底层的网络通信细节隐藏起来,提供简洁…

系列文章目录

Java知识点


文章目录

  • 系列文章目录
  • 👉前言
  • 👉一、封装的目标
  • 👉二、套接字层封装
  • 👉壁纸分享
  • 👉总结


👉前言

Java 网络编程封装原理主要围绕着将底层的网络通信细节隐藏起来,提供简洁、易用且安全的高层接口,方便开发者进行网络应用开发。下面从封装的目标、常见的封装层次和具体的封装实现原理等方面详细介绍。

博客将会介绍如何实现Java网络编程封装。希望这篇博客对Unity的开发者有所帮助。
大家好,我是心疼你的一切,不定时更新Unity开发技巧,觉得有用记得一键三连哦。
欢迎点赞评论哦.下面就让我们进入正文吧 !


提示:以下是本篇文章正文内容,下面案例可供参考

👉一、封装的目标

简化开发:底层的网络通信涉及到许多复杂的细节,如套接字的创建、连接的建立、数据的传输和接收等。通过封装,开发者可以使用更简单的接口来完成这些操作,无需关心底层的具体实现。
提高安全性:封装可以对网络通信的关键部分进行安全处理,例如对数据进行加密、验证等,防止数据在传输过程中被窃取或篡改。
增强可维护性和可扩展性:将网络通信的逻辑封装在独立的模块中,使得代码结构更加清晰,便于维护和扩展。当需要更改网络通信的实现方式时,只需修改封装模块的内部代码,而不会影响到使用该封装的其他部分。

👉二、套接字层封装

常见的封装层次
Java 的 java.net 包提供了基本的套接字(Socket)类,包括 Socket 和 ServerSocket,用于实现 TCP 通信,以及 DatagramSocket 用于实现 UDP 通信。这些类已经对底层的网络操作进行了一定程度的封装,但仍然需要开发者手动处理很多细节。例如,创建一个简单的 TCP 服务器:

代码如下:

package cn.ctg.common.util;import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.UnknownHostException;
import java.util.Map;import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.util.StringUtils;
import org.springframework.web.client.RestTemplate;import cn.hutool.core.collection.CollectionUtil;
import lombok.extern.slf4j.Slf4j;/*** http请求*/
@Slf4j
public class HttpUtils {public static String doGet(String url) {return doGet(url, null);}public static String doGet(String url, Map<String, String> map) {String resultString = "";RestTemplate client = new RestTemplate();HttpHeaders headers = new HttpHeaders();// 参数设置MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();if (CollectionUtil.isNotEmpty(map)) {for (String key : map.keySet()) {params.add(key, map.get(key));}}try {// 设置表单提交headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(params, headers);// 执行HTTP请求ResponseEntity<String> response = client.exchange(url, HttpMethod.GET, requestEntity, String.class);resultString = response.getBody();} catch (Exception e) {log.error(e.getMessage(), e);}return resultString;}public static String doPost(String url) {return doPost(url, null);}public static String doPost(String url, Map<String, String> map) {String resultString = "";ResponseEntity<String> response = null;RestTemplate client = new RestTemplate();HttpHeaders headers = new HttpHeaders();// 参数设置MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();if (CollectionUtil.isNotEmpty(map)) {for (String key : map.keySet()) {params.add(key, map.get(key));}}try {// 请勿轻易改变此提交方式,大部分的情况下,提交方式都是表单提交headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(params, headers);// 执行HTTP请求response = client.exchange(url, HttpMethod.POST, requestEntity, String.class);resultString = response.getBody();} catch (Exception e) {log.error(e.getMessage(), e);}return resultString;}public static String doPostJson(String url, String json) {String resultString = "";RestTemplate client = new RestTemplate();ResponseEntity<String> response = null;// 提交方式设置HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLICATION_JSON);HttpEntity<String> requestEntity = new HttpEntity<String>(json, headers);try {// 执行HTTP请求response = client.exchange(url, HttpMethod.POST, requestEntity, String.class);resultString = response.getBody();} catch (Exception e) {log.error(e.getMessage(), e);} finally {try {} catch (Exception e) {// TODO Auto-generated catch blocklog.error(e.getMessage(), e);}}return resultString;}/*** 创建http请求头* @param url* @return* @throws Exception*/public static URLConnection FactoryCreatURLConnection(String url) throws Exception {URL realUrl;URLConnection conn = null;try {// 打开和URL之间的连接realUrl = new URL(url);conn = realUrl.openConnection();conn.setRequestProperty("accept", "text/plain;charset=utf-8");conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");} catch (MalformedURLException e1) {e1.printStackTrace();} catch (IOException e) {e.printStackTrace();}return conn;}/*** 判断连接是否可用* * @param url http请求地址* @return*/public static boolean isRearchUrl(String url) {return isRearchUrl(url, 3000);}/*** 判断连接是否可用* * @param url http请求地址* @return*/public static boolean isRearchUrl(String url, int timeout) {if (StringUtils.isEmpty(url)) {return false;}HttpURLConnection connection = null;try {connection = (HttpURLConnection) new URL(url).openConnection();// 设置超时时间connection.setConnectTimeout(timeout);connection.setReadTimeout(timeout);if (connection.getResponseCode() >= HttpURLConnection.HTTP_OK&& connection.getResponseCode() <= HttpURLConnection.HTTP_VERSION) {return true;}} catch (Exception e) {log.error(" HttpURLConnection exception happend!");return false;} finally {if (connection != null) {connection.disconnect();}}return false;}/*** 判断ip是否能ping通*/public static boolean checkIp(String ipAddr) {try {boolean status = false;if (!StringUtils.isEmpty(ipAddr)) {int timeOut = 3000; // 超时 3秒status = InetAddress.getByName(ipAddr).isReachable(timeOut);return status;}return status;} catch (UnknownHostException e) {e.printStackTrace();return false;} catch (IOException e) {e.printStackTrace();return false;}}}

总结

  1. Java网络编程的封装原理主要体现在以下几个方面:
  2. 对Socket、URL、I/O等核心概念的抽象和封装。
  3. 提供高层次的API,隐藏底层细节。
  4. 支持多种协议(TCP、UDP、HTTP、SSL/TLS等)。
  5. 结合多线程和NIO实现高性能网络通信。
  6. 提供完善的异常处理机制。

通过这些封装,Java使得网络编程变得更加简单、高效和安全。

本次就这么多了,
请添加图片描述


👉壁纸分享

在这里插入图片描述

👉总结

本次总结的就是Java网络编程封装, 有需要会继续增加功能
如能帮助到你,就帮忙点个赞吧,三连更好哦,谢谢
你的点赞就是对博主的支持,有问题记得留言评论哦!
不定时更新Unity开发技巧,觉得有用记得一键三连哦。么么哒!


文章转载自:

http://woPciIRp.rczrq.cn
http://ss85LvOE.rczrq.cn
http://l57vs8CZ.rczrq.cn
http://zG5C6XiA.rczrq.cn
http://NNgpvHRu.rczrq.cn
http://TcU2GiFN.rczrq.cn
http://ETfNQ9br.rczrq.cn
http://ilQAwxXo.rczrq.cn
http://lmXo9YvU.rczrq.cn
http://5b7tM6xQ.rczrq.cn
http://wIwhuW5K.rczrq.cn
http://PD2UwqBp.rczrq.cn
http://r9ID5ffi.rczrq.cn
http://YornulRG.rczrq.cn
http://SmctUYfu.rczrq.cn
http://jNtoHAmG.rczrq.cn
http://617TLxKA.rczrq.cn
http://YiDbDM3S.rczrq.cn
http://bEB4xY8v.rczrq.cn
http://sjZNycqu.rczrq.cn
http://9Z8tRYi9.rczrq.cn
http://Dnj2Rt19.rczrq.cn
http://KFLfOjHU.rczrq.cn
http://RhwHTpJP.rczrq.cn
http://RNKkh2id.rczrq.cn
http://Mr0hW31e.rczrq.cn
http://gMO0KerZ.rczrq.cn
http://ESyujXFY.rczrq.cn
http://WPU3GE2r.rczrq.cn
http://wvJ6SICJ.rczrq.cn
http://www.dtcms.com/wzjs/617629.html

相关文章:

  • 网站建设开发人员配置wordpress 子目录安装
  • 上海知名网站设计深圳市住房和建设局网官网
  • 昌平网站开发公司深圳app建设公司
  • cms做企业网站6服务器 空间 虚拟主机 网站需要
  • 免费做淘宝联盟网站泉州做网站便宜
  • 西湖区住房和城市建设局网站工信部会抽查网站么
  • 有免费的个人网站吗搜索引擎营销策略有哪些
  • 深圳专业建设网站网络建站公司如何做市场
  • 网站开发技术书籍有没有好用的网站推荐
  • 南昌建站方案网页超链接怎么做
  • 国内网站都要备案吗网站建设费能不能认定为广告费
  • 哔哩哔哩网站电子商务建设医院门户网站开发
  • 陕西响应式网站建设苏州网站建设代理渠道
  • 宁波网站推广在哪里个人备案网站做什么
  • 做网站后有人抢注品牌关键字网站 网页制作
  • 个人如何做网站推广在哪些网站做推广
  • 成都网站设计哪家好网站开发 外包 哪家
  • 上虞网站开发设计公司起名大全
  • 四川省建设厅安全员报名网站单页网站制作需要多少钱
  • 开源快速网站搭建平台网站建设内容与结构
  • 做企业网站一般多少钱烟台产品网站建设
  • wordpress放哪个文件夹晨阳seo服务
  • 河南电力建设工程公司网站wordpress棋牌插件
  • 完成网站的建设工作总结seo产品推广
  • 赣州网站优化制作上海临平路网站建设
  • 怎么在网站上做充话费业务营销型品牌网站建设
  • 网站建设深wordpress 点赞功能
  • 用vue框架做的pc端网站深圳商城网站制作公司
  • 自己视频怎么上传网站郑州网络推广哪个好
  • 搭建网站需要什么软件今天国际大事新闻