首页
留言
友链
壁纸
更多
直播
追番
统计
关于
Search
1
欢迎使用 Typecho
181 阅读
2
为Joe主题增加表情包
152 阅读
3
Java的一些基础知识总结
133 阅读
4
『转载』Linux文件自动备份百度网盘
132 阅读
5
Js 音频律动
122 阅读
默认分类
Java
Java基础知识
Java面向对象
JavaWeb服务
前端三剑客
HTML
JS
Typecho
前端小结
Vue
登录
/
注册
Search
标签搜索
Java
Servlet
HTML
面向对象
Web
Vue
JS
Typecho
Typora
Markdown
乐抖系统
Typecho主题
技术教程
类与对象
基础知识
Tomcat
Maven
Linux
MySQL
Mybatis
白衣少年
累计撰写
46
篇文章
累计收到
42
条评论
首页
栏目
默认分类
Java
Java基础知识
Java面向对象
JavaWeb服务
前端三剑客
HTML
JS
Typecho
前端小结
Vue
页面
留言
友链
壁纸
直播
追番
统计
关于
用户登录
登录
注册
搜索到
4
篇
标签为
Web
的文章
2022-11-08
Java-Session与Cookie及详解
Session是什么"会话控制",Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个会话中一直存在下去。当用户请求来自应用程序的Web页面时,如果该用户还没有会话,则Web服务器将自动创建一个Session对象。当会话过期或者被放弃后,服务器将终止该会话。 注意:会话状态只在支持Cookie的浏览器中保存Cookie是什么Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息。例如,如果在用户请求站点中的页面时应用程序发送给该用户的不仅仅是一个页面,还有一个包含日期和时间的 Cookie,用户的浏览器在获得页面的同时还获得了该 Cookie,并将它存储在用户硬盘上的某个文件夹中。Session与Cookie的区别Session :是针对每个用户的,只有客户端才能访问,程序为该客户添加一个 session。session中主要保存用户的登录信息、操作信息等等。此 session将在用户访问结束后自动消失(如果也是超时)。Cookie :是针对每个网站的信息,每个网站只能对应一个,其他网站无法访问,这个文件保存在客户端,每次您拨打相应网站,浏览器都会查找该网站的 cookies,如果有,则会将该文件发送出去。cookies文件的内容大致上包括了诸如用户名、密码、设置等信息。存储数据的大小不同,一个 cookie存储的数据不超过3 K; session存储在服务器上可以任意存储数据,但是,当 session存储数据太多时,服务器可选择进行清理。有效期不同 :通过设置 Cookie的属性,开发 Cookie能够长期有效。而Session依赖于一个名为 JSESSIONID的 cookies,而 CookiJSESSIONID的过期时间默认为-1,只需关闭该窗口,因此 Session将无法达到长期有效的效果。Session是何时创建的当浏览器第一次访问服务器一个页面之后由服务器创建的,并使用特殊算法算出一个Session的ID(JSESSIONID),以Cookie的方式保存在客户端中,而这个JSESSIONID在随后的请求中会被用来获得已经创建的Session;在Session被创建之后,就可以调用Session的相关方法往Session中增加内容了,而这些内容只会保存在服务器中,响应给客户端的只有JSESSIONID;当客户端再次发送请求的时候,会将这个JSESSIONID带上,服务器接收到请求之后就会依据JSESSIONID找到响应的Session。 浏览器第一次访问服务器一个页面后创建JSESSIONID其实是做了这些事情Cookie cookie=new Cookie("JSESSIONID",特殊算法算出来的Session ID); response.addCookie(cookie);Session方法的使用HttpSession session=request.getSession(); boolean isNew(); //判断该Session对象是不是新创建的 String getId(); //获取Session对象的JSESSIONID void setAttribute(String var1, Object var2); //保存数据到Session对象中 Object getAttribute(String var1); //从Session对象中取数据 void removeAttribute(String var1); //移除Session对象中的键值对 void invalidate(); //注销Session,注销之后服务器会生成一个新的JSESSIONID void setMaxInactiveInterval(int var1); //设置Session失效时间的秒数 int getMaxInactiveInterval(); //获取Session失效时间的秒数HttpSession session = req.getSession(true); 如果该客户端在此服务器中存在Session,就返回这个Session;如果不存在,就创建一个新的Session返回HttpSession session = req.getSession(false); 如果该客户端在此服务器中存在Session,就返回这个Session;如果不存在,就返回一个nullCookie的使用Cookie创建document.cookie = 'Authentication=' + response.data; document.cookie = 'Platform=manageBackend';表示创建了名为 Authentication ,内容为 response.data 的Cookie,名为 Platform ,内容为 manageBackend的Cookie 。Cookie的删除// 给cookie设置的过期时间 const date = new Date(); date.setTime(date.getTime() - 10000); // 删除cookie信息 document.cookie = `Platform=; expires=${date['toGMTString']()};path=${cookiePath}; domain=${document.domain}`;Cookie 不仅仅有 key 和 value 属性,还有域( domain )、过期时间( expires )、路径( path )等属性。其中,不同户域、不同的路径下可以存相同名字的 cookie 。所以删除 cookie 需要写上他的所有属性,这样才能成功删除 cookie 。
2022年11月08日
40 阅读
0 评论
3 点赞
2022-11-02
Java-基础项目HelloServlet
SevletServlet简介Servlet就是sun公司开发 动态web 的一门技术Sun公司在这些API提供一个借口叫做: servlert程序编写一个类,实现servlet借口把开发好的类部署到web服务器把实现了servlet接口的程序叫做 servletHelloServlet构建一个普通的 maven项目 ,删掉src目录,以后这个工程就是主工程,通过在里面建立moudel进行学习在主工程中添加依赖<dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.3</version> <scope>provided</scope> </dependency> <!-- 旧版,注释掉 <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope> </dependency> --> </dependencies>关于 maven父子工程 的理解父项目中会有<modules> <module>servlet-01</module> </modules>子项目中会有(没有需要手动添加)<parent> <artifactId>javaweb-02-servlet</artifactId> <groupId>org.example</groupId> <version>1.0-SNAPSHOT</version> </parent>maven环境优化修改web.xml<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0" metadata-complete="true" > </web-app>将maven环境搭建完整编写一个servlet程序 注意:servlet借口有sun公司编写了两个默认的实现类 HttpServlet编写一个普通类通过继承HttpServlet实现Servlet接口注:如果出现导入失败的情况,可能是镜像还没加入该文件,需要自己去仓库里面下载,放入到相应的文件夹public class HelloServlet extends HttpServlet { //由于get或者post只是请求实现的不同方式,可以相互调用 @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { PrintWriter writer=resp.getWriter(); writer.print("Hello,Servlet"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req,resp); } }编写Servlet的 映射为什么需要映射?我们写的是Java程序,但是需要通过浏览器进行访问,而浏览器需要连接web服务器,所以我们需要在web服务中注册我们写的servlet,还需要给他一个浏览器能够访问的路径。 <!--注册servlet--> <servlet> <servlet-name>hello</servlet-name> <servlet-class>com.yu.servlet.HelloServlet</servlet-class> </servlet> <!--servlet的请求路径--> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping>配置 tomcat 注意核对一下几项: Application server JRE HTTP port JMX port启动错误原因总结:pom文件没有配置好,检查子项目的配置文件,把重复的属性值删除(文件仅供参考)<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>javaweb-02</artifactId> <groupId>com.yu</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>servlet-01</artifactId> <packaging>war</packaging> <name>servlet-01 Maven Webapp</name> <!-- FIXME change it to the project's website --> <url>http://www.example.com</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> </project>检查导入依赖,如果在external libraries 没有相应依赖会导致启动失败 javax.servlet.jsp.api javax.sevlet.api maven:junit maven:hamcresrt-core检查tomcat配置 环境变量 deployment server配置Tomcat1、如果没有 artifacts ,可以刷新一下项目的maven库;或者到setting中: settings—>bulid…—>Bulid Tools —> Maven—>Improting—>选中Impor Maven projects automatically—>Apply —> OK 2、看看效果
2022年11月02日
46 阅读
0 评论
3 点赞
2022-11-01
JavaWeb服务器-Tomcat
Web服务器2.1 技术讲解ASP:微软:国内最早流行的就是ASP;在HTML中嵌入了VB的脚本,ASP + COM;在ASP开发中,基本一个页面都有几千行的业务代码,页面极其换乱维护成本高!C#llS在ASP开发中,基本一个页面<h1> <h1><h1> <h1> <h1> <h1> <h1> <% System.out.println(" /he11o") %> <hl> <h1> <h1>h1> <h1>php:PHP开发速度很快,功能很强大,跨平台,代码很简单(70%,WP)无法承载大访问量的情况(局限性)JSP/Servlet:B/S:浏览和服务器C/S:客户端和服务器sun公司主推的B/S架构基于Java语言的(所有的大公司,或者一些开源的组件,都是用ava写的)。可以承载三高问题带来的影响;语法像ASP,ASP-->ISR,加强市场强度;2.2 web服务器服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息;llS微软的:ASP...,Windows中自带的Tomcat面向百度编程Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web 应用服务器。Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,对于一个Java初学web的人来说,它是最佳的选择Tomcat 实际上运行JSP 页面和Servlet。···工作3-5年之后,可以尝试手写Tomcat服务器;下载tomcat:安装 or 解压了解配置文件及目录结构这个东西的作用Tomcat详解3.1安装tomcattomcat官网:https://tomcat.apache.org/3.2Tomcat启动文件夹作用:启动关闭Tomcat测试访问:http://localhost:8080/可能遇到的问题:Java环境变量没有配置闪退问题:需要配置兼容性乱码问题:配置文件中设置3.3配置可以配置启动的端口号tomcat的默认端口号为:8080mysql: 3306http: 80https: 443<connector port="8081" protoco1="HTTP/1.1"" connectionTimeout="20000" redirectPort="8443”/>可以配置主机的名称默认的主机名为: localhost->127.0.0.1默认网站应用存放的位置为: webapps<Host name=""ww.Xiang.com" appBase="webapps" unpackwARs="true" autoDeploy="true">高难度面试题:请你谈谈网站是如何进行访问的!输入一个域名;回车检查本机的C:\Windows\System32\ldriversletclhosts配置文件下有没有这个域名映射;有:直接返回对应的ip地址,这个地址中,有我们需要访问的web程序,可以直接访问127.0.0.1 www.Xiang.com没有:去DNS服务器找,找到的话就返回,找不到就返回找不到;可以配置一下环境变量(可选性)3.4 发布一个web网站不会就先模仿将自己写的网站,放到服务器(Tomcat)中指定的web应用的文件夹(webapps)下,就可以访问了网站应该有的结构--webapps : Tomcat服务器的web目录 -ROOT -Xiangstudy :网站的目录名 - wEB-INF -classes : java程序 -lib: web应用所依赖的jar包 -web.xm1 :网站配置文件 - index.htm1默认的首页 - static -css -style.css-js -img -.....
2022年11月01日
82 阅读
0 评论
4 点赞
2022-11-01
JavaWeb概念
1. 基本概念1.1前言 web开发:web,网页的意思,例如:www.baidu.com静态webhtml,css提供给所有人看到的数据始终不会发生变化!动态web淘宝以及基本所有的网站提供给所有人看到的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同!技术栈:Servlet/jsp、asp、php在Java中,动态web资源开发的技术统称为JavaWeb1.2 web有应用程序web应用程序:可以提供浏览器访问的程序;a.html、b.htm.......多个web资源,这些web资源可以被外界访问,对外界提供服务;你们能访问到的任何一个页面或者资源,都存在于这个世界的某一个角落的计算机上。URL这个统一的web资源会被放在同一个文件夹下,web应用程序-->Tomcat:服务器。一个web应用由多部分组成(静态web,动态web)html,css,isjisp,servletJava程序jar包配置文件(Properties)web应用程序编写完毕后,若想提供给外界访问:需要一个服务器来统一管理;1.3 静态web.htm, .html,这些都是网页的后缀,如果服务器上一直存在这些东西,我们就可以直接进行读取。通络;静态web存在的缺点Web页面无法动态更新,所有用户看到都是同一个页面轮播图,点击特效:伪动态JavaScript[实际开发中,它用的最多]VBScript它无法和数据库交互(数据无法持久化,用户无法交互)1.4 动态web页面会动态展示:“Web的页面展示的效果因人而异";缺点:加入服务器的动态web资源出现了错误,我们需要重新编写我们的后台程序,重新发布停机维护优点:Web页面可以动态更新,所有用户看到都不是同一个页面。它可以与数据库交互(数据持久化:注册,商品信息,用户信息)
2022年11月01日
54 阅读
1 评论
7 点赞