学习内容》:
//========学习内容=========
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);//设计一个方法 来模拟输入浏览器中的URLpublic void openBrower(){System.out.println("请输入url地址");String url = scanner.nextLine();//将输入的url地址进行解析 拆分开 ip prot 用来创建socket对象//资源名用来发出请求资源this.parseUrl(url);}//设计一个方法 用来解析拆分Url//localhost:9999/index.jsppublic 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操作有点听的不太舒服,跳着和拖着视频大概过了一下,会通过属性和标签名去拿到标签
操作他,并没有细致了解,事件之前学过,忘记很多了,但是我选择直接跳过再学事件了,目前最熟的
是鼠标单击事件,凑活目前先用着,其他的基本都差不多,后面学习到再跟着老师复习着用,感觉够用。
