吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3268|回复: 0
收起左侧

[Java 转载] java的服务器项目

  [复制链接]
leonard_阿无 发表于 2019-4-11 20:18
最近用javaSE的知识模拟了一个服务器,下面是文档和源代码地址,有兴趣的萌新可以拿去参考参考,码云地址:https://gitee.com/zou0jin/java_server_project



Java服务器实验项目

码云:java服务器项目源码

项目功能与要求

  • 多线程服务器(端口9999),接受服务器的url
  • 通过url获取本地文件(图片,html,txt)输出到浏览器
  • 引入配置文件(本地文件目录,端口号,文件名),通过配置文件来配置服务器基本信息
  • 用get和post表单创建学生对象,记录之后进行登录验证
  • 要求封装HttpRequest,HttpResponse ,ProTool

大致思路

第一: 接收url,注意http协议接受信息的格式,提取里面有用的信息
请求行 GET /a.txt HTTP/1.1
请求头 row 1 col 2
空格 row 2 col 2
请求体 row 2 col 2

如:输入127.0.0.1:9999/a.txt server.accept()接受的信息

GET /a.txt HTTP/1.1
Host: 127.0.0.1:9999
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.90 Safari/537.36 2345Explorer/9.7.0.18838
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.8

对于Get请求我们提取第一行
GET /a.txt HTTP/1.1

但是对于post请求,具体内容在响应体,也就是body中
如输入127.0.0.1:9999/Student?name=leo&password=123的时候接受的数据为,需要的数据不在请求行了,在请求体中

POST    /Student    HTTP/1.1
Host: 127.0.0.1:9999
Connection: keep-alive
Content-Length: 21
Cache-Control: max-age=0
Origin: null
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.90 Safari/537.36 2345Explorer/9.7.0.18838
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.8

name=leo&password=123
第二:响应到浏览器的HTTP格式
响应行 HTTP/1.1 200 ok
响应头 charset=UTF-8
空格 \r\n
空格 \r\n
响应体 目标文件字节流数据

按照上面的格式发送即可

具体实现(用到哪些东西)

  • 用Bufferedread读取请求数据
  • PrintStream将文件写出到浏览器
    • 用try()自动关流
  • 用Properties类写配置文件
  • 通过请求数据用反射来创建对象

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 07:23

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表