制作一个服务端,然后启动,然后通过网页端进行连接
运行项目时显示,然后通过网页访问http://localhost:8088/
然后通过网页访问http://localhost:8088/
第一步:在main文件夹下的Java文件夹下创建项目包,我的项目的包名为cn.javawebsever.core
第二部:在刚刚创建的项目包下,创建class文件,文件名为WebSever,其功能为该项目的主类
Java代码
package cn.websever.core;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @author Ryan
* WebSever的主类
* websever项目是模拟Tomcat实现的一个简易版的web容器
* web容器:
* 可以管理多个不同的网络应用:webapp(每个网络应用可以看作一个网站,里面会包含网页,图片,样
* 式,脚本,处理业务等)
* 还可以基于TCP协议与客户端(通常就是浏览器)建立连接并互相发生数据
* 还可以在基于HTTP协议与客户端进行交互
*/
public class WebSever {
private ServerSocket server; //定义声明私有的一个服务端名为sever
/**
* 初始化WebSever的方法
*/
public WebSever(){
//try…catch 异常处理机制
try{
System.out.println("正在启动服务端");
server =new ServerSocket(8088); //申请端口号
System.out.println("服务端启动完毕");
}catch (Exception exception){
exception.printStackTrace(); //获取异常,并输出
}
}
/**
* 服务端开始工作的方法
* 注意事项:端口号是否冲突与别的项目
*/
public void start(){
//异常处理机制try…catch.
try{
System.out.println("等待客户端连接");
Socket socket = server.accept(); //和服务器创建连接
System.out.println("一个客户端已连接");
//查看客户端发送的内容
//测试读取浏览器发送过来的每个字符(浏览器发送的都是单字节字符)
//通过socket获取输入流
InputStream inputstream = socket.getInputStream();
//做精确流读取,一个字节一个字节显示,不使用缓冲流
int i; //定义
while((i = inputstream.read()) != -1){ //读取的字节数不为-1,就进行输出
System.out.print((char)i); //将输出的结果转换成char(字符)类型
}
}catch (Exception exception){
exception.printStackTrace(); //获取异常,并输出
}
}
/**
* 主方法
* @param args
*/
public static void main(String[] args) {
WebSever server = new WebSever(); //WebSever方法实例化
server.start(); //调用其start方法
}
}
pom.xml中添加的代码
<!-- jdk的环境设置 -->
<properties>
<java.version>14.0.1</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
</properties>