热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

内网穿透与反向代办,浅谈前背景星散

导读自客岁毕业来到杭州,想一想也该有大半年了。自身是软件工程的科班出身,在校时理论控制的还可以。但应用到实践当中去,有些照样不大明白,因此,不停地向带我的人讨教,毕竟,三人行,必有

导读

自客岁毕业来到杭州,想一想也该有大半年了。自身是软件工程的科班出身,在校时理论控制的还可以。但应用到实践当中去,有些照样不大明白,因此,不停地向带我的人讨教,毕竟,三人行,必有我师焉。经由一段时间理论加实践,若干也控制了个中的蹊径。

前后端星散(效劳器端、客户端星散)

  • 前后端不星散

在从业的过程当中,也和其他程序员交流过,他们很多人都没有前后端(效劳器和客户端)星散,而是前后端一同做掉。如果前后端不星散,此时的效劳器端主如果指java代码,客户端主如果指jsp,经由过程spring MVC 将数据封装到ResponseBody中,再返回给jSP。JSP拿到数据,衬着页面。这里 不须要斟酌端口号的题目。比方:

/**
* Created By zby on 16:03 2019/3/5
*/
@RequestMapping(value = "/", method = RequestMethod.GET)
@ResponseBody
public Result fun() {
return null;
}

  • 前后端星散

固然,前后端星散时,后端照样以java代码为主,前端就变幻莫测了。

. 后端

java经由过程springMVC的Rest形式的Controller层,吸收前端页面传来的接口和参数,经由一系列的入参校验,挪用事件层(也就是service层)这里主如果hibernate(mybatis)的事件层,完成数据库的事件操纵。再挪用*dao(data Access object)层完成事件的原子性操纵,行将瞬时态的java对象转化为耐久状况的数据库对象。层层深切,层层返回,将经由过程Result回传给前端。

. 前端

前端主要用h5举行页面规划,CSS3完成页面的美化。Javascript合营jQuery挪用后端的接口,通报参数和猎取后端回传的数据。经由过程vue.js完成回传的数据的双向绑定。还可以涉及到其他框架,比方页面规划的bootstrap,数据table体式格局展现的jqgrid等等。

前后端星散,怎样完成数据交互

我们将写好的java代码布置在效劳器上,比方Tomcat、Jboss主流效劳器。这里以Tomcat来解说,我们将项目布置在Tomcat的上,详细怎样布置Tomcat,可以参考这篇教程,Tomcat8威望指南。我们如今平常在maven中以插件的体式格局设置Tomcat,便于当地测试,途径为根途径,如以下代码:


install
//maven天生的war天生的名字
cloudCodeSaleManager


src/main/resources
true




org.apache.tomcat.maven
tomcat7-maven-plugin
2.2

58081
/
UTF-8
zfounder-custmom-member-portal
tomcat7



在实在的项目中,平常会有测试服和正式服,测试服是我们用户的测试数据库和测试效劳器,正式服我们用到的是正式数据库和正式效劳器,有人说,如许输简直是空话。然则,我们测试数据库和正式数据库是不一样的,因此,如果都写在统一个设置文件中,修正必将贫苦。因此,我们可以在打包时,会有测试包和正式包,这里就涉及到maven的profile的设置文件(是在pom中设置,用来激活设置文件的):



dev

true



../../platform-dev.properties




prd


../../platform-prd.properties




我们Tomcat启动后,接见后端接口(url)的花样以下:

scheme://host.domain:port/path/filename

scheme – 定义因特网效劳的范例。最常见的范例是 http
host – 定义域主机(http 的默许主机是 www)
domain – 定义因特网域名,比方 runoob.com
:port – 定义主机上的端口号(http 的默许端口号是 80)
path – 定义效劳器上的途径(如果省略,则文档必需位于网站的根目录中)。
filename – 定义文档/资本的称号

固然,如果没有域名的话,我们想要接见当地,也可以是如许的:
http://ip:port/path/filename

这里的ip涉及到内网和本机地点。
内网也就是局域网,平常以192.168..打头。本机地点是:127.0.0.1。

它们两个有什么区别呢?
假定接见我的server_path以下所示

cOnstant= {
dev: {
**server_path: "http://127.0.0.1:58081/",**
imgPre: "http://web.cs.wentonghuishou.com/",
commonParams: {}
},
}
_env = "dev";
window.cOnstant= constant[_env];

我做后端Java的,开启了Tomcat。我的同事是做前端的,他用上面的server_path接见我,也就是说,想经由过程我本机ip要求我的接口,是没办法接见我后端的接口。由于,这是我本机的ip,只要我个人才接见。因此,我本身是可以接见的。如图所示:

《内网穿透与反向代办,浅谈前背景星散》

如果他把server_path改成了server_path: “http://192.168.40.177:58081/”,,那末,他想经由过程局域网接见我的接口,这是可以接见我的。由于,我们同处在这个局域网下的。如图所示:

《内网穿透与反向代办,浅谈前背景星散》

外网怎样接见,也就是,内网穿透

如果,我和我的同事,不在统一局域网,但他,想接见我后端的接口,这时候该怎样办?应该是须要摆脱网域限定,可以接见我的内网,也就是接见的本机。这时候,就涌现了,内网穿透的软件,比方ngrok,小米球等。

小米球可以完成内网穿透,他是怎样完成内网穿透,主如果经由过程域名的反向代办,这也就是所谓的反向代办。实在,反向代办没那末嵬峨上,不要被它吓到了。固然,这里须要输入端口号,这里前端的hbuilder的端口号,也就是8020端口号。为何须要端口号,端口号可以肯定本机唯一的历程。比方mysql的3306端口号,Tomcat的80端口号等。为何是前端的端口号,由于我们起首接见的是页面,页面经由过程server_path来接见后端接口,这里我们不须要斟酌这方面的。

小米球的设置以下,这里是免费版的:

《内网穿透与反向代办,浅谈前背景星散》
《内网穿透与反向代办,浅谈前背景星散》
当我们,在浏览器的地点栏输入http://zby.ngrok.xiaomiqiu.cn…,你会发明,它能接见到我的前端页面,并挪用了我后端的接口,这就完成了ip的反向代办。域名解析也是一样的原理,利用了ip的反向代办。如图所示:

《内网穿透与反向代办,浅谈前背景星散》


推荐阅读
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 在Java中,我会做这样的事情:classPerson{privateRecordrecord;publicStringname(){record().get(name);}p ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
author-avatar
dfdzgf_542
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有