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里面可以看见。

相关推荐
ss27320 分钟前
为什么PostgreSQL适合AI场景?
数据库·人工智能·postgresql
瑞克-桑切斯25 分钟前
7、MySQL 慢查询排查与优化实战指南
java·服务器·数据库
z06.1 小时前
MySQL索引
数据库·mysql
考虑考虑1 小时前
Posrgresql恢复.backup文件
数据库·后端·postgresql
云祺vinchin2 小时前
中小企业备份软件选型从恢复需求到总体成本评估
数据库·数据备份·中小企业备份·容灾备份软件
Zenova EdgeOS2 小时前
Go 工业边缘错误处理实战:用 errors 构建可追溯错误链
开发语言·数据库·golang
KKKlucifer2 小时前
国内数据安全服务的产品智能化转型:大模型赋能下的技术能力重构分析
大数据·数据库·重构
字节跳动开源3 小时前
OpenViking 上线原生 3D 内容理解模型
数据库·开源
CCIE-Yasuo5 小时前
网络安全-学习数据库-Mysql-2
数据库·学习·mysql
这个DBA有点耶5 小时前
内核级AI与多模融合:AI数据库在海外场景的落地要点
数据库·人工智能·架构