栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaWeb基础理论

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaWeb基础理论

基础理论 软件框架分类

        1.B/S:browser/server,瘦客户端

        2.C/S:client/server,胖客户端

Http协议(超文本传输协议)

        协议:通讯双方共同遵守的规则

        Hypertext transfer protocol:超文本传输协议

        为什么重要:B/S结构使用的协议:

特点:

  1. 基于TCP/IP协议的子协议,是应用层的传输协议;主要用于浏览器与客户端之间的通讯;ServerSocket,Socket

  2. 无状态,无连接的协议

  3. HTTP是基于请求-》响应的模式来进行通讯的;

Request(请求)的组成部分

三部分:

  1. 请求行(第一行)

  2. 若干消息头(多行,从第二行到空白行)

  3. 请求体(空白行后的所有内容,也可能没有请求体)

请求包括三部分,用空格隔开
Get /seedproject/first.html Http/1.1
Get:请求方式
/seedproject/first.html:url统一资源描述符
Http/1.1:协议版本号

Respone(响应)的组成部分

三部分:

  1. 状态行

  2. 消息头

  3. 实体内容

状态行分为三部分,用空格隔开
HTTP/1.1:协议版本
200:状态码
ok:状态的简单说明

GET与POST
  1. Get请求时使用请求行来传递数据,POST请求时使用请求体来传递数据;

  2. Get传递数据时,数据长度有限制,并且明文传递(不安全)

  3. Post传递数据时。数据长度无限制,安全,同时可以传递进制信息

编程来模拟Http协议的请求 Mycat

开发mycat的思路;
1.创建一个Serversocket,端口号是8080,accept;
2.获取到Socket,调用Scoket

public class MyCat {
	public static void main(String[] args) throws IOException{
		Map params=new HashMap<>();
		
		//1.create sever Socket监听http 8080端口
		ServerSocket server=new ServerSocket(8080);
		System.out.println("开始监听");
		//2.get socket ; blocking method
		Socket socket=server.accept();
		//3.get InputStream and wrap
		//字节流转换成字符流转换成缓冲流
		BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
		//存入数组 readLine方法一次读一行
		String requestLine = br.readLine();
		//输出数组
		System.out.println(requestLine);
		//输出数组中空格前的值GET 请求行
		//split方法  将一个字符串分割为子字符串,然后将结果作为字符串数组返回
		String method=requestLine.split(" ")[0];
		System.out.println(method);
		
		
		//消息头
		Map hearder= new HashMap();
		String str=null;
		while(!(str=br.readLine()).equals("")) {
			System.out.println(str);
			hearder.put(str.split(":")[0], str.split(":")[1]);	
		}
		//获得请求体 equals IgnoreCase无视大小写
		if("post".equalsIgnoreCase(method)) {
			String sizeString=hearder.get("Content-Length");
			Integer length=Integer.valueOf(sizeString.trim());
			
			char[] body=new char[length];
			System.out.println(method);
			//将请求体的所有内容都读到body中;
			br.read(body);
			String values=new String(body);
			System.out.println("请求体内容"+ new String(body));
			String[] value =values.split("&");
			for(String v:value ) {
				params.put(v.split("=")[0],v.split("=")[1]);
			}
		}
		
		//响应 字节转成字符流
		BufferedWriter bwriter=new BufferedWriter (new OutputStreamWriter(socket.getOutputStream()));
		//写状态
		bwriter.write("HTTP/1.1 200 OKrn");
		//写消息头
		bwriter.write("Content-Type: text/htmlrn");
		//空白行
		bwriter.write("rn");
		bwriter.write("first html");
		
		bwriter.write("

hellow Word

腾讯"); bwriter.write(""); bwriter.flush(); bwriter.close(); br.close(); server.close(); } }
html 代码


	
		
		
	
	
		
id 密码
JavaWeb环境搭建
  1. web:容器tomcat

  2. 开发环境:Eclipse

Tomcat容器介绍
  1. 免费开源的web容器

  2. Tomcat是Apache组织托管的一个绿色软件,直接解压即可

  3. Tomcat的目录结构

    • bin:tomcat的各种命令;

    • cofn:tomcat的配置文件

    • lib:tomcat的依赖jar包

    • webapps:存储用户部署的javaweb项目

    • works:jsp的工作目录

配置Eclipse

window->preferences->server->runtime environments->add->tomcat

创建servlet

 

protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
System.out.println("这是我的第一个网页!");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.print("这是我的第一个网页!!");
}·

启动服务器,运行:http://localhost:8080/javaweb630/First.do

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/310251.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号