写在最前面

  为什么要写一个这样的教程?作为一个软件工程专业的学生,上课老师讲得飞快,几乎都是在课后自己消化,我知道学习记录的重要性。我自己本身还有很多很多基础的东西都没有学会,比较博客园的人有很大的差距。而写这个不是要求看的人都遵守我的想法,即使这个教程不会讲多大的概念方面的东西,但也希望你能够在里面学习到一些自己觉得有用的东西,学到一些思维和想法就好了。希望我写的哪些地方有错误的能够指正,谢谢。

  我们想用的包括JSP、Servlet、MySql、Tomcat、。当然,前端的“三驾马车”就是更基础的东西了。要知道这些东西。

  我的HTTP协议还不算熟悉,大家可以看这个文章学习。http://www.cnblogs.com/ranyonsue/p/5984001.html

一、JSP

  JSP的教程在菜鸟教程W3School上看,JSP可以写HTML代码,也可以在<% %>中写代码。然后和Servlet两者结合起来使用的话,效率很高,而且JSP写的前端代码灵活性很强,当然这里只会说纯JSP和Servlet了,不考虑Vue和AngularJS等这些框架。

  我们看一个普通的例子,抛开JSP的已经给我们做好的循环<c:forEach>标签。

  假设我们要循环显示很多用户的信息,我们用<table></table>来表示,假设已经获取到ArrayList<User> users;

<table>
<%
for(int i = 0; i < users.size(); i++){
%>
<tr>
<td><%=users.get(i).username() %></td>
<td><%=users.get(i).password() %></td>
</tr>
<%
}
%>
</table>

  这样,一个users就能够动态的一行一行的显示用户名和密码的信息。这就是结合起来用带来的优势,总而言之,JSP就是HTML文件,只是可以写Java进去。

二、Servlet

  说实话,最开始学习Servlet和JSP的那会儿进了实验室,学习的几乎没有懂,那会儿大一,有很多东西都不了解,后来记得检查的时候,我也是写了一个漂漂亮亮的HTML的界面,然后实现的功能基本没实现,处理业务等的信息全部都在JSP中实现了。实在惭愧,后来做项目的时候,慢慢地才把这些学到了。

  那什么是Servlet呢?如果想很深的了解的话就多看博客,然后看看他们的讲解就好了。这里我的解释就是Servlet就是一种中间的东西,当我们需要把自己本地的服务器和Web浏览器相连接的时候,Servlet就起作用了。同时,我们最常用的就是Servlet获取form表单所传递过来的数据。

  举个例子,我们想要实现登陆功能,首先从JSP中传入用户名和密码,然后再在Servlet中进行处理。为什么要在Servlet中处理呢?其实可以选择在JSP中直接获取很多很多信息的,但是HTML代码始终时HTML代码,插入HTML不仅仅会影响效率,还给程序员在修改和维护代码的时候找麻烦。

<form action="Login" method="post">
<input type="text" name="username" />
<input type="text" name="password" />
<input type="submit" value="login" />
</form>

  比如这个,使用的时候,在action中填写路由的地址,这里指向Login的Servlet。method="post"则是以Post方法向Servlet传递。这里一般采取Post或者Get方法,两者有什么区别呢?假设我们填入用户名:admin 密码:admin。

  Get:http://localhost:8080/项目名称/Login?username=admin&password=admin

  Post: http://localhost:8080/项目名称/Login

  不难发现,Get和Post的差别是很大的,至少在路由上,Get将用户名和密码都显示了,这是很不安全的,Post则不显示,所以这里采用Post更加可靠。当然,Get和Post不仅仅只是显示不显示的不同,它们在请求的大小也是不一样的。

三、MySql

  数据库,很多人都在说数据库数据库,数据库是什么呢?MySql就是一种数据库,它是关系型数据库,简单来说,两个表之间想产生联系的话,是通过字段之间的关系。人的一生要产生很多数据,但我们不会把所有的信息都保存在一张很大很大的表里面,这样速度会极大降低......于是我们把一些信息建在多个表里面,两个表通过一个相同的字段进行联系,这样两个表就有关系了。和结婚一样的,两个人本身没有什么联系,是属于两个户口本上的,而假如放在一个户口本上,就是一家人了是吧。

  那我们需要知道MySql的什么呢?学会怎么使用和书写Sql语句,并且分清楚,MySql和Navicat之间有什么区别,又有什么联系。如何书写MySql语句,这些都是最基础的,我只需要讲怎么构建一个简单的项目好啦。

  如果我们安装了MySql,那我们就有了可以操作的数据库了。我们可以在下载好的MySql的控制台增删改查,当然如果每次都仅仅是使用命令行进行操作的话,至少我是觉得有些难受的。于是就想,怎么样才能让MySql的数据显示的更加直观,更好操作呢?于是Navicat就来了,它帮我们简化了管理数据库的操作。所以,Navicat不是数据库,它仅仅是管理数据库的一个工具,它帮助我们直观的看到数据库的内容和图形化界面,而严格来说,不使用Navicat项目一样可以链接数据库。他们之间的关系,就如同Linux系统和Linux的图形化界面,要的就是方便。

四、Tomcat

  我们必须要它,不然我们不能运行项目!Tomcat可谓是Servlet和JSP项目最漂亮的Web服务器了。我们需要将项目显示在浏览器上,所以Tomcat就可以把我们的项目装在里面,然后运行起来,发布到自己电脑的本地服务器上,这样我们就可以直接直观的看到自己所写的内容了。

五、总结

  学会使用这些,就很好了。

  当然,有时候最开始还是很懵而搞不清他们之间的关系,要想构建一个简单的项目,他们缺一不可。JSP和Servlet就是要写的代码,MySql就是要用的数据库,Tomcat就是把我们的项目发布的东西。如果准备好了开始做一个小的项目,调试好了所有的配置,就再看接下来的一篇文章就好了。

  

JavaWeb项目学习教程(1) 准备阶段的更多相关文章

  1. JavaWeb项目学习教程(2) 系统数据库设计

    最开始本来想写一个管理系统,因为考虑到期末来临,我女朋友就可以看着教程然后学一些东西,然后可以自己慢慢手敲代码.但无奈自己也太懒,两个月过后,我才开始继续写这个博客,而现在我都已经开学了.不过博客还是 ...

  2. Linux服务器部署JavaWeb项目完整教程

    本文大部分参考网上其他教程,是实际操作后回过头来的一些总结,希望可以对正在部署项目的你有所帮助. 基本环境:Centos7.tomcat8.jdk8,MySQL5.6.nginx 安装JDK yum ...

  3. 从javaweb项目学习

    1.sql语句 在insert语句中需要插入查询出来的值. Insert into a (a1,a2,a3) values (1,select num from b where id=1,3) 这样写 ...

  4. redhat7学习笔记之从零到部署javaweb项目

    REDHAT7学习笔记 1. 安装vmware10 安装过程略,下载地址:链接: https://pan.baidu.com/s/16odKKkRYBxGWDVo1cz_wxA 注意,10以上版本不在 ...

  5. Github点赞超多的Spring Boot学习教程+实战项目推荐!

    Github点赞接近 100k 的Spring Boot学习教程+实战项目推荐!   很明显的一个现象,除了一些老项目,现在 Java 后端项目基本都是基于 Spring Boot 进行开发,毕竟它这 ...

  6. maven学习(八)——使用maven创建javaweb项目

    构建JavaWeb项目 1.创建JavaWeb项目 1.使用mvn archetype:generate命令,如下所示: mvn archetype:generate -DgroupId=com.my ...

  7. IDEA实用教程(八)—— 创建JavaWeb项目

    七. 创建JavaWeb项目 创建工程 1) 第一步 2) 第二步 3) 第三步 如果要修改JavaEE版本,请根据下图所示进行修改 4) 第四步 2. 发布工程 1) 第一步 2) 第二步 3) 第 ...

  8. 《从零玩转JavaWeb+项目实战》-系列课堂录制计划

    点击试听课程 前言 很多自学编程的同学经常和我说想学一门语言自己到网上找一些教程看到一半就像背单词背到ambulance一样坚持不下去了....究其原因基本上都是:内容太多,太枯燥,专业术语听不懂,学 ...

  9. JavaWeb项目之多条件过滤

    相信很多同学在学习java基础之后,面对各种项目还是相当头疼,那今天我将手把手教你学会JavaWeb项目中的多条件过滤,希望你能在与我实战的过程中积累经验,更进一步. 分页查询 需求分析:在列表页面中 ...

随机推荐

  1. MySQL 支持utf8mb4

    utf8mb4 utf8mb3 utf8 Refer to The utf8mb4 Character Set The utf8 Character Set (Alias for utf8mb3) M ...

  2. Spring Cloud 子项目介绍

    Spring Cloud由以下子项目组成. Spring Cloud Config 配置中心——利用git来集中管理程序的配置. 项目地址:https://spring.io/projects/spr ...

  3. [Spark Core] Spark 使用第三方 Jar 包的方式

    0. 说明 Spark 下运行job,使用第三方 Jar 包的 3 种方式. 1. 方式一 将第三方 Jar 包分发到所有的 spark/jars 目录下 2. 方式二 将第三方 Jar 打散,和我们 ...

  4. 第六次作业 orm整合 接口

    结合以前一个项目,将普通的jdbc进行了相关整合,全部改写成了hibernate接口 项目名称:短视频分享平台 主要功能:用户模块:注册.登录.编辑资料.查看用户相关 分类模块:分类添加.查看 视频共 ...

  5. Linux运维之——每日小技巧,使用awk命令截取每行的指定列数据

    获取/etc/passwd目录下的UID值小于10的数,并输出第一.三列 [root@:vg_adn_tidbCkhsTest:172.31.30.62 ~]#cat /etc/passwd | aw ...

  6. KMS服务器软件-windows/OpenWRT-X64版

    软件项目: https://github.com/Wind4/vlmcsd windows版kms服务器 https://files.cnblogs.com/files/SilenceRet/vlmc ...

  7. 团队-UML

    UML设计 分工 刘双玉 李佳铭 杜宏庆 肖小强 汪志彬 江郑 符天愉 邓弘立 后台数据库 求购模块 浏览检索商品 即时聊天系统 商品管理 管理员系统 后台商品发布收藏系统 登录注册与个人信息系统 U ...

  8. 【Ansible 文档】配置

    http://docs.ansible.com/ansible/latest/intro_configuration.html http://docs.ansible.com/ansible/late ...

  9. 分享-结合demo讲解JS引擎工作原理

    代码如下: var x = 1; function A(y){ var x = 2; function B(z){ console.log(x+y+z); } return B; } var C = ...

  10. Android Bitmap Drawable byte[] InputStream 相互转换方法

    用android处理图片的时候,由于得到的资源不一样,所以经常要在各种格式中相互转化,以下介绍了 Bitmap Drawable byte[] InputStream 之间的转换方法: import ...