当前位置: 首页 > wzjs >正文

建设个人网站建设银行大厂支行网站

建设个人网站,建设银行大厂支行网站,html做网站的设计,重庆旅游景点大全排名目录 🐲 1. Cookie 的工作流程 🐲 2. Servlet中操作 Cookie 和 Session 的api 🐲 3. 案例1: 模拟登录 🐲 4. 上传文件 🐲 5. 案例2: 上传文件 🐲 1. Cookie 的工作流程 Cookie 是浏览器在本地持久化保…

目录

🐲 1. Cookie 的工作流程

🐲 2. Servlet中操作 Cookie 和 Session 的api

🐲 3. 案例1: 模拟登录

🐲 4. 上传文件

🐲 5. 案例2: 上传文件


🐲 1. Cookie 的工作流程

Cookie 是浏览器在本地持久化保存数据的一种方案,

具体可以看我这一篇博客第6.6中: HTTP(http+抓包Fiddler+协议格式+请求+响应)

它的一种典型的使用方式: 存储登录信息

登录过程中,它的工作流程是这样的 

Cookie 是在浏览器中工作的

Session 是在服务器中工作的


在 Servlet 中也提供了相关的 API, 让我们来操作 Cookie 和 Session

🐲 2. Servlet中操作 Cookie 和 Session 的api

HttpServletRequest 类的相关方法

方法描述
HttpServlet  getSession()

在服务器中获取会话,

Cookie[]  getCookies()

返回一个数组,包含客户端发送该请求的所有的 Cookie 对象

会自动把 Cookie 中的格式解析成键值对

HttpServletResponse  类的相关方法

方法描述
void  addCookie(Cookie cookie)

返回响应, 想给浏览器返回哪些 cookie, 

都可以通过这个方法来添加

(在这里添加的键值对,都会体现在 HTTP 响应报文的 SetCookie 字段上)

HttpSession 类中的相关方法

一个 HttpSession 对象中包含多个键值对, 我们可以给 HttpSession 中保存任何我们需要的信息

方法描述
Object  getAttribute(String name)

返回在该 session 会话中具有指定名称的对象,

如果没有指定名称的对象,返回 null

void  setAttribute(String name, Object value)该使用指定的名称绑定一个对象到该 session 会话
boolean  isNew()判定当前是否是新创建出的会话

Cookie 类中的相关方法   

每个 Cookie 对象是一个键值对

方法描述
String  getName()

返回 cookie 的名称.名称在创建后不能改变,

(这个值是 Set-Cookie 字段设置给浏览器的)

String  getValue()获取与 cookie 关联的值
void  setValue(String newValue)设置与 cookie 关联的值

(1) HTTP 的 Cookie 字段中存储的实际上是多组键值对,每个键值对在 Servlet 中都对应了一个 Cookie 对象

(2) 通过 HttpServletRequest.getCookies() 获取到请求中的一系列 Cookie 键值对

(3) 通过 HttpServletResonse,addCookie() 可以向响应中添加新的 Cookie 键值对 


🐲 3. 案例1: 模拟登录

具体应该考虑这几个方面

(1) 登录页面,用户可以填写用户名+密码

(2) Servlet 来处理登录请求

(3) 使用另一个 Servlet 来生成主页内容(登录成功后,跳转到的页面)

 LoginServlet

package login;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;/*** Created with IntelliJ IDEA.* Description:* User: 28463* Date: 2022—11—24* Time: 8:37*/
// 使用这个类来处理登录请求
@WebServlet("/login")
public class LoginServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//1. 从请求中获取到页面提交的用户名和密码String username = req.getParameter("username");String password = req.getParameter("password");//2. 验证用户名和密码是否正确//正常这个操作是要查数据库的,此处为了简单,就直接写成硬编码了if("zhangsan".equals(username) && "123".equals(password)) {//登录成功// 1) 创建一个会话,用户刚登录成功,之前是没有会话的,重新分配个新的会话给用户// getSession所做的操作// 创建 sessionId 和 一个 HttpSession 对象// 把这个两个内容以键值对的形式插入到内存的 哈希表中// 把sessionId 通过 Set-Cookie 写到响应中HttpSession session = req.getSession(true);// 得到 HttpSession对象后,就可以随意的设置"键值对"了session.setAttribute("username","zhangsan");// 2) 让响应重定向到"主页"resp.sendRedirect("index");}else {// 登录失败resp.setStatus(403);resp.setContentType("text/html; charset=utf8");resp.getWriter().write("登录失败,用户名或密码错误!");}}
}

 IndexServlet

package login;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;/*** Created with IntelliJ IDEA.* Description:* User: 28463* Date: 2022—11—24* Time: 8:38*/
//登录成功后, 跳转到的主页
@WebServlet("/index")
public class IndexServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 首页中也先获取 session,此处的 session 正式刚才登录页的时候,登录成功的逻辑中创建出来的// 此处 参数 写为 false, 表示不新建,如果不存在,就返回nullHttpSession session = req.getSession(false);if(session == null) {resp.setStatus(403);resp.setContentType("text/html; charset=utf8");resp.getWriter().write("您尚未登录,不能访问主页!");return;}String username = (String)session.getAttribute("username");resp.setContentType("text/html; charset=utf8");resp.getWriter().write("欢迎来到主页! " + username);}
}

login.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>登录</title>
</head>
<body><!-- 提交的数据交给 LoginServlet 来处理 --><form action="login" method="post"><input type="text" name="username"><input type="text" name="password"><input type="submit" value="登录"></form>
</body>
</html>

🐲 4. 上传文件

在前端搭配form表单, form input type = "file", 允许通过浏览器选中一个文件,上传给服务器

Servlet 就支持处理这种上传文件的请求,把这个请求到的文件在后端获取到

HttpServletRequest 类方法

方法描述
part  getPart(String name)

获取请求中给定 name 的文件

input标签的 name 属性(就和 getParameter 类似的);

Part 表示一个文件,一次上传,可以包含多个文件

(可以有多个 input type = "file") 每个文件都是一个 Part 对象

Collection<Part> getParts()获取所有的文件

Part 类方法

方法描述
String getSubmittedFileName()获取提交的文件名
String  getContentType()获取提交的文件类型
long  getSize()获取文件的大小
void  write(String path)

把提交的文件数据写入磁盘文件

(保存到服务器的本地路径)

🐲 5. 案例2: 上传文件

 

uploadServlet

package upload;import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.IOException;/*** Created with IntelliJ IDEA.* Description:* User: 28463* Date: 2022—11—24* Time: 10:27*/
@WebServlet("/upload")
@MultipartConfig
public class uploadServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {Part part = req.getPart("myfile");System.out.println(part.getSubmittedFileName());System.out.println(part.getSize());System.out.println(part.getContentType());part.write("D:/idea/tmp/result.jpg");}
}

upload.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>上传文件</title>
</head>
<body>
<form action="upload" method="post" enctype="multipart/form-data"><input type="file" name="myfile"><input type="submit" name="提交">
</form>
</body>
</html>


文章转载自:

http://oSi1QhFA.rcsbz.cn
http://JF0WGJXb.rcsbz.cn
http://KIH7m1zp.rcsbz.cn
http://RfC7Rem2.rcsbz.cn
http://1IuQGE8T.rcsbz.cn
http://I2gGfSSc.rcsbz.cn
http://EsxbsgBC.rcsbz.cn
http://4RD3uQDp.rcsbz.cn
http://3FUiLE2k.rcsbz.cn
http://hDAyf8fL.rcsbz.cn
http://aDqHOg5E.rcsbz.cn
http://fOlFPMgk.rcsbz.cn
http://HThuOzyP.rcsbz.cn
http://sv24dW6L.rcsbz.cn
http://kyzRzY8a.rcsbz.cn
http://31z3ePrP.rcsbz.cn
http://vv5OrPjJ.rcsbz.cn
http://KfwDBMwa.rcsbz.cn
http://0xcSwFjd.rcsbz.cn
http://RgxVDnNh.rcsbz.cn
http://CAsxfCvU.rcsbz.cn
http://6rKt9QOM.rcsbz.cn
http://JXhwKtyP.rcsbz.cn
http://BrmeKa7v.rcsbz.cn
http://p0P7YwYs.rcsbz.cn
http://Mss0Lq7U.rcsbz.cn
http://q7DtrPTd.rcsbz.cn
http://LcHNXvVK.rcsbz.cn
http://UjSMFgSa.rcsbz.cn
http://KMGZKY25.rcsbz.cn
http://www.dtcms.com/wzjs/692698.html

相关文章:

  • seo推广软件公司关键词排名优化
  • 做网站需要编程嘛wordpress标签插件下载
  • 办公室工作绩效 网站建设厦门网站建设方案书
  • 上海php网站开发公司有做赛车网站的吗
  • 中国企业网官方网站下载做一个网站
  • 网站模板有哪些聚名网平台
  • 外贸建站及推广广告制作公司经营范围有哪些
  • iis两个网站做ssl公司辞退员工补偿标准2024劳动法
  • 找企业案例的网站百度上海推广优化公司
  • 白云网站制作上海市工程咨询行业协会
  • 酒店网站收入如何做帐务处理济南网站制作套餐
  • 海口专业的网站开发网店装修素材
  • 企业如何在网站上做宣传如何编写网站
  • 免费的黄冈网站有哪些下载软件银川兴庆建设局网站
  • html5移动网站开发流程模板搭建
  • 语言文字建设网站毕业设计代做网站jsp
  • 哪里有创建网站的wordpress 迁移升级
  • 崇文企业网站建设公司公司网站规划案例
  • 网站建设与维护一样吗网站建设与运营
  • 网站注册登录企业网易邮箱
  • 襄阳 网站建设网站空间在那里买
  • 详细论述制作网站的步骤优惠券网站怎么搭建
  • 免费建设网站软件下载怎么制作图片水印
  • 如何将html发布到网站辽宁营销型网站建设
  • 衡水wap网站建设费用精品课网站制作
  • ps个人网站建设wordpress dux 1.6
  • 全国住房与城乡建设部网站银川网站建设哪家优
  • 做排版的网站wordpress多久被收录
  • 如何将自己做的网页做成网站手机制作动画软件app免费
  • 上海网站seo招聘高端的家居行业网站开发