深入javaweb开发内幕核心基础

Apache FileUpload文件上传组件API解析

Java Web开发人员可以使用Apache文件上传组件来接收浏览器上传的文件 该组件由多个类共同组成 但是 对于使用该组件来编写文件上传功能的Java Web开发人员来说 只需要了解和使用其中的三个类 DiskFileUpload FileItem和FileUploadException 这三个类全部位于mons fileupload包中

DiskFileUpload类

DiskFileUpload类是Apache文件上传组件的核心类 应用程序开发人员通过这个类来与Apache文件上传组件进行交互 但现在Apache建议使用ServletFileUpload类 两个类的方法类似 下面介绍DiskFileUpload类中的几个常用的重要方法

.setSizeMax方法

setSizeMax方法用于设置请求消息实体内容的最大允许大小 以防止客户端故意通过上传特大的文件来塞满服务器端的存储空间 单位为字节 其完整语法定义如下

public void setSizeMax(long sizeMax)

如果请求消息中的实体内容的大小超过了setSizeMax方法的设置值 该方法将会抛出FileUploadException异常

.setSizeThreshold方法

Apache文件上传组件在解析和处理上传数据中的每个字段内容时 需要临时保存解析出的数据 因为Java虚拟机默认可以使用的内存空间是有限的(笔者测试不大于 M) 超出限制时将会发生 java lang OutOfMemoryError 错误 如果上传的文件很大 例如上传 M的文件 在内存中将无法保存该文件内容 Apache文件上传组件将用临时文件来保存这些数据 但如果上传的文件很小 例如上传 个字节的文件 显然将其直接保存在内存中更加有效 setSizeThreshold方法用于设置是否使用临时文件保存解析出的数据的那个临界值 该方法传入的参数的单位是字节 其完整语法定义如下

public void setSizeThreshold(int sizeThreshold)

setRepositoryPath方法

setRepositoryPath方法用于设置setSizeThreshold方法中提到的临时文件的存放目录 这里要求使用绝对路径 其完整语法定义如下

public void setRepositoryPath(String repositoryPath)

如果不设置存放路径 那么临时文件将被储存在 java io tmpdir 这个JVM环境属性所指定的目录中 tomcat 将这个属性设置为了 tomcat安装目录/temp/ 目录

parseRequest方法

parseRequest 方法是DiskFileUpload类的重要方法 它是对HTTP请求消息进行解析的入口方法 如果请求消息中的实体内容的类型不是 multipart/form data 该方法将抛出FileUploadException异常 parseRequest 方法解析出FORM表单中的每个字段的数据 并将它们分别包装成独立的FileItem对象 然后将这些FileItem对象加入进一个List类型的集合对象中返回 parseRequest 方法的完整语法定义如下

public List parseRequest(HttpServletRequest req)

parseRequest 方法还有一个重载方法 该方法集中处理上述所有方法的功能 其完整语法定义如下

parseRequest(HttpServletRequest req int sizeThreshold long sizeMax

String path)

这两个parseRequest方法都会抛出FileUploadException异常

isMultipartContent方法

isMultipartContent方法方法用于判断请求消息中的内容是否是 multipart/form data 类型 是则返回true 否则返回false isMultipartContent方法是一个静态方法 不用创建DiskFileUpload类的实例对象即可被调用 其完整语法定义如下

public static final boolean isMultipartContent(HttpServletRequest req)

setHeaderEncoding方法

由于浏览器在提交FORM表单时 会将普通表单中填写的文本内容传递给服务器 对于文件上传字段 除了传递原始的文件内容外 还要传递其文件路径名等信息 如后面的图 所示 不管FORM表单采用的是 application/x form urlencoded 编码 还是 multipart/form data 编码 它们仅仅是将各个FORM表单字段元素内容组织到一起的一种格式 而这些内容又是由某种字符集编码来表示的 关于浏览器采用何种字符集来编码FORM表单字段中的内容 请参看笔者编著的《深入体验java Web开发内幕——核心基础》一书中的第 的讲解 multipart/form data 类型的表单为表单字段内容选择字符集编码的原理和方式与 application/x form urlencoded 类型的表单是相同的 FORM表单中填写的文本内容和文件上传字段中的文件路径名在内存中就是它们的某种字符集编码的字节数组形式 Apache文件上传组件在读取这些内容时 必须知道它们所采用的字符集编码 才能将它们转换成正确的字符文本返回

对于浏览器上传给WEB服务器的各个表单字段的描述头内容 Apache文件上传组件都需要将它们转换成字符串形式返回 setHeaderEncoding 方法用于设置转换时所使用的字符集编码 其原理与笔者编著的《深入体验java Web开发内幕——核心基础》一书中的第 节讲解的ServletRequest setCharacterEncoding方法相同 setHeaderEncoding 方法的完整语法定义如下

public void setHeaderEncoding(String encoding)

其中 encoding参数用于指定将各个表单字段的描述头内容转换成字符串时所使用的字符集编码

注意 如果读者在使用Apache文件上传组件时遇到了中文字符的乱码问题 一般都是没有正确调用setHeaderEncoding方法的原因

  FileItem类

FileItem类用来封装单个表单字段元素的数据 一个表单字段元素对应一个FileItem对象 通过调用FileItem对象的方法可以获得相关表单字段元素的数据 FileItem是一个接口 在应用程序中使用的实际上是该接口一个实现类 该实现类的名称并不重要 程序可以采用FileItem接口类型来对它进行引用和访问 为了便于讲解 这里将FileItem实现类称之为FileItem类 FileItem类还实现了Serializable接口 以支持序列化操作

对于 multipart/form data 类型的FORM表单 浏览器上传的实体内容中的每个表单字段元素的数据之间用字段分隔界线进行分割 两个分隔界线间的内容称为一个分区 每个分区中的内容可以被看作两部分 一部分是对表单字段元素进行描述的描述头 另外一部是表单字段元素的主体内容 如图 所示

主体部分有两种可能性 要么是用户填写的表单内容 要么是文件内容 FileItem类对象实际上就是对图 中的一个分区的数据进行封装的对象 它内部用了两个成员变量来分别存储描述头和主体内容 其中保存主体内容的变量是一个输出流类型的对象 当主体内容的大小小于DiskFileUpload setSizeThreshold方法设置的临界值大小时 这个流对象关联到一片内存 主体内容将会被保存在内存中 当主体内容的数据超过DiskFileUpload setSizeThreshold方法设置的临界值大小时 这个流对象关联到硬盘上的一个临时文件 主体内容将被保存到该临时文件中 临时文件的存储目录由DiskFileUpload setRepositoryPath方法设置 临时文件名的格式为 upload_ (八位或八位以上的数字) tmp 这种形式 FileItem类内部提供了维护临时文件名中的数值不重复的机制 以保证了临时文件名的唯一性 当应用程序将主体内容保存到一个指定的文件中时 或者在FileItem对象被垃圾回收器回收时 或者Java虚拟机结束时 Apache文件上传组件都会尝试删除临时文件 以尽量保证临时文件能被及时清除

下面介绍FileItem类中的几个常用的方法

isFormField方法

isFormField方法用于判断FileItem类对象封装的数据是否属于一个普通表单字段 还是属于一个文件表单字段 如果是普通表单字段则返回true 否则返回false 该方法的完整语法定义如下

public boolean isFormField()

getName方法

getName方法用于获得文件上传字段中的文件名 对于图 中的第三个分区所示的描述头 getName方法返回的结果为字符串 C:\bg gif 如果FileItem类对象对应的是普通表单字段 getName方法将返回null 即使用户没有通过网页表单中的文件字段传递任何文件 但只要设置了文件表单字段的name属性 浏览器也会将文件字段的信息传递给服务器 只是文件名和文件内容部分都为空 但这个表单字段仍然对应一个FileItem对象 此时 getName方法返回结果为空字符串 读者在调用Apache文件上传组件时要注意考虑这个情况 getName方法的完整语法定义如下

public String getName()

注意 如果用户使用Windows系统上传文件 浏览器将传递该文件的完整路径 如果用户使用Linux或者Unix系统上传文件 浏览器将只传递该文件的名称部分

.getFieldName方法

getFieldName方法用于返回表单字段元素的name属性值 也就是返回图 中的各个描述头部分中的name属性值 例如 name=p 中的 p getFieldName方法的完整语法定义如下

public String getFieldName()

write方法

write方法用于将FileItem对象中保存的主体内容保存到某个指定的文件中 如果FileItem对象中的主体内容是保存在某个临时文件中 该方法顺利完成后 临时文件有可能会被清除 该方法也可将普通表单字段内容写入到一个文件中 但它主要用途是将上传的文件内容保存在本地文件系统中 其完整语法定义如下

public void write(File file)

.getString方法

getString方法用于将FileItem对象中保存的主体内容作为一个字符串返回 它有两个重载的定义形式

public java lang String getString()

public java lang String getString(java lang String encoding)

throws java io UnsupportedEncodingException

前者使用缺省的字符集编码将主体内容转换成字符串 后者使用参数指定的字符集编码将主体内容转换成字符串 如果在读取普通表单字段元素的内容时出现了中文乱码现象 请调用第二个getString方法 并为之传递正确的字符集编码名称

getContentType方法

getContentType 方法用于获得上传文件的类型 对于图 中的第三个分区所示的描述头 getContentType方法返回的结果为字符串 image/gif 即 Content Type 字段的值部分 如果FileItem类对象对应的是普通表单字段 该方法将返回null getContentType 方法的完整语法定义如下

public String getContentType()

isInMemory方法

isInMemory方法用来判断FileItem类对象封装的主体内容是存储在内存中 还是存储在临时文件中 如果存储在内存中则返回true 否则返回false 其完整语法定义如下

public boolean isInMemory()

delete方法

delete方法用来清空FileItem类对象中存放的主体内容 如果主体内容被保存在临时文件中 delete方法将删除该临时文件 尽管Apache组件使用了多种方式来尽量及时清理临时文件 但系统出现异常时 仍有可能造成有的临时文件被永久保存在了硬盘中 在有些情况下 可以调用这个方法来及时删除临时文件 其完整语法定义如下

public void delete()

FileUploadException类

在文件上传过程中 可能发生各种各样的异常 例如网络中断 数据丢失等等 为了对不同异常进行合适的处理 Apache文件上传组件还开发了四个异常类 其中FileUploadException是其他异常类的父类 其他几个类只是被间接调用的底层类 对于Apache组件调用人员来说 只需对FileUploadException异常类进行捕获和处理即可

ServletRequestContext

lishixinzhi/Article/program/Java/hx/201311/26285

学习Java Web,买什么书看比较好?

1、先学JAVA和简单的javascript,然后我觉得主要看servlet,因为JSP底层就是servlet,如果你把servlet学得好了,JSP两天就会。我推荐中国电力出版社翻译的外文资料《Java Servlet编程》作者是Jason HunterWilliam Crawford写的,翻译成了中文,上面很多例子,书看着厚,但前面都是些引言,中间有很多很多原代码,其实内容并不多,而且非常全,很多原码,你如果跟着写一遍,存起来,工作的时候都能用,它还提到了无线端的开发应用,对你以后学手机程序编写,也是很好的。

2、《轻量级java ee 企业应用实战 Struts2+Spring3+hibernate整合开发》这个注重实际应用。

深入javaweb开发内幕核心基础

0基础学习JAVA软件开发 好学吗?

Java

Java零基础如何学好Java语言编程,作为一个Java初学者,怎样从一个新手快速入门。首先,告诉你,你要想明白自己为什么要学Java?只是一种兴趣爱好,还是为了将来的谋生。或者是因为学习Java的都有一个高薪吸引才学习Java。自己要有一个大概的学习方向、思路。

作为刚接触Java的新手,先了解Java的基础。Java 基本语法、Java 平台应用、 Java 的核心概念:JVM、JDK、JRE以及 java 面向对象思想,同时要会学到如何在系统中搭建 Java 开发环境,以及如何利用第三方工具进行 Java 程序的开发。还有记住学习Java语言最重要的是两点:1.学习步骤/方法;2.学习资源。找到适合自己的学习方式。找到适合自己现阶段的学习资料。学习的过程中最好记笔记,因为好记性不如烂笔头。

在学习Java语言最基础的知识到Java进阶设计阶段,要了解常用的设计模式以及 Java 语言的实现实例来学习 java 设计模式。从中我们可以学习到很多类型的设计模式,其中包括工厂模式、抽象工厂模式、单例模式、适配器模式、观察者模式、装饰者模式等等。

学习Java的基本路径就是,首先建立好开发环境。建立起来环境了,最重要的是练习,熟能生巧,在不断的练习中去加深自己对程序语言的理解。作为新手你可以去找一本比较好的经典的入门书籍,现在网络上也有非常多的资料,图文或者视频都可以,根据个人喜好选择来练习。做Java开发的话,你需要了解这三个术语,叫SDK、API跟Lib,分别表示软件开发套件,应用编程接口和库。这三者之间其实有一定的联系,或者是交叉。总体来说,它们都是给我们提供的一些封装了底层功能的基础设施。这些东西通常体现为我们所经常说的“框架”。如果你梦想是成为一个出色的网络应用程序的开发者,不管你用什么类型的框架,你都必须要熟悉Servlet和JSP。莪和一群大牛组建一个裙:前面的java是二三 O中间的javaEE⒋ 一 九后面是五 五 零,按照顺序组合起来,就可以找到我们心中的需要只要你有一颗学习的心就可以了 不想学习或者自认不需要学习的就不要加了。事实上要成为一个资深的Java开发者,对各种API和框架的学习,可能是花时间最多的一个地方。

学习Java,首先完成 Java基础、JDK、JDBC、正则表达式等基础实验,然后进阶到 J2SE 和 SSH 框架学习。Java Web全栈开发的推荐学习内容,简单总结一下,大概包括下面这些内容。每一部分都可以细化成很多知识点,这只是一个粗略的罗列。把它当做技术地图就好了。

开发环境的建立与项目管理:Eclipse、Maven和Git

Java编程基础:基本语法、面向对象特性、Java8新特性、更高级库(比如Guava)的使用等

前端开发技术:HTML、CSS、Bootstrap和Java基础

Spring基础:依赖注入IoC、面向切面编程AOP、SpringBoot

MVC框架:Spring MVC、Struts等,包括URL路由、模板、表单、Session、拦截器等知识

数据访问:关系型数据库、JDBC、Spring JDBC、事务、ORM框架(MyBatis,Hibernate、JPA)

成熟应用的关键功能实现:邮件发送、异步任务、缓存、日志等应用的测试和部署。

还有专门提一下JSP和Servlet,虽然现在各种成熟的MVC框架已经让Java Web开发基本很少使用JSP和Servlet的原生功能了,基本都做了一层封装。但是这部分基础知识建议初学者还是要认真学习。

最后说一点,程序猿这门职业是个不断学习的职业。每天都有新技术,虽然不一定都能用上,但是还是要每天学习。java自己核心的一些包和技术无非是:集合,泛型,IO,多线程,类加载机制,反射,代理。掌握这些,java就算入门了。初学者从Java零基础快速入门学好Java语言。初学者最重要的就是不要懒!!!不要懒!!!不要懒!!!重要的事情说三遍!!!

深入体验Java Web开发内幕——高级特性 +深入体验Java Web开发内幕——核心基础 与 java web开发详解 比较

这个学习是有顺序的..必须先学习 — 深入体验Java Web开发内幕——核心基础 与 java web开发详解 — 要是敢入门的话就先学–深入体验Java Web开发内幕——核心基础 — 要是有一点基础就先学–java web开发详解–最好在学习–深入体验Java Web开发内幕——高级特性 —

推荐教师 —

张孝祥的书比较有内涵 — 写的比较详细..都是深入到内部的..

李兴华老师的书 比较追求速度..可以在最快的时间入门..但是深入就不行了…

个人认为李兴华老师的书入门的话是最好的…

我想学java,我应该从哪学起?

你的j2se只学了一点而已,不管怎样,都要先把j2se学好,这是基础。j2se的学习顺序一般是这样的:基础语法 – 面向对象入门 – 异常处理 – 数组 – 常用类 – 容器(相当重要) – IO – 线程 – 网络 – GUI。

既然你io,thread都学了,其余那些还有没学的,建议去看看马士兵的j2se视频,其实我觉得如果想打好基础的话,这套视频应该全部过过,特别是开始的内存分析和面向对象分析。学完j2se要做做几个基础的桌面项目,像什么贪吃蛇啊、俄罗斯方块、简单的聊天器等等,这样才能把知识整合起来,加深对j2se的理解。

如果想走j2ee路线的话,接下来应该学数据库,再学html、css、JavaScript、jsp/servlet,也就是web的入门,之后做做web项目,比如小bbs、网上商城等等。学通了就学框架,这期间会穿插很多东西,例如xml、uml、log4j、jUnit等等,最后学设计模式和面向对象的分析。计算机的东西是很多的,不要学死,也不要想着学完,最重要的是学会解决问题的方法。开始肯定要模仿别人的代码,不断模仿,多看,看完一定要自己写几遍,只有能写出来了的,才是自己的东西,建议开始时多背点东西,包括一些常用类啊、一些概念性的东西,因为背多了自己就熟悉了。

数据库的要另找,网上能找到马士兵的Oracle,讲的很不错的!!

shopping这个项目也有从头带到尾的,也是马士兵的,要找找

做项目是很重要的,从简单的做起,慢慢体会其中的分析与设计

学java还是从视频入门的好,千万不要一开始就去看《Thinking in java》,吃力不讨好,学到web时可以看看张孝祥的《深入体验JAVA Web开发内幕——核心基础》,写的很详细,不过他的视频一般,JavaScript就看《JavaScript高级程序设计》,html比较简单,css也比较简单,不过css布局因人而异,有人觉得很好理解,有人觉得很难,搞个Dreamweaver多练练也就熟悉了。设计模式可以看《大话设计模式》,入门很好!

你的j2se只学了一点而已,不管怎样,都要先把j2se学好,这是基础。j2se的学习顺序一般是这样的:基础语法 – 面向对象入门 – 异常处理 – 数组 – 常用类 – 容器(相当重要) – IO – 线程 – 网络 – GUI。

既然你io,thread都学了,其余那些还有没学的,建议去看看马士兵的j2se视频,其实我觉得如果想打好基础的话,这套视频应该全部过过,特别是开始的内存分析和面向对象分析。学完j2se要做做几个基础的桌面项目,像什么贪吃蛇啊、俄罗斯方块、简单的聊天器等等,这样才能把知识整合起来,加深对j2se的理解。

如果想走j2ee路线的话,接下来应该学数据库,再学html、css、JavaScript、jsp/servlet,也就是web的入门,之后做做web项目,比如小bbs、网上商城等等。学通了就学框架,这期间会穿插很多东西,例如xml、uml、log4j、jUnit等等,最后学设计模式和面向对象的分析。计算机的东西是很多的,不要学死,也不要想着学完,最重要的是学会解决问题的方法。开始肯定要模仿别人的代码,不断模仿,多看,看完一定要自己写几遍,只有能写出来了的,才是自己的东西,建议开始时多背点东西,包括一些常用类啊、一些概念性的东西,因为背多了自己就熟悉了。

数据库的要另找,网上能找到马士兵的Oracle,讲的很不错的!!

shopping这个项目也有从头带到尾的,也是马士兵的,要找找

做项目是很重要的,从简单的做起,慢慢体会其中的分析与设计

学java还是从视频入门的好,千万不要一开始就去看《Thinking in java》,吃力不讨好,学到web时可以看看张孝祥的《深入体验JAVA Web开发内幕——核心基础》,写的很详细,不过他的视频一般,JavaScript就看《JavaScript高级程序设计》,html比较简单,css也比较简单,不过css布局因人而异,有人觉得很好理解,有人觉得很难,搞个Dreamweaver多练练也就熟悉了。设计模式可以看《大话设计模式》,入门很好!

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月24日 04:22:14
下一篇 2024年3月24日 04:31:30

相关推荐

  • java多线程并发编程基础,Java多线程并发执行返回

    电脑培训分享Java并发编程:核心理论 电脑培训发现本系列会从线程间协调的方式(wait、notify、notifyAll)、Synchronized及Volatile的本质入手,详细解释JDK为我们提供的每种并发工具和底层实现机制。 人们开始意识到了继承的众多缺点,开始努力用聚合代替继承。软件工程解决扩展性的重要原则就是抽象描述,直接使用的工具就是接口。接…

    2024年5月23日
    4700
  • 零基础怎么学习黑客技术,0基础学黑客技术

    如何成为黑客 1、必须保持坚持不懈:想要成为黑客,遇到问题是难免的,而问题是提升自身技能最好的办法。而在黑客之路会遇到的问题有非常的多,这就需要坚持不懈的精神了。三天打鱼俩天晒网也是不行的。 2、增删改查之更新记录、数据库权限操作。第四站:黑客常用工具(5天)AWVS漏洞扫描。AppScan漏洞扫描。Nessus漏洞扫描。 3、想成为一名黑客从这五本书开始入…

    2024年5月23日
    4600
  • 零基础如何学习黑客,零基础怎么学黑客

    黑客入门教程 黑客入门需要自己持续学习和不断提升自己的技术水平。可以通过参加一些安全技术培训和考证,如CEH、CSP等,不断拓展自己的技能和经验。同时,需要保持开放的心态,多与其他黑客进行交流,分享经验和学习成果,不断探索和创新。 远程扫描、远程刺探技术。包括通过系统自带命令的信息刺探以及使用工具扫描等。密码破解。了解现在的密码破解的适用范围,以及操作技巧等…

    2024年5月23日
    3700
  • 从零基础学习黑客,零基础学黑客如何入门

    从零开始,想做黑客该学什么语言好?(别说中文、英文) Assembly Languages(汇编语言),汇编语言是最接近于硬件的语言,不过现在几乎没多少人用了。 当然,现在的话还要学JAVA,C++,PERL等 入侵都是网络的,所以对网络要非常的了解。 学习UNIX/LINUX UNIX/LINUX是一种安全性更高的开源操作系统,最早由AT&T实验室…

    2024年5月23日
    4400
  • 黑客学习必备书籍,零基础黑客必备书籍

    少年黑客是什么书 1、年6月份。根据查询《少年黑客第六季》官网相关资料显示,该书将于2023年6月份出本季的喜马拉雅故事。《少年黑客》是一本科幻小说,讲述了凭借学习和发明才能成为一个黑客,最终完成梦想的故事。 2、作为第一部为青少年打造的黑客广播剧,《少年黑客》是一个略带科幻色彩的少年成长故事,同时也是关于信息科学的科普音频。 3、少年黑客第六季是不会出喜马…

    2024年5月23日
    7600
  • javascript吧,javaScript基础心得体会

    JavaScript真的容易学吗? 1、JavaScript是一种轻量级的编程语言,是一门非常容易入门的语言。JavaScript语法比较简单,应用面也会非常的广,有比较好的就业市场。 2、JavaScript面向对象、函数进阶、递归及其应用、正则表达式、ES6等等JS的高级课程内容。高级课程内容相对难度会有所提升,但是只要能理解了相应的编程思维,整体掌握难…

    2024年5月23日
    3900
  • java常考算法,java算法基础题

    大学java中都学过哪些经典算法?请学过的朋友解答下 Java SE部分 初级语法,面向对象,异常,IO流,多线程,Java Swing,JDBC,泛型,注解,反射等。数据库部分,基础的sql语句,sql语句调优,索引,数据库引擎,存储过程,触发器,事务等。 互联网行业目前还是最热门的行业之一,许多想入行互联网的人都会选择Java学习,发展前景非常好,普通人…

    2024年5月23日
    3900
  • javascript0基础的简单介绍

    javascript基础入门 1、JavaScript最初是由网景公司的Brendan Eich在1995年创建的,最初被称为LiveScript。后来,它被重命名为JavaScript,以更好地与Sun Microsystems的Java语言相匹配。 2、如果你想快速学会 JavaScript,你可能要掌握“跳章学习”的方法。左边可以看到本教程整个结构树。…

    2024年5月22日
    4600
  • 黑客零基础学习app,黑客零基础教程

    0基础成为黑客需要学什么 1、黑客需要具备扎实的计算机基础知识,包括计算机网络、操作系统、编程语言、数据结构等。因此,初学者需要先学习这些基础知识,掌握计算机的工作原理和基本操作。 2、对于零基础的朋友第一步要做的是掌握web前后端基础和服务器通讯原理,前后端包括h5,js,PHP,sql等等。 3、黑客需要学习的东西有很多,底层的有编程语言,操作系统原理,…

    2024年5月22日
    9200
  • 学习黑客的书0基础,黑客零基础入门的书

    黑客新手入门应该学习哪些书籍? 1、我推荐《黑客X档案》,可以接触到很多新技术,而且就算是菜鸟也看得懂(因为绝大部分读者都是初学者,所以这本杂志挺照顾菜鸟的)。 2、此外赠送包含200个黑客攻防实用技巧的电子图书,全面帮助读者解决在防御黑客攻击和捍卫网络安全的过程中所遇到的问题。《学以致用:黑客攻防实战入门》既适合电脑初学者阅读,同时对有经验的网络安全爱好者…

    2024年5月22日
    3600

发表回复

登录后才能评论



关注微信