public class Client {
public static void main(String[] args) {
//1.创建socket对象
Socket client=null;
DataOutputStream dos = null;
DataInputStream dis =null;
try {
client = new Socket("localhost", 8888);
//2.获取输出流请求
dos = new DataOutputStream(client.getOutputStream());
dos.writeUTF("我是客服端:服务器你好!");
//3.获取输出流响应
dis = new DataInputStream(client.getInputStream());
System.out.println(dis.readUTF());
} catch (IOException e) {
e.printStackTrace();
} finally {
//4.关闭流
IOClose.closeAll(dis,dos,client);
}
}
创建IOClose类
public class IOClose {
//关闭全部的工具类
public static void closeAll(Closeable...c){
for (Closeable closeable : c) {
if (closeable!=null){
try {
closeable.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
创建服务端(在httpserver_1包下)
package com.feng.server;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
//1.创建ServerSocket对象
ServerSocket server = null;
Socket client =null;
DataInputStream dis =null;
DataOutputStream dos =null;
try {
server = new ServerSocket(8888);
//2.监听是否有客服端发送请求
client = server.accept();
//3.获取Socket对象
//4.获取输入流 ->得到客服端的请求
dis = new DataInputStream(client.getInputStream());
System.out.println(dis.readUTF());
//5.获取输出流 ->给客服端响应结果
dos = new DataOutputStream(client.getOutputStream());
dos.writeUTF("客服端你好,我是服务器,我接受到了你的信息");
} catch (IOException e) {
e.printStackTrace();
} finally {
IOClose.closeAll(dos,dis,client,server);
}
同样创建IOClose
在CS结构server(2)
package com.feng.server;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class Server2 {
public static void main(String[] args) {
//1.创建ServerSocket对象
ServerSocket server = null;
Socket client =null;
BufferedReader br = null;
try {
server = new ServerSocket(8888);
//2.监听是否有客服端发送请求
client = server.accept();
//获取来自浏览器的请求信息
br = new BufferedReader(new InputStreamReader(client.getInputStream(), "utf-8"));
String str=null;
while ((str=br.readLine()).length()>0) {
System.out.println(str);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
IOClose.closeAll(br,client,server);
}
}
}
创建HTML
创建server3
获取来自浏览器的请求信息
//获取来自浏览器的请求信息
is = client.getInputStream();
byte[] buf = new byte[20480];
int len = is.read(buf);
System.out.println(new String(buf,0,len));
对web浏览器做出响应
添加参数
String CRLF="rn";
String BLANK=" ";
InputStream is = null;
/**对web浏览器做出响应*/
StringBuilder sb = new StringBuilder();
StringBuilder sbContent = new StringBuilder(); //响应的文本
sbContent.append("响应结果 ");
sbContent.append("登入成功");
//1拼接响应头
sb.append("HTTP/1.1").append(BLANK).append(200).append(BLANK).append("OK");
sb.append(CRLF);
sb.append("Content-Type: text/html;charset=UTF-8");
sb.append(CRLF);
sb.append("Content-Length:").append(sbContent.toString().getBytes().length).append(CRLF);
sb.append(CRLF);//带表响应头与响应正文部分之间的换行
sb.append(sbContent);
//2通过输出流
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(client.getOutputStream(),"UTF-8"));
bw.write(sb.toString());
bw.flush();
bw.close();
整合server3
public class Server3 {
public static void main(String[] args) {
//1.创建ServerSocket对象
ServerSocket server = null;
Socket client =null;
String CRLF="rn";
String BLANK=" ";
InputStream is = null;
try {
server = new ServerSocket(8888);
//2.监听是否有客服端发送请求
client = server.accept();
//获取来自浏览器的请求信息
is = client.getInputStream();
byte[] buf = new byte[20480];
int len = is.read(buf);
System.out.println(new String(buf,0,len));
/**对web浏览器做出响应*/
StringBuilder sb = new StringBuilder();
StringBuilder sbContent = new StringBuilder(); //响应的文本
sbContent.append("响应结果 ");
sbContent.append("登入成功");
//1拼接响应头
sb.append("HTTP/1.1").append(BLANK).append(200).append(BLANK).append("OK");
sb.append(CRLF);
sb.append("Content-Type: text/html;charset=UTF-8");
sb.append(CRLF);
sb.append("Content-Length:").append(sbContent.toString().getBytes().length).append(CRLF);
sb.append(CRLF);//带表响应头与响应正文部分之间的换行
sb.append(sbContent);
//2通过输出流
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(client.getOutputStream(),"UTF-8"));
bw.write(sb.toString());
bw.flush();
bw.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
//6.关闭流
IOClose.closeAll(is,client,server);
}
}
}
创建Request,Response,Server,WebApp(在server包下)
创建Servlet,LoginServlet(在servlet包下)
创建IOCloseUtil(在util包下)
创建web.xml(在WEB_INFO包下)
创建Entity,Mapping,ServletContext,WebDom4j,创建IOClose在util包下
补充实体类
package com.feng.server;
public class Entity { //servlet-name或每一个servlet-name所对应得实体类
private String name;
private String clazz;
public Entity() {
}
public Entity(String name, String clazz) {
this.name = name;
this.clazz = clazz;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name
参与评论
手机查看
返回顶部