学习内容》:
//========学习内容=========
JS的剩下dom操作和鼠标单机事件
请求与响应(1)
《代码内容》:
/
对于之前的学习我们经常用到MVC的架构模式
M模型层 V视图层 C控制层
*V我们现在可以用Html来开发B/S模式——>学习 请求与响应 过程
/
//===================================================================================//
模拟浏览器发出请求,服务器接收————>请求响应的初步封装
浏览器代码———-> 其中用到了字符串解析 创建Socket和流的处理
//===================================================================================//
package brower;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class Brower {
private Scanner scanner = new Scanner(System.in);
//设计一个方法 来模拟输入浏览器中的URL
public void openBrower(){
System.out.println("请输入url地址");
String url = scanner.nextLine();
//将输入的url地址进行解析 拆分开 ip prot 用来创建socket对象
//资源名用来发出请求资源
this.parseUrl(url);
}
//设计一个方法 用来解析拆分Url
//localhost:9999/index.jsp
public void parseUrl(String url){
String ip = url.substring(0,url.indexOf(":"));
System.out.println(ip);
String port = url.substring(ip.length()+1,url.indexOf("/"));
System.out.println(port);
String contentAndParam = url.substring(ip.length()+1 + port.length()+1);
System.out.println(contentAndParam);
//用当前截取到的信息创建socket并发出请求
this.createSocketAndRequest(ip,port,contentAndParam);
}
//设计一个方法 用来创建Socket并发出请求
public void createSocketAndRequest(String ip,String port,String contentAndParam){
try {
Socket socket = new Socket(ip, Integer.parseInt(port));
PrintWriter writer = new PrintWriter(socket.getOutputStream());
writer.println(contentAndParam);
writer.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
//测试浏览器
public static void main(String[] args) {
Brower brower = new Brower();
brower.openBrower();
}
}
服务器代码—->提前用自己的思路读取了发送过来的请求名
package server;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
//测试服务器
public static void main(String[] args) {
Server server = new Server();
server.connectionSocket();
}
//设计一个方法 用来连接socket和接收浏览器发出的请求
public void connectionSocket(){
try {
System.out.println("服务器启动中...");
ServerSocket serverSocket = new ServerSocket(9999);
Socket socket = serverSocket.accept();
System.out.println("成功接收到浏览器请求");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String contentAndParam = bufferedReader.readLine();
System.out.println(contentAndParam);
} catch (IOException e) {
e.printStackTrace();
}
}
}
成功运行截图—->浏览器发出请求 服务器读取请求信息
//浏览器运行
//服务器运行
//===================================================================================//
学习总结:
学懂的:
感觉封装中最用的舒服的就是字符串的截取,通过自己的思路去截取字符串
服务端用BufferReader去读取发送过来的信息
Socket的操作
在公益群帮一个学生解决的排序问题详解,自己画了图,感觉挺好的,保存一下
有问题的地方:**
js的Dom操作有点听的不太舒服,跳着和拖着视频大概过了一下,会通过属性和标签名去拿到标签
操作他,并没有细致了解,事件之前学过,忘记很多了,但是我选择直接跳过再学事件了,目前最熟的
是鼠标单击事件,凑活目前先用着,其他的基本都差不多,后面学习到再跟着老师复习着用,感觉够用。