JavaWeb~ 学习Servlet常见方法与生命周期( HTTP Request、HTTP Response、 Servlet Cookies、Servlet Session)

String password = req.getParameter(“password”);

resp.setContentType(“text/html; charset=utf-8”);

Writer writer = resp.getWriter();

writer.write(“”);

writer.write("

firstName: " + firstName + “</h1”);

writer.write(“
”);

writer.write("

secondName: " + secondName + “

”);

writer.write(“
”);

writer.write("

password: " + password + “

”);

writer.write(“”);

}

}

  • 获取header部分

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.io.Writer;

import java.util.Enumeration;

public class HttpServletTest3 extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//resp.setContentType(“text/html; charset=utf-8”);

resp.setContentType(“text/html”);

resp.setCharacterEncoding(“utf-8”);

//返回的是一个枚举

Enumeration enumeration = req.getHeaderNames();

Writer writer = resp.getWriter();

writer.write(“”);

while (enumeration.hasMoreElements()) {

String header = enumeration.nextElement();

writer.write(“

” + header + ": " + req.getHeader(header) + “

”);

}

writer.write(“</html”);

}

}

操作HTTP Response头的方法

==================================================================================

在这里插入图片描述

  • 返回一个404

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

public class HttpServletTest5 extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

// 得到一个 Tomcat 内置的错误页面.

resp.sendError(404);

}

}

  • 返回时间并设置一秒刷新一次

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.io.Writer;

import java.util.Date;

public class HttpServletTest4 extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

// 每秒自动刷新

// 返回的页面中, 填写上当前时间.

// 获取当前时间

// System.currentTimeMillis();

// new Date();

// new Calender();

resp.setContentType(“text/html; charset=utf-8”);

//设置header部分 1 表示每间隔一秒

resp.setIntHeader(“Refresh”, 1);

Date date = new Date();

Writer writer = resp.getWriter();

writer.write(“”);

writer.write(“

” + date.toString() + “

”);

writer.write(“”);

}

}

  • 返回重定向

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

public class HttpServletTest6 extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//重定向到一个网页 这个方法自动帮我们设置了respond的状态码和状态描述等相关信息

resp.sendRedirect(“https://blog.csdn.net/Shangxingya/article/details/107295800”);

}

}

设置 HTTP 状态代码的方法

==============================================================================

在这里插入图片描述

Servlet 操作cookie方法

=================================================================================

在这里插入图片描述

  • 设置cookie

import javax.servlet.ServletException;

import javax.servlet.http.Cookie;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

public class HttpServletTest7 extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//构建一个Cookie

Cookie name = new Cookie(“userName”, “listen”);

Cookie password = new Cookie(“password”, “listenY”);

//把cookie写到respond中

resp.addCookie(name);

resp.addCookie(password);

resp.setContentType(“text/html; charset=utf-8”);

resp.getWriter().write(“

设置Cookie成功

”);

}

}

  • 或得cookie

import javax.servlet.ServletException;

import javax.servlet.http.Cookie;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.io.Writer;

public class HttpServletTest8 extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//获得Cookie字段

Cookie[] cookies = req.getCookies();

//将所有的cookie输出到响应报文中

resp.setContentType(“text/html; charset=utf-8”);

Writer writer = resp.getWriter();

writer.write(“”);

for (Cookie c : cookies

) {

writer.write(“

” + c.getName() + ": " + c.getValue() + “

”);

}

writer.write(“”);

}

}

  • 删除cookie

import javax.servlet.ServletException;

import javax.servlet.http.Cookie;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.io.Writer;

public class HttpServletTest10 extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//删除现有的cookie

//获取所有cookie 然后将这些cookie的生命时间设置为0

//将这些cookie保存在响应报文中

Cookie[] cookies = req.getCookies();

// 设置响应内容类型

resp.setContentType(“text/html; charset=utf-8”);

if (cookies != null) {

for (Cookie c : cookies

) {

c.setMaxAge(0);

resp.addCookie©;

}

Writer writer = resp.getWriter();

writer.write(“”);

writer.write(“

删除cookie成功

”);

} else {

Writer writer = resp.getWriter();

writer.write(“”);

writer.write(“

当前没有cookie

”);

}

}

}

Servlet 操作session方法

==================================================================================

在这里插入图片描述

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import java.io.IOException;

import java.io.Writer;

public class HttpServletTest9 extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

// 1. 先获取 Session. 如果用户曾经没有访问过, 此时将创建新的 session

// 如果用户已经访问过了, 就获取到曾经的 Session

// 新用户访问:

// 这个操作就会自动生成一个 sessionId, 同时创建一个 httpSession 对象

// 把这个键值对放到内置的 hash 表中. 同时把 sessionId 写回到浏览器的

// Cookie 中

// 老用户访问:

// 根据请求中 Cookie 里的 sessionId, 在 hash 表中查, 找到对应的 session 对象

HttpSession session = req.getSession(true);

// 2.判断是否为新用户

Integer count = 1;

if (session.isNew()) {

//新用户

// 把 count 值写入到 session 对象中.

// httpSession 也可以当成是一个 hash 表.

session.setAttribute(“count”, count);

} else {

// 老用户

// 从 httpSession 中读取到 count 值

count = (Integer) session.getAttribute(“count”);

count++;

session.setAttribute(“count”, count);

}

resp.setContentType(“text/html; charset=utf-8”);

Writer writer = resp.getWriter();

writer.write(“”);

writer.write(“

” + session.getAttribute(“count”).toString() + “

”);

writer.write(“”);

}

}

Servlet文件上传理解

============================================================================

  • 前端表单
上传文件表单

选择上传的文件


  • 文件传输代码

import javax.servlet.ServletException;

import javax.servlet.annotation.MultipartConfig;

import javax.servlet.http.HttpServlet;

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
notation.MultipartConfig;

import javax.servlet.http.HttpServlet;

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-AQsegd74-1715713612204)]

[外链图片转存中…(img-WRYLPu4S-1715713612204)]

[外链图片转存中…(img-4h39E442-1715713612204)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值