如何用java开发一个网站?

问题:如何用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

提供典型应用案例,剖析JSP/Servret技术与Struts 2技术在Web开发中的不同 提供完整的应用案例,使读者可以深入体会SSH开发模式的精髓 所有开发工具和框架均使用目前的最新版本,紧跟技术发展的趋势 提供230个实例和4个综合案例,可以作为案头必备的查询手册 一线开发人员全力打造,分享技术盛宴! 重点内容及特色 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》介绍了Web开发中客户端技术的基础知识,包括JavaScript、CSS、AJAX等,这些技术都是Web应用中常用的客户端技术。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax+》讲解了JSP/S rvlet技术的基础知识,并提供了一个综合案例展示其具体应用,它们是Java Web服务端技术的基石,也是学习Java Web开发所要必须掌握的技术。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》重点讲解了Struts 2、Speing和HIbernate框架的基础知识和高级技术,如Sruts 2中的*、类型转换、国际化和标签等,HIbe rna{e的会话、0/R映射和事务管理等,Spring中的数据库技术与AOP等。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》特别介绍了Struts 2对AjAX的支持,还重点剖析了SSH框架的整合开发,并给出了两个综合案例来展示整合SSH框架开发Web应用。 和已经出版的同类图书相比,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》讲解由浅入深,涵盖更多内容,列举了大量典型实例具有超强的实用性,另外,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》各篇独立,适合读者全面学习或对部分内容重点学习。 读者对象 有Java基础,想进一步学习SSH框架整合开发的人员 了解SSH整合开发,想进一步提高开发技术的人员 正在使用SSH整合技术开发项目,想查阅资料的人员 大中专院校的学生和老师,以及Java培训班的学员和讲师 需要一本案头必备查询手册的程序员 光盘内容 6小时多媒体体视频讲解 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》所涉及的源代码 布衣暖,菜根香,好书滋味长!清华大学出版社长期以来一直秉承为读者多出好书的宗旨,多年来为读者奉献了大量脍炙人口的精品图书。尤其在计算机图书出版领域更是形成了鲜明特色,所出版的各类计算机图书受到了广大读者的好评。本次出版的“原创经典,程序员典藏”系列图书是清华大学出版社的重点精品计算机图书,旨在帮助读者全面学习各类程序设计语言和开发工具,提高开发水平。同时也为广大程序员提供良好的技术参考,以便作为案头必备的查询手册。 内容提要 -------------------------------------------------------------------------------- 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》通过对SSH中的各种技术循序渐进地讲解,使读者尽快掌握开发基于SSH的Web程序的方法。《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》内容包括Web客户端技术、JSP/Servlet技术、Struts 2(*、类型转换、输入校验、上传和下载文件、Struts 2的各种标签、对 AJAX的支持等)、Spring(Ioc容器、装配Java Bean、Jdbc和Hibernate模板、事务管理、Spring AOP等)以及 Hibernate(会话、映射、标准查询API、HQL、事务管理、锁等)。除此之外,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》还提供了两个完整的实例来讲解开发SSH的详细步骤和方法。通过对这两个实例的学习,读者可以对SSH开发模式有更透彻地理解和认识。SSH是目前最流行的Java Web开发技术。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》适合广大从事Java Web开发工作的技术人员、对SSH开发感兴趣的人员以及大专院校学生阅读,尤其是具有一定的Web开发经验的技术人员。 目录 -------------------------------------------------------------------------------- 第1篇 web开发基础篇 第1章 搭建开发环境 1.1 本书使用的软件和框架的版本 1.2 JDK6的下载与安装 1.3 Eclipse3.4 的下载与安装 1.4 MyEclipse6.5 的下载与安装 1.5 Eclipse:IDEforJavaEEDevelopers的下载与安装 1.6 Tomcat6的下载与安装 1.7 在MyEclipse中配置。Tomcat 1.8 在EclipseIDEforJavaEEDevelopers中配置Tomcat 1.9 小结 第2章 JavaWeb应用开发基础 2.1 Web技术的发展 2.2 JavaWeb技术 2.2.1 Java.Welb程序的基本组成 2.2.2 Java,Web程序的目录结构 2.2.3 JavaWeb程序的配置文件 2.3 MVC模式与MvC框架 2.3.1 JSP模型1和JSP模型2 2.3.2 Web应用程序需要的基础服务 2.3.3 MVC模式概述 2.3.4 常用的MvC框架 2.4 小结 第3章 Web开发中的客户端技术 3.1 常用的JavaScriptIDE简介 3.1.1 在MyEclipse中使用JavaScript 3.1.2 在EclipseIDEforJavaEE中使用JavaScript 3.1.3 在NetBeans中使用JavaScript 3.1.4 其他的JavaScriptIDE 3.2.1 avaScdpt语法基础 3.2.1 实例:编写第一个JavaScript程序:Greet 3.2.2 变量 3.2.3 原始类型 3.2.4 类型转换 3.2.5 函数与函数调用 3.2.6 类和对象 3.3 JavaScript高级技术 3.3.1 DOM技术概述 3.3.2 获得HTML元素的3种方法 3.3.3 实例:图像自动切换 3.3.4 正则表达式 3.3.5 实例:表格排序 3.4 CSS基础 3.4.1 CSS的基本语法 3.4.2 在Style属性中定义样式 3.4.3 在HTML中定义样式 3.4.4 在外部文件中定义样式 3.4.5 样式的继承 3.5 AJAX.基础 3.5.1 AJAX概述 3.5.2 实例:使用XMLHttpRequest获得Web资源 3.5.3 实例:使用XMLHttpRequest跨域访问Web资源 3.5.4 实例:AJAX的3种交换数据方法 3.6 小结 第4章 Servlet技术 4.1 Servlet的Helloworld程序 4.1.1 实例:在My Eclipse中编写Helloworld程序 4.1.2 实例:手工编写:Helloworld程序 4.2 Servlet基础 4.2.1 配置数据库连接池 4.2.2 数据库连接池的应用 4.2 -3实例:用doGet方法处理客户端请求 4.2.4 实例:用doPost方法处理客户端请求 4.2.5 实例:用service方法处理客户端请求 4.2.6 实例:初始化(init)和销毁(destroy)Servlet 4.2.7 实例:使用PrintWriter输出响应消息 4.2.8 实例:用ServletOutputStream显示图像 4.2.9 实例:使用RequestDispatcher包含Web资源 4.2.10 实例:使用RequestDispatcher转发Web资源 4.3 HttpServletResponse类的其他功能 4.3.1 产生状态响应码 4.3.2 设置响应消息头 4.3.3 实例:验证响应头设置情况 4.4 使用:HttpServletRequest获得请求消息 4.4.1 获取请求行消息 4.4.2 获取网络连接消息 4.4.3 获取请求头消息 4.5 处理Cookie 4.5.1 什么是Cookie 4.5.2 Cookie类中的方法 4.5.3 实例:用Cookie读写客户端信息 4.5.4 实例:用Cookie读写复杂数据 4.6 处理Session 4.6.1 什么是Session 4.6.2 HttpSession接口中的方法 4.6.3 HttpServletRequest接口中的Session方法 4.6.4 实例:通过Cookie跟踪Session 4.6.5 实例:通过重写uRL跟踪Session 4.7 Web开发的中文问题 4.7.1 Java的编码原理 4.7.2 实例:解决输出中文乱码问题 4.7.3 实例:解决服务端程序读取中文请求消息的乱码问题 4.7.4 实例:用AJAX技术发送和接收中文信息 4.7.5 实例:在请求消息头和响应消息头中转输中文 4.8 小结 第5章 JSP技术 5.1 用MyEclipse编写第一个JSP程序 5.1.1 实例:编写显示服务器当前时间的JSP程序 5.1.2 调试JSP程序 5.1.3 改变JSP的访问路径和扩展名 5.1.4 手动发布JSP程序 5.2 JSP的运行原理 5.2.1 Tomcat如何处理JSP页 5.2.2 分析由JSP生成的Servlet代码 5.3 JSP基本语法 5.3.1 JSP表达式 5.3.2 在JSP中嵌入Java代码 5.3.3.JSP声明 5.3.4.JSP表达式语言(EL) 5.3.5 实例:用EL函数替换HTML中的特殊字符 5.3.6 JSP页面中的注释 5.4 JSP指令 5.4.1 JSP指令简介 5.4.2 page页面指令 5.4.3 include加入指令 5.5.JSP的9个内置对象 5.5.1 out输出对象 5.5.2 pageContext封装对象 5.5.3 其他的JSP内置对象 5.6 JSP标签 5.6.1 插入标签 5.6.2 转发标签 5.6.3 传参标签 5.6.4 创建:Bean标签 5.6.5 设置属性值标签 5.6.6 获取属性值标签 5.7 JSP的标准标签库(JSTL) 5.7.1 如何使用JSTL 5.7.2 条件标签 5.7.3 循环标签 5.8 小结 第6章 用Servlet和JSP实现注册登录系统 第2篇 Struts 2篇 第7章 编写Struts 2的第一个程序 第8章 Struts 2进阶 第9章 Struts 2的* 第10章 Struts 2的类型转换 第11章 Struts 2的输入校验 第12章 文件的上传和下载 第13章 国际化 第14章 Struts 2的标签库 第15章 Struts 2对AJAX的支持 第16章 用Struts 2实现注册登录系统 第3篇 Hibernate篇 第17章 Hibernate的Helloworld程序 第18章 配置Hibernate 第19章 Hibernate的会话与O/R映射 第20章 Hibernate的查询与更新技术 第21章 Hibernate的高级技术 第4篇 Spring篇 第22章 Spring的Helloworld程序 第23章 反向控制(Ioc)与装配JavaBean 第24章 Spring中的数据库技术 第25章 Spring的其他高级技术 第5篇 综合实例篇 第26章 Struts 2与Hibernate、Spring的整合 第27章 网络硬盘 第28章 论坛系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值