JavaWeb项目学习教程(1) 准备阶段
写在最前面
为什么要写一个这样的教程?作为一个软件工程专业的学生,上课老师讲得飞快,几乎都是在课后自己消化,我知道学习记录的重要性。我自己本身还有很多很多基础的东西都没有学会,比较博客园的人有很大的差距。而写这个不是要求看的人都遵守我的想法,即使这个教程不会讲多大的概念方面的东西,但也希望你能够在里面学习到一些自己觉得有用的东西,学到一些思维和想法就好了。希望我写的哪些地方有错误的能够指正,谢谢。
我们想用的包括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) 准备阶段的更多相关文章
- JavaWeb项目学习教程(2) 系统数据库设计
最开始本来想写一个管理系统,因为考虑到期末来临,我女朋友就可以看着教程然后学一些东西,然后可以自己慢慢手敲代码.但无奈自己也太懒,两个月过后,我才开始继续写这个博客,而现在我都已经开学了.不过博客还是 ...
- Linux服务器部署JavaWeb项目完整教程
本文大部分参考网上其他教程,是实际操作后回过头来的一些总结,希望可以对正在部署项目的你有所帮助. 基本环境:Centos7.tomcat8.jdk8,MySQL5.6.nginx 安装JDK yum ...
- 从javaweb项目学习
1.sql语句 在insert语句中需要插入查询出来的值. Insert into a (a1,a2,a3) values (1,select num from b where id=1,3) 这样写 ...
- redhat7学习笔记之从零到部署javaweb项目
REDHAT7学习笔记 1. 安装vmware10 安装过程略,下载地址:链接: https://pan.baidu.com/s/16odKKkRYBxGWDVo1cz_wxA 注意,10以上版本不在 ...
- Github点赞超多的Spring Boot学习教程+实战项目推荐!
Github点赞接近 100k 的Spring Boot学习教程+实战项目推荐! 很明显的一个现象,除了一些老项目,现在 Java 后端项目基本都是基于 Spring Boot 进行开发,毕竟它这 ...
- maven学习(八)——使用maven创建javaweb项目
构建JavaWeb项目 1.创建JavaWeb项目 1.使用mvn archetype:generate命令,如下所示: mvn archetype:generate -DgroupId=com.my ...
- IDEA实用教程(八)—— 创建JavaWeb项目
七. 创建JavaWeb项目 创建工程 1) 第一步 2) 第二步 3) 第三步 如果要修改JavaEE版本,请根据下图所示进行修改 4) 第四步 2. 发布工程 1) 第一步 2) 第二步 3) 第 ...
- 《从零玩转JavaWeb+项目实战》-系列课堂录制计划
点击试听课程 前言 很多自学编程的同学经常和我说想学一门语言自己到网上找一些教程看到一半就像背单词背到ambulance一样坚持不下去了....究其原因基本上都是:内容太多,太枯燥,专业术语听不懂,学 ...
- JavaWeb项目之多条件过滤
相信很多同学在学习java基础之后,面对各种项目还是相当头疼,那今天我将手把手教你学会JavaWeb项目中的多条件过滤,希望你能在与我实战的过程中积累经验,更进一步. 分页查询 需求分析:在列表页面中 ...
随机推荐
- [python]pip 版本9.0.1升级到10.0.1故障解决办法
问题背景: 在做android自动化时使用到第三方库uiautomator时,提示要安装,但安装该uiautomator库时提示当前的pip版本偏低,需要安装10.0.1版本方可.但在升级到升级到该版 ...
- spa(单页面应用)的优缺点[转]
优点:spa(单页面应用)1.用户体验好.快,内容的改变不需要重新加载整个页面,避免了不必要的跳转和重复渲染.2.基于上面一点,SPA相对对服务器压力小.缺点:1: seo 不利于搜索引擎优化2: 初 ...
- python第二十九课——文件读写(读取数据操作)
演示读取数据操作:path=r'a.txt' 1.打开文件f1=open(path,'r') 2.读取数据content1=f1.read(3)print(content1) content1=f1. ...
- 编程算法 - 左旋转字符串 代码(C)
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u012515223/article/details/37689725 左旋转字符串 代码(C) 本文 ...
- win10怎么更改切换输入法按键 切换输入法与Win7一样(Ctrl + 空格)
找到电脑左下角的“开始"图标,用鼠标右键点击它,在弹出的菜单选项里再用鼠标左键点击“设置”来打开Windows设置. 进入“Windows设置”后再点击“设备” 打开“设备”界面后再点击左边 ...
- WorldWind源码剖析系列:四元数类Quaternion
PluginSDK中的Quaternion4d类可能是感觉Microsoft.DirectX. Quaternion类不太实用或不够用,自己有重新写的. 四元数是英国数学家哈密顿(W.R.Hamilt ...
- PAT B1007 素数对猜想 (20 分)
让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数.显然有d1=1,且对于n>1有dn是偶数.“素数对猜想”认为“存在无穷多对相邻且差为2的素 ...
- JAVA框架 Spring 约束配置本地资源
一:粘贴约束url:http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.or ...
- Python 函数(一)
Python3 函数(基本概念) 1.概念: 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段:通过函数,可以对特定功能的代码进行封装,实现代码的复用. 2. 5.参数传递 (1) P ...
- 6-51单片机ESP8266学习-AT指令(8266TCP服务器--做自己的AndroidTCP客户端发信息给单片机控制小灯的亮灭)
http://www.cnblogs.com/yangfengwu/p/8776712.html 先把源码和资料链接放到这里 链接: https://pan.baidu.com/s/1jpHZjW_7 ...