JavaWEB
文章平均质量分 77
JavaWEB学习笔记
洛上言
路漫漫我不畏
展开
-
【JavaWeb】监听器
/ 监听初始化 @Override // ServletContextEvent叫ServletContext事件对象,我们可以从这个对象上去拿到当前事件所发生的对象。} // 监听销毁 @Override public void contextDestroyed(ServletContextEvent sce) {} // 监听数据增加 @Override public void attributeAdded(ServletContextAttributeEvent scae) {原创 2024-08-02 16:43:22 · 858 阅读 · 0 评论 -
【JavaWeb】注解方式配置过滤器
【代码】【JavaWeb】注解方式配置过滤器。原创 2024-08-02 16:42:38 · 269 阅读 · 0 评论 -
【JavaWeb】过滤器
Filter,即过滤器,是JAVAEE技术规范之一,作用目标资源的请求进行过滤的一套技术规范,是Java Web项目中最为实用的技术之一接口定义了过滤器的开发规范,所有的过滤器都要实现该接口Filter的工作位置是项目中所有目标资源之前,容器在创建HttpServletRequest和HttpServletResponse对象后,会先调用Filter的doFilter方法Filter的doFilter方法可以控制请求是否继续,如果放行,则请求继续,如果拒绝,则请求到此为止,由过滤器本身做出响应。原创 2024-08-02 16:41:27 · 931 阅读 · 0 评论 -
【JavaWeb】三大域对象
域对象: 一些用于存储数据和传递数据的对象,传递数据不同的范围,我们称之为不同的域,不同的域对象代表不同的域,共享数据的范围也不同。域表示的就是不同的范围和区域,每一个范围和每一个区域都可以用一个对象来代表,所以我们管这个代表不同区域、不同数据存储的区域称之为域对象。ServletContext代表应用,所以ServletContext域也叫作应用域,是webapp中最大的域,可以在本应用内实现数据的共享和传递因此很多程序员喜欢将拿到的ServletContext对象取名为,即。原创 2024-08-02 16:40:38 · 805 阅读 · 0 评论 -
【JavaWeb】会话
cookie是一种客户端会话技术,cookie由服务端产生,它是服务器存放在浏览器的一小份数据,浏览器以后每次访问该服务器的时候都会将这小份数据携带到服务器去。服务端创建cookie,将cookie放入响应对象中,Tomcat容器将cookie转化为set-cookie响应头,响应给客户端客户端在收到cookie的响应头时,在下次请求该服务的资源时,会以cookie请求头的形式携带之前收到的Cookiecookie是一种键值对格式的数据,从tomcat8.5开始可以保存中文,但是不推荐。原创 2024-08-02 16:39:54 · 1016 阅读 · 0 评论 -
【JavaWeb】MD5Util加密工具类
导入MD5Util工具类。原创 2024-08-02 16:33:59 · 284 阅读 · 0 评论 -
【JavaWeb】controller包处理
那么controller层也应该有接口和实现类,我们这里实现的接口就是HttpServlet,也就是间接实现了Servlet接口,但是Servlet是技术接口,而我们再说Controller层接口的时候,一般说的都是业务接口。业务接口和技术接口是有区别的,我们所说的业务接口是跟前后端对接的时候所说的一个接口,而Servlet技术本身的技术规范的接口含义还是不一样的。原创 2024-08-02 16:33:27 · 212 阅读 · 0 评论 -
【JavaWeb】Service基础代码
【代码】【JavaWeb】Service基础代码。原创 2024-08-02 16:32:40 · 124 阅读 · 0 评论 -
【JavaWeb】DAO层讲述
如果不定义接口,那么张三、例子在定义这个方法名的时候可能就会冲突,并且设计的形参也不一样,那也就是说不同的人在实现DAO层中增删改查方法的时候,访问修饰符、返回的类型、方法名、参数列表有可能都是不一致的,不一致造成的麻烦就是,对于DAO层方法的调用者来说就比较麻烦了。但由于我们数据库里面一个项目中表格太多太多了,我们不能把所有的CURD操作全放到一个DAO里面,因此DAO也是需要根据表格来建立的,一般来说:表名 + Dao。在Java中文档注释一般是有一些格式要求的,建议大家读一下阿里的开发手册。原创 2024-08-01 22:01:47 · 360 阅读 · 0 评论 -
【JavaWeb】项目搭建
这个勾选上后,IDEA就可以根据Lombok注解提供相应的getter和setter方法的提示了,并且也会根据注解编译的时候在字节码文件中自动生成这些。,那么在web01下任何子模块都是自动勾选的,但如果你换了一个namespace,那么这个可能就失效了,因此在使用Lombok之前一定要先检查一下这个。PS:这个勾选未必是永久有效的,有些IDEA版本这个按钮的勾选设置只针对当前namespace生效,例如勾选web01中的。,因为一会我们在Tomcat中部署的时候,Tomcat也会将名字中的。原创 2024-08-01 22:01:16 · 546 阅读 · 0 评论 -
【JavaWeb】MVC架构模式
架构模式:用大白话来讲就是,你在开发项目时,代码不能随便乱放,你应该遵循一定的规则、规范要求、或者是一套设计程序软件的思想来设计你的项目代码应该划分出哪些类型的代码,这些代码应该怎么存放。当我们的项目中,如果想增加一些新的功能,或者是甲方提了一些新的需求,我们要对代码功能进行拓展的时候,我们应该尽量在项目中去增加代码,而不是修改原有的代码。用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。原创 2024-08-01 22:00:28 · 377 阅读 · 0 评论 -
【JavaWeb】路径问题
a/b/c/test/html),形成(http://localhost:8080/web03_war_exploded/x/y/…/a/b/c/test/html)每个。寻找方式就是在基准路径(http://localhost:8080)后面拼接(/web03_war_exploded/a/b/c/test.html),得到( http://localhost:8080/web03_war_exploded/a/b/c/test.html)正是目标资源访问的正确路径。原创 2024-08-01 21:59:45 · 341 阅读 · 0 评论 -
【JavaWeb】响应乱码问题
但是我们不推荐这样做,因为我们做好的项目,前端是用什么客户端软件来访问我们的项目是不确定的,有可能用的并不是我们国内的语言,即别的国家的浏览器可能没有GBK编码表,那么就又出现乱码问题了,因此我们在后端这块想办法去适应前端,这种解决方式其实并不是很好,因为前端是变化的。这种方式是推荐的,这样无论你使用什么浏览器,浏览器的默认字符集是什么都无所谓了,客户端一定要遵循我指定的字符集对响应体进行解码就行了。后端通过设置响应体的字符集和浏览器解析响应体的默认字符集一致(不推荐)原创 2024-08-01 21:58:39 · 395 阅读 · 0 评论 -
【JavaWeb】POST方式请求乱码
是没用的,因为这个设置的是Tomcat的URI解析字符集,此时参数并不是再以URI的方式提交了,而是放到请求体里了。后端在获取参数前,设置解析请求体使用的字符集和请求发送时使用的字符集一致 (不推荐)后端默认使用UTF-8解析请求体,出现字符集不一致,导致乱码。PS:这个需要在getParameter之前先设置。请求时,使用UTF-8字符集提交请求体 (推荐)Tomcat10默认以UTF-8为请求体的解码。请求体中,将GBK数据进行 URL编码。POST请求请求体受到了。原创 2024-08-01 21:57:53 · 690 阅读 · 0 评论 -
【JavaWeb】GET请求乱码问题
GET方式提交时,会对数据进行URL编码处理,是将GBK 转码为 “百分号码”,我们把这串数字看成1010即可,只不过浏览器在解析这个1010的时候,为了区分字节,夹杂了一些%处理,每一个%代表一个字节的开始,%后面的其实是用的十六方式表示的一个字节。改为GBK后,不仅浏览器解析的时候字符集变为GBK了,同时这个html文件也会默认改为GBK编码,并且还影响了这个Form表单提交的时候用什么字符集对这些参数进行编码。默认使用UTF-8对URI进行解析,造成前后端使用的字符集不一致,出现乱码。原创 2024-08-01 21:56:46 · 519 阅读 · 0 评论 -
【JavaWeb】web乱码和路径问题总结
在tomcat10.1.7这个版本中,修改 tomcat/conf/logging.properties中,所有的UTF-8为GBK即可。原因:虚拟机是你装的JDK里面携带的,而你装的JDK有可能不受IDEA的控制,可能会使用另一个字符集对。Tomcat在IDEA中启动的时候一共有三个窗口,并且这三个窗口使用的是GBK字符集对日志进行解码。dos窗口是在Windows中的,而简体中文版Windows,默认使用GBK字符集。,接下来整个项目的编译和构建工作都是由IDEA帮助我们完成的,用的肯定也是。原创 2024-08-01 21:54:29 · 259 阅读 · 0 评论 -
【JavaWeb】请求转发和响应重定向
请求转发和响应重定向是web应用中间接访问项目资源(html、js、css、图片、servlet)的两种手段,也是Servlet控制页面跳转的两种手段请求转发通过HttpServletRequest实现,响应重定向通过HttpServletResponse实现请求转发生活举例:张三找李四借钱,李四没有,李四找王五,让王五借给张三。此时张三只知道找了李四,但是张三并不知道李四找了王五,张三只知道自己找了李四后自己银行卡里多了钱,但是这个钱其实是王五给它的。原创 2024-08-01 21:53:45 · 470 阅读 · 0 评论 -
【JavaWeb】HttpServletResponse
【代码】【JavaWeb】HttpServletResponse。原创 2024-08-01 21:51:38 · 368 阅读 · 0 评论 -
【JavaWeb】HttpServletRequest
细品,URL打印出来的是完整的URL,包含自己的IP和端口号,但如果将这个项目部署到一个测试环境中,或者其他的服务器上,那这个IP和端口号有可能是会发生变化的,但是后面的资源路径是不变的,否则前端请求的资源可能会出现问题。由于是获得请求参数,我们可以准备一个form表单,然后由form表单向servlet里面发请求。PS:参数是严格区分大小写的,前端写的是什么参数名,后端就需要根据相同参数名进行获取。,而 URL 打印出来的是。原创 2024-08-01 21:51:00 · 1163 阅读 · 0 评论 -
【JavaWeb】ServletContext的使用
ServletContext和ServletConfig类似,也可以为Servlet提供一些初始配置参数,是为每一个Servlet提供独立的初始配置参数;而是为所有的Servlet提供公共的配置参数。在内存上,是多例的,即会产生很多config对象;而是单例的,整个app中,只会出现一个。原创 2024-08-01 21:50:17 · 346 阅读 · 0 评论 -
【JavaWeb】ServletConfig和ServletContext
Override// 根据参数名获取单个参数// 获取所有参数名,早期的Iterator用的就是Enumeration// hasMoreElements():判断有没有下一个参数,如果有返回True,如果没有返回False// nextElement():1、取出元素;2、向下移动游标@Override// 根据参数名获取单个参数// 获取所有参数名// 迭代并获取参数名。原创 2024-08-01 21:49:19 · 309 阅读 · 0 评论 -
【JavaWeb】Servlet继承结构
Servlet是我们Servlet的顶级接口,我们自己定义Servlet时重写Servlet接口也是可以的,只不过我们要是实现这个Servlet接口的话,里面所有的抽象方法我们都需要重写,这样就会给我们造成除处理业务以外的其他代码的压力,所以在整个Tomcat的环境里,它给我们提供了一个HttpServlet和GenericServlet帮助我们处理一些基础的接口要求。// 初始化方法,构造完毕后,由tomcat自动调用完成初始化功能的方法// 获取ServletConfig对象的方法。原创 2024-08-01 21:48:30 · 1117 阅读 · 0 评论 -
【JavaWeb】Servlet生命周期
通过生命周期测试我们发现Servlet对象在容器中是单例的容器是可以处理并发的用户请求的,每个请求在容器中都会开启一个线程多个线程可能会使用相同的Servlet对象,所以在Servlet中,我们不要轻易定义一些容易经常发生修改的成员变量load-on-startup中定义的正整数表示实例化顺序,如果数字重复了,容器会自行解决实例化顺序问题,但是应该避免重复。原创 2024-08-01 21:47:09 · 734 阅读 · 0 评论 -
【JavaWeb】Servlet注解方式配置
官方JAVAEEAPI文档下载地址:https://www.oracle.com/java/technologies/javaee/javaeetechnologies.html#javaee8。的方式来配置,就不要再使用XML的方式来配置了,否则启动会报错。或者两个Servlet用相同路径名了、即使用了。,看到这个错误应该第一时间想到是路径的问题。又使用了XML的方式配置,都会报这个错。@WebServlet注解的源码阅读。2、如果路径写错,例如少了一个。再往下看具体的错误信息。原创 2024-07-31 20:31:07 · 643 阅读 · 0 评论 -
【JavaWeb】Content-Type问题
配置文件有关,这个配置文件中记录了几乎所有的文件类型对应的MIME类型(MIME可以理解为Content-Type的值),具体赋的值,是需要到。类型,但Servlet不再是一个静态资源了,它就没有办法通过拓展名去寻找。,因为你要往服务端提交文件了,那你得告诉服务端你提交的文件是什么类型的文件。的类型了,如果没有传给客户端,那么默认当做html数据来处理了。这个头太重要了,因此为它设置了一个单独的API。静态资源是有拓展名的,通过拓展名找到对应的。如下图,如果我的文件拓展名是。其实是应该设置的,并且将。原创 2024-07-31 20:30:28 · 480 阅读 · 0 评论 -
【JavaWeb】Servlet开发流程
如果需要添加Tomcat依赖的jar文件,可以把它放到这个目录中,当然也可以把应用依赖的jar文件放到这个目录中,这个目录中的jar所有项目都可以共享,但这样你的应用放到其他Tomcat下时就不能再共享这个目录下的jar包了,所以建议只把Tomcat需要的jar包放到这个目录下;但是我们并不会将部署的项目所依赖的jar包放到这个lib里,因为这个lib中是公用的,但是并不是所有的项目都需要这个lib中的所有的jar包。但如果只在当前项目导入Tomcat的依赖,旁边的Provided表示依赖的作用域。原创 2024-07-31 20:29:50 · 866 阅读 · 0 评论 -
【JavaWeb】Servlet简介
我们之前接收用户请求都是HTML或者png这种静态资源,这些资源都属于前端技术;但我们现在这个请求,我想要通过Java代码运行来生成数据,说白了,什么样的技术标准能接收用户的请求呢?这样的一套技术标准就叫做Servlet。Servlet (server applet) 是运行在服务端(tomcat)的Java小程序,是sun公司提供一套定义动态资源规范;从代码层面上来讲Servlet就是一个接口。原创 2024-07-31 20:29:03 · 266 阅读 · 0 评论 -
【JavaWeb】动态资源和静态资源
浏览器向服务端发送请求时,它不管你后端到底是如何写的,它只负责发送请求报文。Tomcat收到这个请求后,它会根据你请求的请求路径,假设你找的是一个HTML,Tomcat也会在后端给我们生成报文。对于客户端来说,我收到的响应,客户端只知道响应报文,这个响应报文是由Tomcat生成的,Tomcat就会将html放到响应体中。如果你请求的是一张图片,那么Tomcat就会将这张图片放到响应体中。其中在响应头中会通过。原创 2024-07-31 20:28:12 · 327 阅读 · 0 评论 -
【JavaWeb】IDEA使用Tomcat运行JavaWEB项目的原理
这个大家了解一下就行了,后续我们使用SpringBoot,SpringBoot内置了Tomcat,我们就不需要去关心这些事了。也就是说在这个Tomcat副本中,它是通过配置文件的形式来部署项目的,而不是把这个项目直接放到Tomcat副本里。在IDEA中点击它会自动弹出文件管理器并对应到相应位置,并且可以发现这个副本并不是一个正常完整的Tomcat目录。我们启动一下这个项目,在IDEA的日志中我们就能看到Tomcat的副本在哪,并且给这个副本起了一个名字。原创 2024-07-31 20:27:19 · 735 阅读 · 0 评论 -
【JavaWeb】IDEA中开发并部署运行WEB项目
当你把Web模块加入进项目后,说明你是个Web项目,既然是个web项目,将来就需要部署到tomcat上,但是部署到tomcat上时需要一个部署的包,但你现在还没有这个部署的包,它就问你要不要生成这个部署的包('Web’任何工件中都不包含 Facet 资源),点击生成即可。applicationContext中是默认的项目上下文路径(context root),也就是url中需要输入的路径,默认就是构建名,这里可以自己定义,可以和工程名称不一样,也可以不写,但是要保留/,我们这里暂时就用默认的。原创 2024-07-31 20:26:55 · 3958 阅读 · 3 评论 -
【JavaWeb】WEB项目部署的第二种方式
未来可以写成别的名字,但是如果想把它指定为别的名字的话,所需要调整的配置文件就更多了,太麻烦了,因此这里暂时先忍耐下。方式3 可以将项目放在非webapps的其他目录下,在tomcat中通过配置文件指向app的实际磁盘路径。我们现在的重点是在Tomcat中部署的第三种方式,而不是在这里纠结上下文路径的设置。我们可以查看一下日志,它的日志里面有一部分是专门打印项目部署的日志的。由于部署的项目的文件夹名叫app,因此这里最好也叫。如下图,根据app.xml中的信息去部署项目。底下的就是部署其他的项目了。原创 2024-07-31 20:24:18 · 254 阅读 · 0 评论 -
【JavaWeb】WEB项目的标准结构
ROOT是一个特殊的项目,访问它的时候是不需要上下文的,在地址栏中访问:http://127.0.0.1:8080。所以没有给出项目目录时,对应的就是ROOT项目。PS:如果没有设置上下文访问路径,那么访问路径和项目目录名字是一致的,如果设置了,那么就是你设置的那个路径。我们在webapps下新建app目录,这个目录就是我们要发布的我们自己的项目,即部署目录。如果想要访问ROOT,这个项目部署的目录名和你访问的上下文的路径是不一样的。也是特殊的,访问的时候是需要输入Tomcat账号密码才能进行访问的。原创 2024-07-31 20:23:32 · 914 阅读 · 0 评论 -
【JavaWeb】Tomcat配置环境变量
但值得注意的是,环境变量不是说必须要配置,我们不配置也是可以的。因为接下来我们会使用IDEA关联Tomcat,在IDEA中进行对Tomcat的启动和关闭的控制。将来当我们把Tomcat装到真正的服务器上,真正的服务器是Linux的环境,Linux环境中想要运行startup.bat,就不得不配置这个环境变量了。此时在dos窗口下就可以直接启动Tomcat了,这样我们就不用每次都找到Tomcat的bin目录来启动了。另外Tomcat一旦环境变量配置完毕后,就算我想启动9版本的Tomcat中的。原创 2024-07-31 20:22:42 · 374 阅读 · 0 评论 -
【JavaWeb】Tomcat目录
C:\Program4java\apache-tomcat-10.1.7 这个目录下直接包含Tomcat的bin目录,conf目录等,我们称之为Tomcat的安装目录或根目录。bin:该目录下存放的是二进制可执行文件,如果是安装版,那么这个目录下会有两个exe文件:tomcat10.exe、tomcat10w.exe,前者是在控制台下启动Tomcat,后者是弹出GUI窗口启动Tomcat;原创 2024-07-31 20:22:04 · 587 阅读 · 0 评论 -
【JavaWeb】Tomcat服务器
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。原创 2024-07-31 20:21:24 · 322 阅读 · 0 评论 -
【JavaWeb】WEB服务器
服务器指的也是计算机,只不过服务器要比我们日常使用的计算机大很多。服务器,也称伺服器。是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。在网络环境下,根据服务器提供的服务类型不同,可分为:文件服务器,数据库服务器,应用程序服务器,WEB服务器等。原创 2024-07-31 20:20:10 · 835 阅读 · 0 评论 -
【JavaWeb】HTTP-协议解析
现在大家知道了服务器是可以使用java完成编写,是可以接受页面发送的请求和响应数据给前端浏览器的,而在开发中真正用到的Web服务器,我们不会自己写的,都是使用目前比较流行的web服务器。将资料中准备好的Demo工程,导入到我们的IDEA中,有一个Server.java类,这里面就是自定义的一个服务器代码,主要使用到的是。就会访问到ServerSocket程序。原创 2024-07-31 20:18:02 · 247 阅读 · 0 评论 -
【JavaWeb】HTTP —— 响应协议
查看响应报文:响应行响应头响应体响应行(以上图中红色部分):响应数据的第一行。响应行由协议及版本响应状态码状态码描述组成协议/版本:HTTP/1.1响应状态码:200状态码描述:OK,这个是给程序员看的,在新版Tomcat10中已经省略了响应头(以上图中黄色部分):响应数据的第二行开始。格式为key:value形式http是个无状态的协议,所以可以在请求头和响应头中设置一些信息和想要执行的动作,这样,对方在收到信息后,就可以知道你是谁,你想干什么。原创 2024-07-31 20:17:14 · 1002 阅读 · 0 评论 -
【JavaWeb】HTTP —— 请求协议
举例说明:服务端可以根据请求头中的内容来获取客户端的相关信息,有了这些信息服务端就可以处理不同的业务需求。当我们提交了表单数据后,在谷歌浏览器里它是放在payload里面,在请求体里我们是看不见的。刚才提到HTTP协议是规定了请求和响应数据的格式,那具体的格式是什么呢?GET请求的请求参数在请求行中,故不需要设置请求体,但是有一个。请求体和请求头是有一个空行存在的,通过一个空行将这两部分分离开来。HTTP有两个版本:1.0和1.1,我们使用一般都是1.1版本。HTTP协议又分为:请求协议和响应协议。原创 2024-07-30 20:50:10 · 419 阅读 · 0 评论 -
【JavaWeb】HTTP协议
HTTP 超文本传输协议(HTTP-Hyper Text transfer protocol),是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几十年的使用与发展,得到不断地完善和扩展。它是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。简单来说,HTTP规定了浏览器与服务器之间数据传输的规则。http是互联网上应用最为广泛的一种网络协议。原创 2024-07-30 20:49:30 · 389 阅读 · 0 评论