1 概述及简单登录(不涉及数据库)

1 概述及简单登录(不涉及数据库)

1.1 概述

http协议即超文本传输协议,是互联网上信息传递与交互的重要基础协议。

HTTP 是一种应用层协议,它规定了客户端(如浏览器)与服务器之间进行数据交换的格式和规则,用于在网络上传输超文本(如 HTML 文档、图片、视频等),使得用户能够通过浏览器访问各种网页资源。

工作原理

请求 - 响应模型:客户端向服务器发送请求,服务器接收到请求后进行处理,并返回相应的响应。例如,用户在浏览器中输入网址并回车,浏览器就会向服务器发送一个 HTTP 请求,服务器根据请求内容返回对应的网页数据。

消息结构:HTTP 消息分为请求消息和响应消息。请求消息包含请求方法(如 GET、POST 等)、请求头字段(如 User - Agent、Content - Type 等)和请求体(可选,用于传递数据)。响应消息包含状态码(如 200 表示成功、404 表示未找到等)、响应头字段和响应体(包含返回的数据)。

注:有请求就一定会有响应,是一对存在的。客户端向服务器发起请求。http本身是无状态的,客户端发起请求时,服务端并不知道是谁发起的。

请求部分一般包括以下三个方面。

200:请求成功

404:url出错

500:服务器内部出错,即Java代码写错

Servlet 是 Java 中用于编写 Web 应用程序的组件 。它运行在 Web 服务器(比如 Tomcat )上,能够接收客户端(比如浏览器 )发送的请求,然后根据请求进行相应处理,并生成响应返回给客户端。比如,当你在浏览器里访问一个网页,背后可能就是 Servlet 在处理你的请求,生成你看到的页面内容。

1.2 文件位置

src里面是写后端的地方。

WebContent里面是写前端的地方。

1.3 代码

java 复制代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="js/jquery-1.10.2.min.js"></script>
<script>
//jquery+ajax发起请求
$.ajax({
	url:"demo?account=admin&password=123456",
	type:"post",//请求方式 get post
	data:{
		account:"admin",
		password:"123456"
	},//参数域
	success:function(value){
		console.log(value);
		console.log(value.alexa);
	},//请求成功的回调函数
	error:function(){
		alert("出错了")
	},//请求失败的回调函数
	//请求失败指的是流程里面有一些步骤失败了
	//返回的信息不是想要的或者登录账户登录失败都不是请求失败,是请求成功
})
</script>
</head>
<body>
	你好
	<a href="demo?account=admin&password=123456">点击</a>
</body>
</html>

文件创建:点new,然后servlet

java 复制代码
package com.qcby.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class IndexServlet
 */
@WebServlet("/demo")
public class IndexServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public IndexServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
    //get
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("get执行了");
		//设置编码
		request.setCharacterEncoding("utf-8");
//		response.setCharacterEncoding("utf-8");
		//设置返回的数据格式为.json格式
		//设置之后,返回的所有数据,格式都得是.json格式
		//不然会出错,请求失败,无法返回
		response.setContentType("text/json;charset=utf-8");
		//接收参数
		String acc = request.getParameter("account");//获取参数函数,返回的是字符串
		String pass = request.getParameter("password");
		String res="登录失败";//返回格式不是.json格式,会出错
		if(acc.equals("admin")&&pass.equals("123456")) {
			res="{\"name\":\"jdfi\",\"alexa\":1005,\"set\":null}";
		}
		
		//给前端响应数据
		response.getWriter().write(res);
	}
	
	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	//post
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("post执行了");
		//设置格式和编码
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/json;charset=utf-8");
		//接收参数
		String acc=request.getParameter("account");
		String pass=request.getParameter("password");
		//给前端响应数据
		String res="登录失败";
		if(acc.equals("admin")&&pass.equals("123456")) {
			res="{\"name\":\"sdhfo\",\"alexa\":4564,\"site\":null}";
		}
		response.getWriter().write(res);
	}

}

1.4 运行结果

运行在html里面点run on server

前端(.html)运行结果在浏览器里可以看见。

后端(.Java)运行结果在eclipse的Console里面可以看见。

相关推荐
ClouGence1 天前
Oracle 数据同步为什么会出现数据不一致?长事务是常被忽略的原因
数据库·后端·oracle
飞将1 天前
从零实现数据库(2)——HashIndex + IndexManager
数据库
Nturmoils2 天前
订单列表慢查询,先看 WHERE、ORDER BY 和 LIMIT
数据库
渣波2 天前
拒绝 SQL 焦虑!手把手带你用 NestJS + Prisma + DTO 写出“防弹”级后端代码
javascript·数据库·后端
倔强的石头_3 天前
KingbaseES 新版MySQL 兼容版体验:旧版迁移 + 功能实测
数据库
倔强的石头_6 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
冬奇Lab7 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
ClouGence7 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神7 天前
三、用户与权限管理
数据库·mysql
麦聪聊数据8 天前
数据服务化时代:企业数据能力输出的核心路径
数据库