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

相关推荐
brave_zhao1 小时前
达梦8最终锁阻塞巡检 SQL
数据库
一 乐8 小时前
婚纱摄影网站|基于ssm + vue婚纱摄影网站系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·后端
1.14(java)9 小时前
SQL数据库操作:从CRUD到高级查询
数据库
Full Stack Developme10 小时前
数据库索引的原理及类型和应用场景
数据库
IDC02_FEIYA11 小时前
SQL Server 2025数据库安装图文教程(附SQL Server2025数据库下载安装包)
数据库·windows
辞砚技术录12 小时前
MySQL面试题——联合索引
数据库·面试
萧曵 丶12 小时前
MySQL 主键不推荐使用 UUID 的深层原因
数据库·mysql·索引
小北方城市网12 小时前
分布式锁实战指南:从选型到落地,避开 90% 的坑
java·数据库·redis·分布式·python·缓存
毕设十刻12 小时前
基于Vue的人事管理系统67zzz(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
TDengine (老段)14 小时前
TDengine Python 连接器入门指南
大数据·数据库·python·物联网·时序数据库·tdengine·涛思数据