可能是csdn讲的最好的Servlet教程,一天打通Servlet全套教程丨2022最新版,轻松掌握servlet基础+案例实操

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

文件下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值