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