![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaEE
文章平均质量分 84
JavaEE
_周游
重生之我要做卷王
展开
-
【SpringMVC】_设置响应状态码与Header
按照状态码的含义而言,401状态码应属于请求错误,但后端设计的响应页面仍然在前端成功显示,这应是状态码为200的结果。设置响应的Header在开发中并不常见,大多数数据都可以通过其他方式如body部分进行传递。另一方面,完全可以修改接口类型来实现这种目的,比如使用对象或Map,无需生硬地使用这种方式。通过这种方式实现Content-Type的类型很少使用,注意状态码与页面的显示无关,此处是指HTTP状态码。一方面,当返回的值与设置的属性值不匹配时会设置失败;HTTP响应首行显示:状态码确实为401。原创 2024-05-30 15:42:33 · 770 阅读 · 0 评论 -
【SpringMVC】_SpringMVC项目返回HTML与JSON
本专栏已介绍:返回静态页面:【Spring MVC】_SpringMVC项目返回静态页面_mvc 返回当前页面-CSDN博客返回数据:【Spring MVC】_SpringMVC项目返回数据-CSDN博客本篇介绍返回HTML与返回JSON;原创 2024-05-22 20:30:11 · 926 阅读 · 0 评论 -
【Spring MVC】_SpringMVC项目返回数据
前文已经介绍过使用@Controller注解向前端返回一个HTML页面,接下来将介绍向前端返回数据。关于@Controller和@RestController的区别与联系,本专栏已有介绍,如需要请查看下文:【Spring MVC】_SpringMVC项目返回静态页面_mvc 返回当前页面-CSDN博客简单概括:返回视图使用@Controller,返回数据使用@RestController 或 @Controller与@ResponseBody;原创 2024-05-22 19:58:07 · 1091 阅读 · 0 评论 -
【JavaEE】_Spring MVC项目获取Header
如现将后端的参数名改为userAgent而非User-Agent,获取HTTP请求中的header;可以使用Spring 提供的。原创 2024-04-08 21:11:30 · 488 阅读 · 0 评论 -
【JavaEE】_Spring MVC项目获取Session
在服务器中对不同的客户端都会有session,getSession方法就是根据SessionId获取到Session对象;运行启动服务器后,同上例,先运行setSession后,再访问getSession3,流程相同,不再赘述;,根据响应中的set-session报头实现客户端cookie的设置;在本例中,setSession方法就是用于实现session的存取;setSession方法用于设置Session对象的内容;getSession方法用于获取Session对象的内容;原创 2024-04-07 20:08:10 · 930 阅读 · 0 评论 -
【JavaEE】_Spring MVC项目获取Cookie
(2)Cookie和Session之间主要是通过SessionId关联起来的,SessionId是Cookie和Session之间的桥梁;2. 但在实际开发中,有时需要明确请求与请求之间的联系,比如登录过后,第二次登录时服务器就知道该客户端是否已经登录过了;无论请求的时机如何,只要请求的参数相同,其处理的逻辑是一样的(不是数据一样),得到的结果也是一样的。无状态的含义是:默认情况下HTTP协议的客户端和服务器之间的这次通信和下次通信之间没有直接的联系。重启服务器后,在上例中设置的cookie仍然存在;原创 2024-04-07 20:01:19 · 1422 阅读 · 0 评论 -
【JavaEE】_Spring MVC项目上传文件
(一般在请求body中,使用form表单传送二进制、图片、文件类型的数据)大型开发中,或会单独使用一个文件服务器保存客户端上传的文件。当服务器接收到客户端上传的文件后,可以将该文件保存下来。原创 2024-04-02 21:14:43 · 667 阅读 · 0 评论 -
【JavaEE】_Spring MVC项目获取URL中的参数
(2)请求的URL部分参数需要与.java文件中@RequestMapping注解中的格式保持一致;,比如类型不匹配,参数顺序错误与少传与多传参数都会引起错误;(1).java文件中,在函数参数部分,原创 2024-03-25 21:20:16 · 480 阅读 · 1 评论 -
【JavaEE】_Spring MVC项目之使用JSON传参
1. JSON即JavaScript Object Notation,JavaScript对象表示法;在Servlet部分前端POST请求使用json向后端传参时就曾提到过json,原文链接如下:【JavaEE】_前端POST请求使用json向后端传参-CSDN博客2. json就是一种数据格式,使用文本表示一个对象或数组的信息;3.json本质是一个表示对象的字符串,负责在不同的语言中进行数据的传递和交换;原创 2024-03-25 20:46:26 · 1055 阅读 · 0 评论 -
【JavaEE】_Spring MVC项目之使用对象传参
本专栏关于Spring MVC项目的单个及多个参数传参一文中,已经介绍过了对于不同个数的参数传参问题,原文链接如下:【JavaEE】_Spring MVC 项目单个及多个参数传参-CSDN博客如文中所述,当传递的参数个数与类型不同时,就需要频繁修改。原创 2024-03-06 18:16:00 · 715 阅读 · 0 评论 -
【JavaEE】_Spring MVC项目使用数组与集合传参
注:注意返回语句的书写:如果写成 return "ArrayPara has received:\n"+ arrayPara;不止Chrome,postman也支持urlencode操作,在postman上构造这种类型的请求也可以成功发送并成功收到响应;构造该请求时,除了使用&连接的键值对作为query string部分进行多参数传递的方法外,【JavaEE】_前端使用GET请求的queryString向后端传参-CSDN博客。对于1.3 中提到的在同一个请求中传递多个名称相同的参数的问题,原创 2024-03-05 21:18:20 · 1093 阅读 · 0 评论 -
【JavaEE】_Spring MVC 项目单个及多个参数传参
对于传递单个参数的底层逻辑就是从请求的参数中获取参数名为name的值,并给name赋值;在spring项目开发中,通常使用对象对要传递的参数组进行封装,这样可以简化接口逻辑。当后端使用@RequestPara注解对后端参数进行重命名时,默认该属性为必传属性;如上文所述,当传递的参数个数与类型不同时,就需要频繁修改。原创 2024-03-03 20:20:01 · 1127 阅读 · 0 评论 -
【JavaEE】_Spring MVC项目之建立连接
1. @RequestMapping是Spring Web MVC应用程序中最常被使用的注解之一,用于注册接口的路由映射,表示服务器接收到请求时,路径为/sayHi的请求就会调用sayHi这个方法的代码;当用户访问一个URL时,将用户的请求对应到程序中某个类的某个方法的过程就叫路由映射;原创 2024-03-01 18:58:10 · 1336 阅读 · 0 评论 -
【JavaEE】_Spring Web MVC简介
官网对于Spring Web MVC的介绍如下:链接如下:即Spring Web MVC是基于Servlet API构建的原始的Web框架,它从一开始就包含在Spring框架中,通常被称为Spring MVC;Spring Boot 只是一种创建Spring MVC项目的一种方式而已,帮助我们快速搭建项目,Spring Web MVC是其中的一个模块;总而言之,Spring Web MVC就是Spring MVC, 是一个Web框架;原创 2024-03-01 17:13:17 · 925 阅读 · 0 评论 -
【JavaEE】_HttpServletResponse类
本专栏已有文章介绍HttpServlet和HttpServletRequest类,文章链接如下:本文介绍第三个类:HttpServletResponse类;HttpServletResponse类表示一个响应;原创 2024-02-29 19:12:34 · 1460 阅读 · 0 评论 -
【JavaEE】_第一个SpringBoot项目
1. 在前文创建并运行的第一个SpringBoot项目中,我们没有手动配置Tomcat以及打包、部署等一系列操作,但在启动日志中含有Tomcat的相关记录;idea会帮我们查找相关的代码(在其他文件中使用过)并进行提醒(是否要一起修改),如果确认修改,idea会帮我们把相关联的文件名的相关代码全部进行修改。2. 在servlet项目中,访问webapp的URL有两级路径:127.0.0.1:8080/context path/servlet path。2. 快捷键修改文件名(请勿在Explorer中修改)原创 2024-02-29 18:50:24 · 1149 阅读 · 0 评论 -
【JavaEE】_前端POST请求使用json向后端传参
创建出Request.class实例,并且根据Request.class提供的属性的名字(username和password)来查询上述Map,把得到的结果(zhangsan和123)赋值给对应的属性(username和password),从而获取到了一个完整的Request对象;1. 把body的流对象(方法的第一个参数)直接传给readValue,这个方法内部就会读取InputStream中的所有数据(HTTP请求中的body,即json字符串);3. 把Map转换成java对象(方法的第二个参数);原创 2024-02-27 14:01:03 · 2363 阅读 · 0 评论 -
【JavaEE】_前端POST请求借助form表单向后端传参
对于通过form表单的方式将POST请求的参数传递给后端来说,对于POST请求,可以通过body部分来传递参数;即服务器成功接收了客户端请求的body部分的参数;原创 2024-02-27 14:00:34 · 562 阅读 · 0 评论 -
【JavaEE】_前端使用GET请求的queryString向后端传参
2. 可以理解为:请求进入tomcat后,其query string会被tomcat解析为一个map<String, String>这样的结构,getParameter就是在查询map中的内容;query string中的键值对都是程序员自定义的,实际开发中使用非常广泛,用于对本次访问进行补充说明;1. 在HttpServletRequest请求中,getParameter方法用于。虽然此处汉字也能正确显示,但是存在风险的。(浏览器会自动识别编码,解码为汉语)可见服务器响应返回成功。原创 2024-02-26 19:42:56 · 1075 阅读 · 0 评论 -
【JavaEE】_HttpServletRequest类
HttpServletRequest表示一个HTTP请求;原创 2024-02-26 15:10:40 · 1419 阅读 · 0 评论 -
【JavaEE】_HttpServlet类
前文已经提及到:servlet是tomcat提供的,用于操作HTTP协议的一组API,可以将这组API理解为HTTP服务器的框架;编写一个servlet程序,往往都要,而无需写一个main方法;对于以往的程序,可将程序视为一辆汽车,main方法就是发动机;对于servlet程序,可将servlet程序视为一辆火车的车厢,这个程序没有main方法,不是直接运行的,而是放到tomcat上运行的,而tomcat程序是有main方法的,tomcat就是火车头,写的webapp就是车厢。原创 2024-02-25 15:28:18 · 604 阅读 · 0 评论 -
【JavaEE】_Servlet程序常见问题
当在.java文件中输入doGet方法后,idea会自动补全重写内容为super.doGet(),如果super.doGet()没有注释掉,运行后再按照原url访问页面,也会出现405页面;注意resp.getWriter().write()才是像浏览器写响应的操作,System.out.println()是输出在服务器端的内容;500页面是服务器内部错误,往往是由于Servlet程序抛异常导致的,出现500页面时,日志会明确说明异常调用栈;(2)一个项目中,多个servlet中这部分指定的路径不能重复;原创 2024-02-25 15:25:05 · 886 阅读 · 0 评论 -
【JavaEE】idea的smart tomcat插件
注:(1)IDEA社区版按照上述方式即可安装tomcat插件,IDEA专业版内置了Tomcat Server插件,和Smart Tomcat功能差不多,但不是一个插件,但Smart Tomcat使用更方便;如果需要将页面输出的内容修改为Hello Servlet,仅仅修改 .java 文件是不能实现的,还需要重新打包,重新部署,重新运行Tomcat,再次访问才可以实现;2. 打包与部署程序可以使用IDEA的Smart Tomcat插件,把Tomcat集成到IDEA中,原创 2024-02-24 18:03:42 · 1960 阅读 · 0 评论 -
【JavaEE】_smart tomcat常见问题
解析数据是在浏览器中解析的,浏览器的默认解析方式是跟随系统的,win10简体中文版使用的字符集是gbk,此时就会出现乱码;即:当前情况为:运行的tomcat占用了8080端口,导致smart tomcat无法使用8080端口,从而启动失败;我们知道乱码意为着有多个环节对于编码方式的理解不一致,比如按照utf8构造数据,而按照gbk解析数据就很容易乱码。正常情况下,配置好smart tomcat后,点击运行后IDEA就会调用tomcat来运行程序了,此时再运行smart tomcat即可运行成功;原创 2024-02-24 18:03:06 · 619 阅读 · 0 评论 -
【JavaEE】_Servlet程序的编写方法
Servlet其实是较早的编写方式,当今Spring对Servlet进行了进一步封装,从而令编写网站更简单了。现在的Java商业级开发基本都以Spring为主。Spring是基于Servlet实现的,本篇介绍Servlet程序的编写方法,;原创 2024-02-23 17:17:34 · 1408 阅读 · 0 评论 -
【JavaEE】_tomcat的安装与使用
1. 使用HTTP进行通信,就涉及到HTTP客户端与HTTP服务器,常见的HTTP客户端浏览器、Postman、爬虫程序等等对于HTTP服务器,程序员就可以基于TCP socket手动实现,实际开发中我们并不需要从头开始写一个HTTP服务器,而是基于已开发的现成HTTP服务器进行二次开发即可;这些已开发的现成HTTP服务器已经把如何处理HTTP请求,如何构造HTTP响应封装好了,我们只需要调用这些API来构造业务逻辑即可;2.Tomcat就是Java中最知名、最流行的HTTP服务器;原创 2024-02-23 16:22:31 · 833 阅读 · 0 评论 -
【JavaEE】_HTTPS加密机制
HTTPS=HTTP+加密机制,此文介绍HTTPS的加密机制:对称加密,非对称加密,证书。原创 2024-02-22 14:59:50 · 860 阅读 · 0 评论 -
【JavaEE】_postman构造HTTP请求
在本专栏构造HTTP请求部分,已详细阐述了常用的使用代码构造HTTP请求的两种方法:但对于后端开发,构造请求仅为测试后端代码,故而常用第三方工具构造HTTP请求,彼此之间大同小异,为例。原创 2024-02-22 14:59:10 · 166 阅读 · 0 评论 -
【JavaEE】_ajax构造HTTP请求
当今网站的的主体都是通过ajax的方式进行交互,本文介绍ajax构造HTTP请求的方法。原创 2024-02-21 16:47:59 · 1728 阅读 · 0 评论 -
【JavaEE】_form表单构造HTTP请求
form表单可以用于构造GET请求与POST请求,本文介绍form表单构造HTTP请求的方法。原创 2024-02-20 20:28:29 · 1109 阅读 · 0 评论 -
【JavaEE】_synchronized关键字——监视器锁monitor lock
前文已经介绍,某个线程执行到某个对象的synchronized中时,其他线程如果也执行到同一个对象,synchronized就会阻塞等待,进入synchronized修饰的代码块相当于加锁,退出synchronized修饰的代码块相当于解锁;可重入锁会记录当前占用锁的线程以及加锁次数,线程a第一次加锁成功后,锁内部就会记录当前占用锁的线程为a,同时加锁次数为1,后续线程a再加锁时,进行的加锁操作就非真实的加锁操作而是一个伪加锁,是没有实质影响的,只是将加锁次数增加为2;原创 2024-02-20 20:28:00 · 1251 阅读 · 0 评论 -
【JavaEE】_线程安全
我们知道,操作系统调度线程是抢占式执行,这样的随机性可能会导致程序执行出现一些bug,如果由于这样的调度的随机性使得代码出现了bug,则认为代码是不安全的,如果没有引入bug,则认为代码是安全的;如果t2先结束,仍先令main等待t1结束,t2结束了t1还未结束,main线程仍然在等待t1结束,等t1结束后,t2已经结束了,则此时t2.jion()立即返回;(3)操作的原子性问题:针对变量的操作不是原子性的,就会导致线程不安全问题,如上文示例中,自增操作其实是3条指令;原创 2024-02-19 12:59:26 · 1608 阅读 · 0 评论 -
【JavaEE】_线程的状态与转移
在多线程Thread类相关一文中已经介绍过进程的状态:就绪状态与阻塞状态;这个状态决定了系统调度进程的态度,但这只针对单线程进程的情况;但实际中更常见的进程是多线程进程,此时的状态是绑定在线程上的;其实在Linux操作系统中,PCB是与线程对应的,一个进程对应一组PCB;“就绪”与“阻塞”状态都是针对系统层面上线程的状态,在java的Thread类中,对于线程的状态又进一步细化了;原创 2024-02-19 12:58:48 · 1048 阅读 · 0 评论 -
【JavaEE】_多线程Thread类及其常用方法
因为run方法只是一个普通的方法,在main线程中调用run,其实并没有创建心得线程,上文中的循环语句依然是在main线程中执行的,在一个线程中,代码就会按照从前至后的顺序进行运行,此时就只会在第一个循环结构中一直打印Hello Thread.;多个线程之间的调度顺序是不确定的,线程之间的执行顺序是调度器无序、随机执行的,有时我们需要控制线程之间的执行顺序,线程等待就是控制线程结束先后顺序的重要方法,哪个线程调用join()方法,哪个线程就会阻塞等待对应线程的run方法执行结束为止。原创 2024-02-18 20:34:31 · 1053 阅读 · 0 评论 -
【JavaEE】_HTTP响应
注:gateway即网关,是一个网络的出入口,通常也用来指代一个机房的入口服务器,192.168.1.1这种ip一般是网关ip;注:404返回的错误页面可以在body中进行设置,很多网站会把这个页面设计得非常丰富多彩;请求转发只能在该服务器内部的资源之间转发,重定向可以重定向到外部资源,即可跳转到别的网站。HTTP状态码描述了这次响应的结果(比如成功、失败,以及失败原因等);注:HTTP状态码是RFC标准明确规定的,不允许自定义;与HTTP请求相同,HTTP响应的报头也是键值对格式;原创 2024-02-18 20:25:51 · 765 阅读 · 0 评论 -
【JavaEE】_HTTP请求报头header
header的整体格式是“键值对”结构,一行是一个键值对,这些键值对都是HTTP定义好的、有特殊含义的。原创 2024-02-17 19:21:44 · 1273 阅读 · 0 评论 -
【JavaEE】_HTTP请求首行
② 幂等可以理解为相同的输入得到的结果是稳定的,一些资料上也会提及GET请求是幂等的,POST请求不是幂等的。这种说法也并不准确,GET与POST具体是否幂等取决于代码的实现,GET是否幂等也并不绝对,只是RFC标准文档建议GET设置为幂等的,典型的GET不幂等情况比如搜狗的广告搜索,广告的投放顺序与范围背后都有复杂的逻辑;③ 缓存即保存请求的结果,方便下次请求直接取缓存结果从而节省时间,一些资料也会提及GET请求是可以被浏览器缓存的,POST是不可以被缓存的。PUT只是具有幂等特性,一般用于更新;原创 2024-02-17 14:21:03 · 1422 阅读 · 0 评论 -
【JavaEE】_线程与多线程的创建
注:(1)一个进程中至少会有一个线程,在一个java进程中也至少会有一个调用main方法的线程,只是该线程是系统自动生成的而非手动创建的,此时我们手动创建的t线程与自动创建的main线程就是并发执行的关系,这两个线程从宏观上看该输出结果就是同时执行的;(3)sleep是一个毫秒级休眠语句,并没有那么精确,比如sleep(1000)的含义是1000ms之内不能上CPU,而不是1000ms之后准时上CPU,故而结束阻塞状态的具体时间是不确定的,这与线程之间的调度是随机的也是彼此互相印证的;原创 2024-02-17 14:01:25 · 1380 阅读 · 0 评论 -
【JavaEE】_进程调度
比如运行一个.exe可执行程序时,操作系统会将.exe加载到内存中变成进程,进程与这块内存空间是绑定的,即此块内存中包含.exe中存储的内容,.exe中存储着进程要执行的二进制指令(编译器生成)与数据;.exe都称为“可执行文件”,在未运行时,这些文件不会对系统产生任何的影响,开始运行时,操作系统就会把这个.exe加载到内存中,并且执行.exe内部的一些指令(.exe内存储了很多程序对应的二进制指令),将这些正在运行的可执行文件称为进程,有时也被称为任务;单任务操作系统是不需要考虑进程调度问题的;原创 2024-02-15 21:14:34 · 554 阅读 · 0 评论 -
【JavaEE】_文件与IO
狭义文件概念:平时说的文件一般都是存储在硬盘上的普通文件:形如.txt .jpg .mp4 rar等都可认为是普通文件,他们都是在硬盘上存储的;广义文件概念:在计算机中文件也可以是一个广义的概念,就不只是包含普通文件,还可以包含目录(目录文件),也就是俗称的文件夹,操作系统中还会使用文件来描述一些其他的硬件设备或软件资源:比如操作系统中将网卡、显示器、键盘等这样的硬件设备也抽象成了一个文件;当前讨论的文件仍然是针对普通文件;原创 2024-02-15 21:10:59 · 1448 阅读 · 0 评论