开发网站要求

Eclipse是开发工具,最新的没问题。
JDK其实不需要用最新,现在市面上大多数还是JDK8。
JDK8配套的Tomcat 8 就OK了
学习Maven抛弃掉引入jar包的方式
放弃用Struts,可以学学SpringBoot

来聊聊如何学习Java,Java的学习路线是怎么样的
ps:在2020年花点时间了解JSP是没毛病的,但深入学习的话是没必要的。
想要用Java在短短的几个月时间内写出自己的毕业设计。
想要用Java体验一下如何从零搭建一个属于自己的网站。
那么可以看一下我下面所写的不成熟的建议。

二、如何快速学Java
这里我以Java EE(Jakarta EE)/Java Web的经验来说哦。(都把你们看做是零基础入门的了)
学习Java EE(Jakarta EE)总体来说会有以下三大模块:

Java
数据库
Web前端

无论学习什么技术都好,在学习该项技术的细节之前都得知道:这项技术是什么,为什么我要学习这项技术,学习了这项技术有什么好处。

看似好像我在说多余的话,但如果你在学习某项技术的时候无法回答上面的三个问题。再过几天,你很大程度上会忘记这项你所“学过”的技术。
比如说,如何你连“为什么要用多线程”你都无法用通俗的话来解释清楚。即便你当时学习的时候知道多线程可以用xxx方式来创建,多线程的xxx的api。那再过两个月,人家问你”Java多线程有什么用啊?”。你想想你还能答什么,我认为你是记不住“多线程可以用xxx方式来创建、多线程的xxx的api”这些知识点了。
再比如说,如果学习Spring时不知道IOC和new对象有什么区别,那我为啥不直接new对象而要那么麻烦去学Spring呢?
简单来说:如果你不知道学习某项技术是干嘛用的,那先不要学。
如果你是零基础学习Java并理解力不是爆棚的话,我建议以视频学习为主。
ps:如果看的视频讲师的语速不是特别快,建议以1.5或者1.75倍速观看。
2.1关于视频资源
我在学习Java的时候也收集了很多的视频资源,并不是每个都有看过。只是在混群的时候发现有人发了,就复制下来整理一下罢了。
零基础学习Java的路线我简单总结为以下:

首先去官网下个JDK,按现在常用的版本JDK1.8就够学习了
下载地址:JDK1.8下载:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
随后去下载现在Java常用的编辑器IDEA(也可以用eclipse,但现在IDEA的确是好用)..
下载地址:IDEA下载:https://www.jetbrains.com/idea/
以1.5/1.75倍速观看Java基础视频(以刘意为例)
在学习Java基础时,我简单来说一下什么东西可以不碰:
&^|位运算符,++i和i++类似这种绕死人的语法
内部类
AWT,SWING编程
注解
需要深入理解的知识点:
流程控制
面向对象的概念
Java语法
this指针、重写和重载、final、static等等这些基础的东西
集合(包括泛型)
常用的集合类
IO流
IO流代码的编写

(理解这些知识点,能够在有提示的情况下码出代码,但不要为了一些细节钻牛角尖)
简单过一遍的知识:
异常
多线程
网络编程
反射机制

(你得知道这个知识点是干嘛用的,为什么要学这个知识点,能看懂具体的代码!)
对于上面所说深入理解的知识点,我个人是非常建议在学习期间写笔记(博客)的。如果你想写笔记的话,最好直接就用markdown语法来编写,而不是用word/简单的记事本。
markdown语法非常好学,几分钟跟着就可以学习了,几乎所有的it博客网站都支持markdown:
markdown学习:https://www.jianshu.com/p/q81RER
如果喜欢画思维导图的,我这里推荐processOn就可以了。无需下载Xmind这么麻烦了:
ProcessOn来画思维导图:https://www.processon.com/i/5815483ce4b0baccb2d1f8c6
有的时候并不需要使用IDEA打开一个.java或者.xml这样的文件,可以使用notepad++记事本:
NotePad++记事本:https://notepad-plus-plus.org/
学会上网和使用Chrome浏览器,比如说下载拦截广告插件,英语翻译插件
Chrome浏览器:https://www.google.com/chrome/
拦截广告插件:https://chrome.google.com/webstore/search/uBlock%20Origin?hl=zh-CN&_category=extensions
英语翻译插件:https://chrome.google.com/webstore/search/%E6%B2%99%E6%8B%89%20%E6%9F%A5%20%E8%AF%8D?hl=zh-CN
虽然是快速学习Java,但学完上面的估计得一个月了(:..
一个月发现都是面向控制台编程(console),输入输出一些数据来玩。
期间可能就学习IO的时候可以复制文件,修改文件名有点意思。但好日子就要来临了!
2.2学习Java Web基础
首先我们可以学习一下Web前端的知识(此部分都简单过一下就好了)
HTML/CSS/JavaScript/jQuery

CSS框架(都有中文手册,很快就上手了,选一个自己喜欢的就好了):
BootStrap:http://www.bootcss.com/
Materialize:http://www.materializecss.cn/
到目前为止,学完上面这些可以搭建“能看”的静态网页了。曾经看过一段话来总结上面的技术:
“HTML是名词,CSS是形容词,JavaScript是动词”
随后学习JavaWeb的路线如下:
Tomcat(简单过一下)
XML/注解(简单过一下)
Servlet(重点理解)
HTTP协议(重点理解)
Filter过滤器(重点理解)
Listener监听器(简单过一下)
JSP(简单过一下)
AJAX、JSON(简单过一下)

基于上面的学习,起码已经可以使用request对象来接收前端发送过来的数据,使用response对象将Java后端的数据返回给前端,使用Filter拦截器来处理中文乱码问题(Tomcat默认的编码是ISO-88591)。总的来说已经可以实现前后端交互了!
2.3学习数据库
数据库这里指的是关系型数据库,一般我们以MySQL来入门就足够了。
在学习期间,其实很多时间都耗费在配置环境上面,比如我之前安装JDK,安装MySQL,安装Oracle就耗费了不少时间。后来我也将其写成博客,需要重新安装的时候翻一下博客就好了。
比如MySQL安装教程:https://segmentfault.com/a/1190000013530782
主要学习SQL的基本使用吧:
创建表(create table)
增删改查(insert,delete,update,select)

对于存储过程、触发器这些了解一下即可
对于索引、锁后面再学(此部分很重要,但以快速入门来说,可以先不看)
2.4学习Java连接数据库(JDBC)
到这里,我们Java Web、数据库、Web前端的基础都已经基本学完了,但此时Java和数据库是相互独立的。我们想要以程序的方式来对数据库的数据进行操作,那就要学习一下Java连接数据库(JDBC)。
JDBC这项技术并不难呀,就是模板代码,来来去去就几个步骤:
导入MySQL或者Oracle驱动包
装载数据库驱动程序
获取到与数据库连接
获取可以执行SQL语句的对象
执行SQL语句
关闭连接

由于这些代码可能会重复出现,那我们可以学习一下DbUtils这个组件:可以帮我们减少编写JDBC的模板代码。
2.6项目管理和框架的学习
经过上面的学习,已经是可以在本地写一个Web项目了。
页面框架使用BootStrap/Materialize框架来搭好
请求处理交由Servlet返回的数据可以通过AJAX或者使用JSPDAO层可以使用DbUtils
数据保存在MySQL中
为了让写代码变得更爽,我建议用半天学一下Maven(项目管理工具),用几天学一下SpringBoot。
从Servlet直接跳到SpringBoot可能有点难理解,但多搞几天我相信还是可以的..
2.7Linux学习
最后,我们在本地上写完的项目想要让其他人都看得见,一般都会部署在Linux环境下的。(此部分的学习可以等到将项目写完,想要部署项目才学习)
主要学习一下Linux的基本命令和部署环境
我是不推荐使用虚拟机再搞Linux的,直接买一台方便很多
三、总结
总结一下我认为学习Java的路线:
Java基础-->流程控制-->面向对象(包括Java语法)-->Java集合-->Java IO流-->异常-->多线程-->网络编程-->反射
JavaWeb基础-->HTML/CSS/JavaScript/jQuery-->Tomcat-->XML/注解->Servlet-->HTTP-->Filter过滤器和监听器-->JSP-->AJAX/JSON-->数据库(MySQL)-->JDBC和DbUtils
项目管理和框架-->Maven-->SpringBoot
Linux基本命令
最后我们的项目是这样的:
以Maven来管理我们的项目
前端通过BootStrap来搭建页面框架
SpringBoot来搭建Java后端环境,SpringMVC处理前端请求(SpringBoot整合了)
DAO层使用DbUtils组件来完成,MySQL作为数据库
当然了,我的Java路线不一定就是对的,我这里只是给出一种路线。
再次说明:这套路线是以“快速”学习Java的,如果你想要找到一份好工作,上面的知识点是不够的!
动图封面
涵盖Java后端所有知识点的开源项目(已有6K+ star):https://github.com/ZhongFuCheng3y/3y
Java做网站需要掌握哪些技术
Java是目前主流的Web应用开发语言,想要用Java做一个网站,代码不单单是要用到Java语言还有很多相关的语言和技术,下面会从能看到的地方开始列举,需要用到的技术。
1、HTML + CSS
2、JavaScript / JQuery
3、Tomcat + JSP/Servlet + Java
4、数据库
5、缓存
6、Linux服务器
7、负载均衡、反向代理
1、HTML + CSS
HTML (HyperText Markup Language):超文本标记语言
CSS(Cascading Style Sheets) :层叠样式表
这两个是做一个网站必须要会的东西, 这两种语言是用来写出来页面的, 所有的能看到的页面,都是用HTML + CSS 做出来的。如果把一个页面比喻成一个漂亮的姑娘, 那么HTML就是这个姑娘的身体,CSS就是这个姑娘身上的衣服和化妆品,两者结合起来,就是一个漂亮的姑娘(页面)。(注:虽然也有很多素颜的姑娘!~)
现阶段有很多现成的模板(Bootstrap),写好了一套完整的样式,那么只需要根据按照文档上写的,按照模块化的把代码拼装起来,就是一个简洁大方的页面。
2、JavaScript / JQuery
JavaScript是一种应用在HTML页面上的脚本语言, 主要为了使网页增加动态功能的语言,那么之前把HTML比喻成一个漂亮的姑娘, 那么JavaScript就是这个姑娘会跳的舞蹈。JavaScript使HTML页面的功能在除了展示之外,多了许多功能, 一些简单的功能,可以利用JavaScript直接在网页上来处理,不必去请求服务器,在服务器上进行计算。
JQuery是JavaScript的一个封装,是由JavaScript写出来的一种语言,实现了JavaScript的所有功能,并对其进行了一些优化,使其更加方便。
3、Tomcat + JSP/Servlet + Java
Tomcat :开源的、轻量级的Web 应用服务器
JSP(Java Server Pages) : Java服务器页面
Servlet : Java服务端程序
Tomcat是一个网站服务端的服务器,这里所说的服务器,不是指的电脑那样的服务器,这里所指的是Java Web程序的容器,应用程序通过Tomcat来启动,管理,所有的Http请求,通过Tomcat交给Java Web程序来进行处理,并将处理结果返回给浏览器。
JSP/Servlet是Java服务器端的应用程序,也是请求处理的入口,Tomcat中过来的的请求经由Servlet开始,并继续由Java的程序进行处理,从而完成整个网站的功能。
在Java Web开发中有很多很多的前辈,贡献了他们的代码,使其开源,有一些优秀的开源项目我们一直在使用,而这些开源的项目使得我们的开发更加方便、快捷、在Java Web开发中常见的框架有 Strust2 、SpringMVC 、Spring 、Hibernate 、MyBatis 、HttpClient 、JSoup 、Log4j 等等,后续详细介绍....
4、数据库
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
数据库是一个网站的核心,所有的操作,记录,都由数据库负责记录,当我们需要的时候需要从数据库中取出相应的数据并予以展示。简单的来说,数据库就是一个账本,所有的信息都会记录在账本上,那么当我们需要适用数据时,只需要从账本上找到数据就可以了。
概括的来说,程序就是对数据的存储,和对数据的展示。
常见的数据库 MySql ,Oracle,SQLServer等等。
5、缓存(简述)
百度百科:http://baike.baidu.com/view/907.htm
缓存的概念很专业也很概括, 这里所说的缓存指的是存储在RAM中作为临时存储的数据。
缓存作为一个很常用的技术在Web中应用的非常广泛,因为是在内存中存储数据, 读取速度比从数据库中读取速度快很多,所以缓存技术在很多时候应用在网站加速和性能提升方面。
如果把数据库比作是账本,那么缓存可能就是一个人的大脑,缓存的特性就是随着应用的结束,而数据消失,就像人一样,要是从一个账本或者一本书中去拿一个数据,可能还得去查找,去翻,那么记在了脑袋中,用什么直接想一下就知道了,当这个人挂了(应用结束),那么你的这个数据,也就跟着这个人消失了~~~~所以很多的知识都是记录在账本(书籍)中,永久的留存下来~~~
常见的缓存技术 Memcached 、Redis(也作为NoSql数据库使用)
6、服务器(简述)
百度百科:http://baike.baidu.com/view/899.htm
服务器简单的来说,就是一台性能远超普通PC的电脑,应用程序运行在服务器上, 服务器一般使用linux系统(少部分使用window server),所以在运行程序的时候, 至少要会一些简单的linux命令。
7、负载均衡、反向代理(简述)
负载均衡百度百科解释:http://baike.baidu.com/view/51184.htm
反向代理百度百科解释:http://baike.baidu.com/view/1165595.htm
举个最简单的例子解释这两个技术。
负载均衡:有一堆零件需要加工,有10个员工同时进行加工, 那么负载均衡就是根据每个员工的工作情况给他分配新的零件进行加工,有的员工可能会感冒,或者能力上有问题, 那么给这个人的零件就少一些, 正常员工就给的多一些。
反向代理:还是上面的例子,加工一个零件可能会分步骤,A部门负责组装,B部门负责安装螺丝,那么反向代理就是根据当前这个零件的状态去选择,是应该去组装?还是去安装螺丝。
顺便在这里说一下,我目前是在职Java开发,如果在学习Java的过程当中有遇见任何关于学习方法,学习路线等方面的问题,你都可以点击 加入 Java技术讨论组,这里面聚集了很多正在学习Java技术的初学者,也有不少从事Java开发岗的大佬,与Java相关的问题都可以随时发出来讨论。
这些技术是用Java做一个网站最基本要懂的东西,其余的还有更多更多的知识,所以有的人说,做一个Java程序猿算是一个最全能的程序猿了,基本上啥都得会,而这些东西仅仅是基础,想要自己变得更加强大,还得继续的,不断的去学习,学到老、活到老~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值