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

相关推荐
Jaising66618 小时前
Mybatis Plus 主键生成器实现思路分析
数据库·spring boot·mybatis
精神病不行计算机不上班18 小时前
[Java Web]在IDEA中完整实现Servlet的示例
java·servlet·tomcat·html·intellij-idea·web
程序喵大人19 小时前
SQLITE问题整理
开发语言·数据库·c++·sqlite
菜鸟小九19 小时前
redis实战(缓存)
数据库·redis·缓存
lionliu051919 小时前
数据库的乐观锁和悲观锁的区别
java·数据库·oracle
晴天¥19 小时前
Oracle中的表空间
运维·数据库·oracle
小高求学之路19 小时前
Neo4j - 为什么需要图数据库
数据库·neo4j
rocksun19 小时前
Rust 异步编程:Futures 与 Tokio 深度解析
数据库·rust
曹牧19 小时前
Oracle:前五个字符
数据库·oracle
Coder_Oldou19 小时前
【经验分享】MySQL线上使用经验
数据库·经验分享·mysql