
JavaWeb
文章平均质量分 71
鲁大师啦啦啦
这个作者很懒,什么都没留下…
展开
-
多线程进阶
一:线程池1.线程池的由来本来多进程就是为了解决并发编程的方案,但是进程有点太重量了(创建和销毁,开销比较大)因此引入了线程,线程比进程要轻量很多。即便如此,如果某些场景中,需要频繁的创建销毁线程,此时,线程的创建和销毁的开销,也就无法被忽视了。线程池就是为了解决这样的问题而来。2.线程池的使用使用线程的时候,不是说用的时候才创建,而是提前创建好,放到一个“池子里”(和字符串常量池是类似的东西)当我们需要使用线程的时候,直接从池子里取一个线程过来。当我们不需要这个线程的时候,就把这个线程还回原创 2022-03-21 15:27:52 · 595 阅读 · 0 评论 -
在Linux中部署Java web程序
一:安装jdk使用 yum list 搜索 jdk 软件包,找到带有 devel 后缀的文件,这才是要安装的软件包。注意:安装 jdk1.8yum install java-1.8.0-openjdk-devel.x86_64提示安装成功,输入 javac 可以看到 javac 的选项,说明安装成功。二:安装tomcattomcat 是跨平台的程序,在tomcat官网上下载好压缩包,解压缩即可。到tomcat官网上复制 tomcat8 压缩包的下载地址。https://d原创 2022-03-04 11:42:35 · 818 阅读 · 4 评论 -
通过Thymeleaf实现表白墙案例
一:创建 Maven 项目二:在main目录下创建 webapp 文件夹;在 webapp 文件夹下创建 WEB-INF文件夹,在WEB-INF文件夹下创建 template 文件夹和 web.xml三:在 pom.xml 中引入依赖<dependencies> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency&g原创 2022-02-26 11:48:33 · 724 阅读 · 0 评论 -
Servlet的具体使用及简单案例
Servlet的具体使用,核心是三个类Servlet的生命周期Servlet在实例化之后调用一次initServlet每次收到请求,调用一次serviceServlet在销毁之前,调用一次destroy一:HttpServlet写 Servlet 代码的时候, 首先第一步就是先创建类, 继承自 HttpServlet, 并重写其中的某些方法。继承HttpServlet是为了重写类里面的方法,重写方法的目的是为了能够让程序员定义的逻辑给插入到Tomcat这个框架中,好让Tomcat能够调用。原创 2022-02-21 20:00:07 · 1153 阅读 · 0 评论 -
解决访问Tomcat服务器时,浏览器出现的乱码问题
通过ajax构造http请求,访问Tomcat服务器的时候,中文出现了乱码这是由于IDEA代码写的是中文UTF-8的格式。浏览器使用的系统是windows简体中文,默认的系统编码是GBK。解决方法:让浏览器按照UTF-8来解析只要在响应中的header里面加上Content-Type,在Content-Type里面注明响应的编码是UTF-8@Override protected void doGet(HttpServletRequest req, HttpServletResponse原创 2022-02-20 19:57:09 · 1318 阅读 · 0 评论 -
Smart Tomcat插件的使用详解
一:安装Smart Tomcat插件二:简单配置一下Smart Tomcat三:启动Tomcat使用Smart Tomcat来代替打包部署的时候,发现Tomcat的webapps内部并没有被拷贝一个war包,也没有解压缩的内容。Smart Tomcat相当于是在Tomcat启动的时候直接引用了项目中的webapp和target目录。...原创 2022-02-20 16:54:57 · 6149 阅读 · 0 评论 -
创建一个Servlet项目(简单示例)
什么是Servlet?Servlet是Tomcat上提供的一组API。基于Servlet开发的基本流程初始化:允许程序员注册一个类到Tomcat中,让这个类和HTTP中的一个特定的请求相关联。进入循环(处理很多请求)· 读取HTTP请求,Servlet解析这个请求字符串,生成一个HttpServletRequest对象· 根据请求对象生成一个HttpServletResponse对象(表示响应)。根据请求生成响应,这个过程,就是初始化阶段注册的类里面的代码完成的· 把HttpServletR原创 2022-02-12 12:35:34 · 3084 阅读 · 0 评论 -
Java多线程基础三
wait和notifywait():让当前线程进入等待状态notify()/notifyAll():唤醒在当前对象上等待的线程。注意: wait, notify, notifyAll 都是 Object 类的方法wait做了三件事:1.让当前线程阻塞等待。(让这个线程的PCB从就绪队列拿到等待队列中)并准备接受通知2.释放当前锁。要想使用wait/notify,必须搭配synchronized.需要先获取到锁,才有资谈wait。《1和2是要原子的完成》3.满足一定的条件被唤醒时,重新尝试获取原创 2022-01-23 18:58:08 · 498 阅读 · 0 评论 -
Java多线程基础二
线程不安全的原因线程之间是抢占式执行的【根本原因】多个线程修改同一个变量为了规则这类线程安全问题,可以尝试变换代码的组织形式,达到一个线程只改一个变量原子性指一个或多个操作,要么全部执行且在执行过程中不被任何因素打断,要么全部不执行。内存可见性指, 一个线程对共享变量值的修改,能够及时地被其他线程看到(和编译器优化相关)指令重排序(和编译器优化相关)如何解决线程不安全的问题以原子性为切入点,使用synchronized关键字synchronized加锁先来看一个两个线程同时改变一个变原创 2022-01-19 19:45:50 · 500 阅读 · 0 评论 -
Java多线程基础一
为什么要引入线程?因为进程的频繁创建,销毁,本身就比较消耗资源。因此引入线程,创建线程,并没有申请资源,销毁线程,也没有去申请资源。线程是在进程内部创建的,共用之前的资源。从操作系统的角度看线程和进程在操作系统内核的角度,不分“线程还是进程”,只人PCB。当创建一个进程出来,其实就是创建了一个PCB出来,同时这个PCB也可以视为当前进程中包含了一个线程了(一个进程中至少得有一个线程)。进程和线程之间的区别和联系【经典面试题】进程是包含线程的,一个进程可以有一个线程,也可以有多个线程。每个进程原创 2022-01-19 01:08:30 · 323 阅读 · 0 评论 -
Java文件操作小案例
一:指定一个目录,扫描这个目录,找到文件名中包含了指定字符的文件,并提示用户是否要删除这个文件。根据用户的输入决定是否删除。public static void main(String[] args) throws IOException { // 1.让用户指定一个待扫描的根目录 和 要查询的关键词 System.out.println("请输入要扫描的根目录(绝对路径):"); Scanner scanner = new Scanner(System.i原创 2021-12-13 19:56:51 · 393 阅读 · 0 评论 -
Java操作文件读写
抽象类 InutStream返回值类型方法说明intread()读取一个字节的数据,返回-1代表已经完全读完了intread(byte[] b)最多读取b.length字节的数据到b中,返回实际读到的数量;-1代表已经读完了intread(byte[] b,int off,int len)最多读取len - off字节的数据到b中,放在从off开始,返回实际读取到的数量;-1代表已经读完了voidclose()关闭字节流FileInputStr原创 2021-12-13 15:22:10 · 594 阅读 · 0 评论 -
Java操作文件属性
狭义的文件分成两大类普通文件目录文件(文件夹)文件的元信息,路径的操作Java中通过java.io.File类来对文件(包括目录)进行抽象的描述。有File对象,并不代表真实存在该文件。File类中常见的属性修饰符及类型属性说明static StringpathSeparator依赖与系统的路径分隔符,String类型的表示static charpathSeparator依赖与系统的路径分割符,char来兴的表示File类中常见的构造方法签原创 2021-12-07 15:22:23 · 638 阅读 · 0 评论 -
计算机是如何工作的
冯诺依曼体系结构:输入设备,输出设备,CPU(运算器+控制器),存储器(内存+外存)简要描述CPU的工作原理(必须涉及指令的读取、指令的执行、时钟周期)几乎所有的冯•诺伊曼型计算机的CPU,其工作都可以分为5个阶段:取指令、指令译码、执行指令、访存取数和结果写回。取指令阶段:取指令(Instruction Fetch,IF)阶段是将一条指令从主存中取到指令寄存器的过程。指令译码阶段:取出指令后,计算机立即进入指令译码(Instruction Decode,ID)阶段。在指令译码阶段,指令译码器按原创 2021-09-28 11:04:28 · 330 阅读 · 0 评论