java 如何搭建http服务器,第1张

看你具体是想做什么,现在现成的开源的java的http服务器有很多,像tomcat之类的都有http服务器功能,如果你只是单纯的需要用的话,直接用tomcat就好了

但是如果你是做要自己用java实现一个http服务器的话就要稍微麻烦一点

http服务器,本质上还是基于tcpip协议的服务器,首先用java的ServerSocket监听一个端口(也可以使用开源的server组件,如quickserver之类的),然后对客户端发上来的数据进行处理,这里就需要了解一下http协议了,因为上来的数据,都是按照http协议来组织的,你需要将请求数据解析后,将响应数据组织成http的响应,发回给客户端。这样一个简单的http服务器就实现了。

但是这个请求和响应都有很多种类,一个完整的http服务器应该要都能够支持,所以这里面的工作量还是有一点的。

另外,上面说的http服务器只是一个静态的服务器,如果你想让你写的服务具有动态功能,那你的服务器还得提供javaee的容器功能,这样做下去,没准你也能写一个tomcat出来了……

使用JavaAPI的5个技巧    

不要自己去实现安全框架

几平每个人都知道避免去实现加密等算法。同样道理,你的应用的安全栈的其余部分也是一样,可能需要花费很大,得到的风险也很大。你很可能会犯一些错误。自1999年以来,已经有89373个CVE(公共漏洞和暴露)发布了。而其中公开的大部分的发现者都是那些非常聪明的人。

你可能认为处理一个简单的用例(例如验证用户的密码)是很简单的事情一你所做的一切只是比较一对字符串。这样想就错了。你需要验证密码的哈希值,审核尝试登录的次数,减少针对字典的攻击,这只是冰山一角。你最好的选择是使用现有的成熟的库或框架,例如Apache的Shiro或者SpringSecurity,让这些框架去处理各类复杂的安全问题。

2Use TLS,Always!永远使用TLS!

能让你的应用需要TLS(HTTPS/SSL)只需要简单的一行代码,所有人都应该这样做!如果使用Apache Shiro框架,只需要设置属性:[urls]/=ssl如果使用Spring Security,只需要在设置HttpSecurity时,简单调用一个方法即可。httprequiresChannel()anyRequest()requiresSecure(),在Spring Boot中,仅需设置一些属性,如下:serverport=8443 serversslkey-store=classpath:keystorejks serversslkey-store-password=secret serversslkey-password=another-secret。

3使用Spring Booti创建Web Service

Spring Boot:是Spring平台的一个简化,能让编写Spring应用变得很简单,例如能用很少的代码,编写《app应用中考虑的12个因素》一文中提到的观点。如果你还在使用建War包的方式编码,那么Spring Boot值得你去学习。使用Spring Booti可以复杂的、不同类型的应用,例如可以使用简单的注解。

(@EnableResourceServer))就搭建一个OAuth资源服务器,或者通过简单的属性改变其端口:serverport 8090如果不喜欢使用SpringBoot,那么可以使用Dropwizard去搭建JAX-RS技术栈。

4,监视应用和性能指标

如果无任何数据的情况下是很难发现程序的错误的。Spring Booti通过使用Actuator,能让收集指标数据变得容易,只需要在应用中增加一个依赖,如下:<dependency<groupld>orgspringframeworkboot</groupld>。

<artifactld>spring-boot-starter-actuator</artifactld>。

</dependency>。

然后就可以通过浏览器中,在访问应用地址后输入/health或者/metrics去检查应用的健康情况或者指标。Dropwizard框架通过healthcheck和/metrics实现同样的功能。

5保护敏感信息

人们都认为API密钥是不安全的,这是事实。密钥通过电子邮件发送或源代码管理系统控制。也许这是它们看起来比密码更不安全的原因,但它们也一样敏感。如果需要将AP川密钥存储在文件中,请确保授予文件有限的访问权限。

例如,我们建议在私人目录中存放Okta的YAML文件并且赋予文件所有者只读权限。chmod u=r,go-rwx ~/okta/oktayaml如果你正为使用你的APP的用户创建API,记得提醒他们,如果无设置好权限的话,SSH的忽文件是放在你的~/ssh目录下,如果无设置好权限的话。GitHub把它们放在“危险区域”,以提醒用户,这是十分有用的。

1由于服务器配置比较低综合考虑,选择ubuntu系统进行搭建

2 登陆阿里云服务器:

方法一:使用xshell软件登陆服务器

主机填写ip地址

端口号选择22

连接登陆服务器

方法二:使用阿里云管理终端

ssh root@服务器ip地址

password:输入密码

3如何上传文件

方法一:windows和linux上传或下载某个文件可以使用rz,sz

sudo apt-get install lrzsz

安装完成后进入准备存放改文件的文件夹输入rz,就会跳出文件选择框

例如:#cd apache-tomcat-7069/bin  rz

cd后有空格

cd ~:返回最上层

cd :返回上一层

cd -:返回最近操作 

方法二:使用xshell中的插件Xftp

4安装及配置环境

安装lsb指令

ubunu快捷安装需要的命令,更新一下:

自带源在大陆不好,更新即可解决

1sudo apt-get update  

2apt-get install yum  yum install -y redhat-lsb

输入lsb指令查看当前版本 

查看版本号

lsb_release -a查看当前位数

getconf LONG_BIT

安装jdk:

方法一:ubuntu自动安装jdk

sudo apt-get install jdk

安装完成后配置环境:

使用vim指定编辑etc目录下profile文件,添加export

#vim /etc/profile

添加进profile文件

JAVA_HOME=/home/java/jdk160_12

export JRE_HOME=/home/liujicheng/java/jdk160_12/jre

export CLASSPATH=:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

//java存放位置请自行更改

//使用 which java 查看jdk所在文件夹

方法二:本地下载jdk上传

下载对应系统32位或64位的targz文件

建议:经过还几次对服务器进行环境搭建,已经有了一点小小的见解,建议不要使用过低版本的JDK,例如服务器JDK版本为15而项目JDK版本为18的情况,就会出现无法服务器无法运行war文件的情况,建议版本为17

上传targz文件有两种方法

11输入命令行 rz 选择安装包上传1使用rz时,注意安装 2通过xftp将上传

创建一个java文件夹

mkdir java

输入安装命令,将上传的targz文件解压到创建为java文件夹中

sudo tar -zxvf jdk-7u80-linux-x64targz -C /root/java

设置环境变量

使用vim指定编辑etc目录下profile文件,添加export

#vim /etc/profile添加进profile文件

JAVA_HOME=/root/java/jdk170_80

export JRE_HOME=/root/java/jdk170_80/jre

export CLASSPATH=:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

//java存放位置请自行更改//使用 which java 查看jdk所在文件夹

选择E,然后输入i 进行写操作

最后 :x退出并保存

设置默认JDK

12345sudo update-alternatives --install /usr/bin/java java /root/java/jdk170_80/bin/java 300 sudo update-alternatives --install /usr/bin/javac javac /root/java/jdk170_80/bin/javac 300 sudo update-alternatives --install /usr/bin/jar jar /root/java/jdk170_80/bin/jar 300  sudo update-alternatives --install /usr/bin/javah javah /root/java/jdk170_80/bin/javah 300  sudo update-alternatives --install /usr/bin/javap javap /root/java/jdk170_80/bin/javap 300

如果之后一个版本显示: 

There is only one alternative in link group java (providing /usr/bin/java):

/usr/lib/jvm/jdk170_60/bin/java

否者,选择合适的jdk

检查jdk是否安装成功,输出版本号及对应信息即安装成功

#java

#javac

#java -version

安装tomcat

方法一:ubuntu自动安装tomcat

sudo apt-get install tomcat

添加jdk和jre环境变量

JAVA_HOME=/home/java/jdk160_12

JRE_HOME=/home/homer/eclipse/jdk160_12/jre  

PATH=$JAVA_HOME/bin:$JRE_HOME:$PATH  

CLASSPATH=:$JAVA_HOME/lib/dtjar:$JAVA_HOME/lib/toolsjar  

TOMCAT_HOME=/opt/apache-tomcat-7029  

启动tomcat

cd apache-tomcat-7069/bin /startupsh

出现提示说明配置成功

方法二:上传tomcat并解压

通过上述上传文件方法上传后

使用tar指令解压

tar -zxvf apache-tomcat-8024targz

然后进入apache-tomcat-7069文件夹

# cd apache-tomcat-8024 /bin/

启动tomcat

cd apache-tomcat-8024 /bin/ /startupsh

显示如下说明成功

最后输入:http://xxxx:8080/   (x代表ip地址),显示tomcat首页说明配置成功

安装Mysql

ubuntu下自动安装

sudo apt-get install mysql-server

apt-get install mysql-client

sudo apt-get install libmysqlclient-dev

设置数据库密码:

检查Mysql是否安装成功

sudo netstat -tap | grep mysql

登陆Mysql

mysql -uroot -p密码

成功:

查看数据库

show databases

将sql文件导入

//先选定数据库

use iswust        

source /root/testsql//source /文件夹/sql文件名

select from score

5java工程打包上传并运行

右键选中java项目,WAR Export 将文件以war格式导出

(注意:java工程的jdk一定要先降低到与服务器的jdk版本相同,例如java工程为18而服务器为16则会报错)

降低jdk方法:

并通过XFTP或上述的上传文件方法,上传至apache-tomcat-7069/webapps中

随着互联网的不断发展,无服务器应用编程开发成为了程序员学习的又一个发展方向,下面北大青鸟就一起来了解一下,实现无服务器编程开发的框架都有哪些呢。

Nimbus是一个旨在简化FaaS应用程序开发、测试和部署的Java框架。Nimbus提供了一组与云平台无关的公共接口,用于与云提供商的无服务器功能发生交互。

对于那些想要开发简单的应用程序的新手们来说,他们需要面临非常陡峭的学习曲线。他们可能只想要部署一些HTTP端点用来保存数据,但仍然要学习很多与云相关的概念。

Nimbus的主要优势是不需要通过创建配置文件来声明云资源(如AWSSAM或者Serverless框架),这样开发人员“就不会因为忘记了某些参数而犯错”。另外,Nimbus会对部署参数进行编译时检查,以便尽早检测出错误。

Nimbus还支持其他的操作:

WebSocketFunction:用于处理websocket请求;

DocumentStoreFunction:用于执行因文档存储变更而触发的代码;

KeyValueStoreFunction:用于执行因键值存储变更而触发的代码;

NotificationFunction:用于执行由通知触发的代码;

QueueFunction:用于执行因队列变化而触发的代码;

BasicFunction:用于执行不需要触发器的代码;

FileStorageFunction:用于执行基于文件存储事件(文件创建和删除)的代码;

AfterDeploymentFunction:用于执行部署之后需要立即执行的操作。

除了支持各种不同的操作之外,Nimbus还支持几种数据存储类型。

其他支持的数据存储(和客户端)包括:用于存储关系型数据的关系型存储、用于存储键值数据的键值存储和用于存储对象的文件存储(支持静态网站托管和文件上传)。

测试也是构建无服务器应用程序的另一个常见难点。Nimbus提供了单元测试和集成测试支持。在进行单元测试时,可以为上述列表中的任何一个操作创建本地部署,可以接受请求,并验证函数是否被正确调用,或者数据是否被正确保存。Nimbus对集成测试的支持相对有限,只支持基于HTTP的测试。在进行集成测试时,会启动一个本地Web服务器,用于验证请求调用了正确的函数。

首先,我得说明的是,目前市场上新人很难去做pc游戏开发,要么是做页游要么是手游。

页游不清楚我就不说了,手游里面,客户端主要就是c2d和u3d。

如果你想做客户端,那么你可以转学u3d,因为它使用的语言是csharp,这个语言和java相似。网上unity的教程也很多,你随便找一下就有了。

再说说手游服务器,其实我入行服务器还是挺巧合的,当初本来是打算做客户端的,都入职了,因为招不到服务器,就让我转服务器了。。

服务器的教程,我至今也没找到,而且也找不到系统的教程。

开源的服务器框架也只熟悉kbengine和scut。其中一个是cpp做底层python做开发的,一个是csharp做开发。而且scut已经两年没有更新了,应该是死掉了。

所以,想要学服务器开发,得碰点运气。

java服务器目前主流框架技术有网络层netty或mina,数据协议protobuf,数据库mysql,缓存数据库redis,jdbc一般是mybaits或者jpa,项目管理maven,设计层面spring

然后还需要熟悉多线程,linux的基本操作,git或者svn。

差不多了,这些都有个大致的了解,会用,应该就能找到工作了。

后面再深入需要学习的也挺多的,到时候你再根据业务需求自己琢磨着学吧。

随着游戏市场的兴起,特别是网页游戏、手机游戏的崛起,对游戏开发技术的需求越来越多。网络游戏开发是一个庞大的体系,总体来说是客户端与服务器端。客户端是玩家接触的游戏图像显示端,服务器是处理游戏运行中的各种数据,由于一台服务器要支持众多玩家的请求,所以服务器的性能高低决定了同一个游戏的用户数量。

主要原因是:

1Java是跨平台的,方便部署;

2Java是安全的高级语言,可以提高开发效率;

3Java是面向对象的,代码可以重用;

4Java的分布式应用

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » java 如何搭建http服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情