java分类
jave se基础java
java ee公司常用,pc端,网站开发
java me微型版,移动端开发
HTTP协议
(Hypertext Transfer Protocol,超文本传输协议),是一个客户端请求和响应的标准协议,这个协议详细规定了浏览器和万维网服务器之间互相通信的规则。
用户输入地址和端口号之后就可以从服务器上取得所需要的网页信息。
通信规则规定了客户端发送给服务器的内容格式,也规定了服务器发送给客户端的内容格式。
客户端发送给服务器的格式叫"请求协议";服务器发送给客户端的格式叫"响应协议"。
HTTP协议;后面是ip或者域名(域名映射到底层就是ip,ip定位到主机,主机定位到程序);:后面跟端口;项目资源;?后面参数
HTTP 请求
由三部分组成,分别是:请求行、请求头、请求正文。
get请求没有请求体,也就是没有请求正文。
post请求没有?直接下面有请求体。
在接收和解释请求消息后,服务器返回一个 HTTP 响应消息。
HTTP 响应
也是由三个部分组成,分别是:状态行(响应行)、消息报头(响应头)、响应正文(响应体)。
消息头
请求头:Referer:该请求头指明请求从哪里来
响应头:Location:Location响应报头域用于重定向接受者到一个新的位置。
Location响应报头域,常用在更换域名的时候。(百度变了也能通过www.baidu.com进入)
Refresh:自动跳转(单位是秒),可以在页面通过meta标签实现,也可在后台实现。
<meta http-equiv="refresh" content="3;url=http://www.baidu.com">
,这里的http-equiv="refresh"
表示这个<meta>
标签将模拟一个HTTP头信息,其作用是刷新页面。而content
属性的值定义了刷新的具体行为:3
表示刷新前等待3秒,url=http://www.baidu.com
指定了刷新后跳转到的网址。
Tomcat服务器
Tomcat 是一个符合JavaEE WEB 标准的最小的 WEB 容器,是免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。Tomcat 技术先进,性能稳定,而且免费。
Servlet的实现
开关服务器
"C:\Program Files\apache-tomcat-10.1.28bin\startup.bat"点这个来启动服务器(窗口乱七八糟的不要关他)或者在该bin窗口打开终端输入startup.bat。默认占用端口8080。
浏览器搜索http://localhost:8080/或者127.0.0.1:8080
关闭时用bin文件里的shutdown。
idea里使用
@WebServlet(name = "helloServlet", value = "/hello-servlet")中注意value, 网址输入localhost:8080/demo01//hello-servlet(demo01可以在编辑配置改)
@WebServlet(name = "helloServlet", value ={ "/servlet",“/ser001"})
@WebServlet(name = "helloServlet", urlPatterns ={ "/servlet",“/ser001"})
生命周期
HttpServletResponse对象
HttpServletRequest 对象:主要作用是用来接收客户端发送过来的请求信息,例如:请求的参数,发送的头信息等都属于客户端发来的信息,service()方法中形参接收的是 HttpServletRequest 接口的实例化对象,表示该对象主要应用在HTTP 协议上,该对象是由 Tomcat 封装好传递过来。
在 HttpServletRequest 接口中,定义的方法很多,但都是围绕接收客户端参数的。直接在 Service 方法中由容器传入过来,而我们需要做的就是取出对象中的数据,进行分析、处理。
接受请求方法
只有它要tostring或者加空字符串
路径在C:\Users\86182\Desktop\前端\07Servlet\demo\src\main\java\com\example\demo\demo3.java
package com.example.demo;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/ser03" )
public class demo3 extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String url = req.getRequestURL()+"";
System.out.println("完整url:"+url);
//参数
String uname = req.getParameter("uname");
String pwd = req.getParameter("pwd");
System.out.println("uname:"+uname+" , pwd:"+pwd);
//数组
String[] hobbys=req.getParameterValues("hobby");
if(hobbys!=null&&hobbys.length>0){
for (String hobby:hobbys) {
System.out.println("hobby:"+hobby);
}
}
}
}
浏览器输入localhost:8080/demo01/ser03?uname="zhangsan"&&pwd="12345"&&hobby="lanqiu"&&hobby="tiaosheng"
请求乱码问题
请求转发
@WebServlet("/ser04" ),上面url可以是s04
request作用域
HttpServletRequest对象
响应数据
响应乱码问题
重定向
地址栏改变,两次请求,数据无法共享
请求转发和重定向区别
比如跳转www.baidu.com就要重定向(请求转发后的地址要在该项目下)
Cookie对象
主要是有一点记忆能力,不要重复之前的话(存在客户端,其实不太安全)
cookie创建和发送
按f12查看
cookie获取
cookie存活时间
cookie注意
1只在本机浏览器2不建议存中文3同名会覆盖4浏览器存放有上限
cookie的路径
HttpSession对象
跟客服聊天一样
获取session对象
没有JSESSIONID该用户会话就创建,有就使用。
session域对象
session销毁
ServletContext对象
获取ServletContext
常用方法
域对象
文件上传和下载
文件上传涉及到前台页面的编写和后台服务器端代码的编写,前台发送文件,后台接收并保存文件,这才是个完整的文件上传。
文件上传
这个@uploadServlet里运行
跳转到
http://localhost:8080/demo01/uploadServlet