问题:如何用java开发一个网站?

下载了最新的JDK软件、最新的Eclipse、数据库mysql以及tomcat、struts但是不知道怎么连接起来,在数据库连接的时候mysql-connector-java-5.1.44中没有Driver.jar,tomcat配置环境的时候也有问题,tomcat plugin没有和最新的JDK配套的怎么办?

看了问题,我建议题主还是好好先学一轮基础的东西。

基于问题我简单提几点:

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

感觉题主是没有完整走过一篇Java的知识就开始写项目了,这里我贴一下我觉得Java学习比较好的路线
前言

来聊聊如何学习Java,Java的学习路线是怎么样的

提前预警:本文适合Java新手阅读(老手可在评论区给下建议),希望大家看完能有所收获。

一、为什么我要写下这篇文章

1.1直接缘由:

有个同学给我发微信找我
同学:能不能给他一个网页他改一下,他想参考一下,然后用于做毕业设计。3y:可以啊,你的题目是什么啊?想用Java来写吗?同学:对啊,我现在在学Java呢(ps:之前跟该同学聊天的时候"我看着这些代码就头晕,我对电脑真不感兴趣"…真香!)随后这个同学发了一个小视频过来,说自己在学Java。我看了一下:大概是在练习&^|这些操作符。

最后,我告诉这同学:“你去找视频看吧,你现在学这些对你的毕业设计没有什么帮助的啊”。然后让他去B站找视频看了

ps:我并不是说学&^|这些运算符是没用的,但如果单纯是想自己用Java来写毕业设计的话,这些知识点应该是用不上的。

1.2间接缘由:

自身经历:

我学习Java也是自学的,在大学期间也是一直一个人在学(身边的同学可能家里有矿)。即便我在学习的时候也去搜了不少的意见,例如在知乎上找,,<给刚开始学Java的年轻人一些建议>等等类似的话题,但是现在回过头来看,我还是走了不少的"弯路"了。

比如说,当时我花了蛮多的精力去学JSP,最后整理成博客发到网上去。网友的评论:

“不玩 JSP 十几年了“。“jsp不是老掉牙的技术吗”。“看这个有一种穿越的感觉……码了6w多字,看着就心疼……”。“这十年前的技术都被挖出来了?”“刚毕业时写过好几个自定义标签,那时候感觉好有成就感,但是现在,用于view的jsp,似乎有点过时了,view一般用【模板】或者【完全静态 + ajax + json】了”

嗯…那篇文章我当时在2018.02.07发布。我学JSP的时候是在2017年初吧,其实在2017年JSP也已经是落后的技术了,但我还是花了不少的时间去学习JSP的各种用法(自定义标签,JSTL,EL表达式等等)。

网友们其实说得都没有毛病,对我来说:在2017年花了不少时间去学如何使用JSP(过期的技术),这就是我认为的弯路。

ps:在2020年花点时间了解JSP是没毛病的,但深入学习的话是没必要的。

"弯路"说明:如果你有充裕的时间,怎么学都不是事,毕竟你是真真正正地在学编程。只要在学编程,就不是弯路,最怕你不学。

以这篇文章回复我部分的读者:

写博客以来,还是有部分读者是零基础学Java的,有转行的、也有年轻的师弟师妹的。一般他们也问我应该怎么学Java比较好,学习Java的路线应该是怎么样的。

emmmm,我一般都是比较简单的回复一下:让他们多做笔记啊,接下来应该花时间学什么,不学什么…就完了…

所以,写完这篇文章,遇到再问我如何学习Java的时候,我直接发个链接就完事了(懒人必备)…

1.3目的

如果你:

想要用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并理解力不是爆棚的话,我建议以视频学习为主。

可能你会看到这样类似的言论:

“看视频学习太慢了”“直接看源码啊,源码就是最好的解释”“有问题直接Google啊,用什么百度”“最好的资料是官网文档”…

但是,那都是对有经验的人或者高智商的人群来讲的。

如果是零基础普通人,看视频学习/看不懂源码/用百度/看中文博客来学习不丢人。

ps:如果看的视频讲师的语速不是特别快,建议以1.5或者1.75倍速观看。

2.1关于视频资源

我在学习Java的时候也收集了很多的视频资源,并不是每个都有看过。只是在混群的时候发现有人发了,就复制下来整理一下罢了。

其他的视频资源:

B站:(http://bilibili.com)一个神奇的网站。如果你想看哪个视频,可以先搜一下B站有没有。慕课网:(http://imooc.com)里头也有挺多的视频资源。公众号/混qq群/微信群:不少人手里都有几t的资源,如果跟群友的关系不错,一般都会免费给你发的…

2.2学习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.3学习Java Web基础

首先我们可以学习一下Web前端的知识(此部分都简单过一下就好了)

HTML/CSS/JavaScript/jQueryCSS框架(都有中文手册,很快就上手了,选一个自己喜欢的就好了):
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.4学习数据库

数据库这里指的是关系型数据库,一般我们以MySQL来入门就足够了。

在学习期间,其实很多时间都耗费在配置环境上面,比如我之前安装JDK,安装MySQL,安装Oracle就耗费了不少时间。后来我也将其写成博客,需要重新安装的时候翻一下博客就好了。

比如MySQL安装教程:https://segmentfault.com/a/1190000013530782

主要学习SQL的基本使用吧:

创建表(create table)增删改查(insert,delete,update,select)对于存储过程、触发器这些了解一下即可对于索引、锁后面再学(此部分很重要,但以快速入门来说,可以先不看)

2.5学习Java连接数据库(JDBC)

到这里,我们Java Web、数据库、Web前端的基础都已经基本学完了,但此时Java和数据库是相互独立的。我们想要以程序的方式来对数据库的数据进行操作,那就要学习一下Java连接数据库(JDBC)。

JDBC这项技术并不难呀,就是模板代码,来来去去就几个步骤:

导入MySQL或者Oracle驱动包装载数据库驱动程序获取到与数据库连接获取可以执行SQL语句的对象执行SQL语句关闭连接

由于这些代码可能会重复出现,那我们可以学习一下DbUtils这个组件:可以帮我们减少编写JDBC的模板代码。

2.6项目管理和框架的学习

经过上面的学习,已经是可以在本地写一个Web项目了。

页面框架使用BootStrap/Materialize框架来搭好请求处理交由Servlet,返回的数据可以通过AJAX或者使用JSP,DAO层可以使用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–>SpringBootLinux基本命令

最后我们的项目是这样的:

以Maven来管理我们的项目前端通过BootStrap来搭建页面框架SpringBoot来搭建Java后端环境,SpringMVC处理前端请求(SpringBoot整合了)DAO层使用DbUtils组件来完成,MySQL作为数据库

当然了,我的Java路线不一定就是对的,我这里只是给出一种路线。

再次说明:这套路线是以“快速”学习Java的,如果你想要找到一份好工作,上面的知识点是不够的!

涵盖Java后端所有知识点的开源项目(已有6K+ star):https://github.com/ZhongFuCheng3y/3y

转载的知乎原文链接:https://www.zhihu.com/question/65076779/answer/1133345195

如何用java开发一个网站?相关推荐

  1. 用java和mysql开发网站怎么实现_如何用java开发一个网站?

    java语言和类库:java语言是支持整个java技术的底层基础,java类库是随java语言 Java 运行系统:主要指java虚拟机,负责将java与平台无关的中间代码翻译成本机的 Java ap ...

  2. 如何用java做一个网站

    小学期实践项目要求做一个网站,苦于无从下手,在网上找到了学习教程.当然网上教程很多,下面给大家推荐一个学习网址: JAVA WEB 项目教程-模仿天猫整站 J2EE版本项目没有使用SSH,SSM框架, ...

  3. php做网站步骤_新手如何用PHP开发一个完整的网站?

    1.PHPer应具备的知识 (1)PHP知识: 熟练掌握基础函数,PHP语句(条件.循环),数组(排序.读取),函数(内部 构造),运算(数学 逻辑),面向对象(继承 接口 封装 多态静态属性)等. ...

  4. 如何用Java写一个斗地主(一)

    如何用Java写一个斗地主(一) 序言 正文 创建卡牌 打乱牌序 发牌 课后吐槽 序言 作为一名大三的普普通通大学生,被实习老师(?)强迫下,第一次开始写CSDN的博客,如果写的不好,请多多包涵咯. ...

  5. 面试题之如何用Java设计一个自动售货机

    如何用Java设计一个自动售货机程序是一个非常好的Java面试题.大多数情况会在面试比较senior的Java开发者的时候出现.在一个典型的代码面试中,你需要在一定的时间内根据对应的条件完成相关的代码 ...

  6. 如何用Java设计一个简单的窗口界面(学习中.1)

    如何用Java设计一个简单的窗口界面 一.前言 二.简单了解 1.Swing简介 2.框架(frame) 3.层次 三.步骤 1.打开eclipse,依次创建项目,包,类. 2.代码 2.1最简单的可 ...

  7. [html] 你觉得新开发一个网站最困难的是哪些部分?

    [html] 你觉得新开发一个网站最困难的是哪些部分? 提高网站安全性,比如网站有论坛方面的功能,那需要保证不让黑客通过拦截请求信息,发起对论坛信息的破解.在比如DDOS 攻击 个人简介 我是歌谣,欢 ...

  8. java开发一个简单的通讯录

    java开发一个简单的通讯录 ArrayList的综合应用 import java.util.*; public class ContactNote{static Scanner sc=new Sca ...

  9. 如何用java写一个年日历

    如何用java写一个年日历 没啥难的,话不多说上代码

最新文章

  1. 重写 equals 方法就一定要重写 hashCode 方法?其实有个前提
  2. UE4 Material Properties
  3. 无法定位程序输入点WSAPoll于动态链接库WS2-32.DLL
  4. Cockos REAPER 6 for Mac - 热门数字音频制作软件
  5. 暑假前挑战赛1—— A,B题解
  6. 加减乘除求余 利用 位运算实现(详细)
  7. 如何给word文档添加注释
  8. 2022广东省安全员A证第三批(主要负责人)考试题库及答案
  9. 手机上微信总是说无法连接服务器错误代码,微信登录失败怎么办|微信登录失败常见提示及处理方法...
  10. Codeforces 1485D - Multiples and Power Differences (构造)
  11. Spring Data ElasticSearch analyzer 定义 @Filed失效 @Mapping失效 创建索引 无效 解决办法 ElasticsearchRestTemplate
  12. 中国互联网公司应该从雅虎的衰落中学到什么?
  13. 蓝宇数码冲刺深交所:年营收2.72亿 郭振荣控制45%股权
  14. SAP UI5 应用开发教程之七十九 - 采用测试驱动开发理念(Test Driven Development)进行 SAP UI5 应用的功能开发(一)的试读版
  15. 大模型多模态Chatgpt+自动驾驶控制器设计方案
  16. HTML5基础资源分享
  17. Android 开放配件协议 1.0
  18. 动态网页和静态网页的区别
  19. MODIS数据_从获取到应用
  20. 算法 algorithms

热门文章

  1. mdf ldf 导入 mysql_mdf和ldf导入数据库
  2. 从材料硕士到算法工程师的转行之路
  3. 电子书籍下载大汇总,超级经典,超级汇总!
  4. python画图小猪佩奇_python绘图 -- 小猪佩奇源码分享
  5. 【蓝桥杯国赛真题23】Scratch恐龙跑酷 第十三届蓝桥杯 图形化编程scratch国赛真题和答案讲解
  6. 仅当和当且仅当的区别
  7. 【归档】证明V的两个子空间的并是V的子空间当且仅当其中一个子空间包含另一个子空间
  8. 没钱看病?别怕,有医保!
  9. 数据仓库之【用户行为数仓】11:【dws层:数据汇总层】【appc层:数据应用层】需求4:每日启动App次数相关指标
  10. 飞客茶馆-常旅客互助社区 - 飞客茶馆旅行网