Java Web 从入门到"改行"(1)--基础准备

1. 背景

首先,说明一下,这是一篇关于 Java Web 基础入门的文章,上学期开始学习 Java Web ,看了不少有关 「XXX从入门到精通」的书籍,近期,要帮着导师带几名本科生,所以决定总结一下以前学的 Java Web 的基础知识,毕竟不能在本科生面前丢面子嘛。

2.Web开发相关知识

2.1 静态/动态 Web 资源

Web 即表示网页的意思,他用于表示Internet主机上供外界访问的资源,该资源可以被分为两类:

1.静态Web资源:是指是实际存在的,无需经过服务器的编译,直接加载到客户浏览器上显示出来,供人们浏览的数据始终不变。例如, *.html页面。

静态Web请求过程

执行流程:

  • 浏览器中输入所要请求的资源的 URL ,发送 HTTP 请求包,经过 DNS 域名解析返回IP地址,然后进过层层 Router 等网络设备的转发,到达服务器,服务对 HTTP 包头进行解析,例如,发现 * .html 的静态文件的请求,然后读取服务器相关目录下的资源文件,返回 HTTP 响应包,浏览器接受到 * .html 文件并解析,生成 Web 视图。

特点:

  • Web 页面中的内容是不能动态更新的,所有用户任何时刻看到的页面内容都是一致的。
  • 静态 Web 页面无法连接数据库,无法和用户实现实时交互。
  • 静态 Web 页面也可以通过添加 JavaScript 实现一些动态的视觉效果,这些都是在客户端实现的,在服务器端并不发生改变。

2.动态Web资源:与静态页面不同的是,其显示的内容是在访问该页面的时候动态生成的【改变的内容主要来自于数据库中数据的改变】,并不是指页面会动。
目前,比较流行的动态网页制作技术有:ASP、PHP、JSP

动态Web请求.jpg

执行流程:

  • 动态WEB中,程序依然使用客户端和服务端,客户端依然使用浏览器(IE、FireFox等),通过网络(Network)连接到服务器上,使用HTTP协议发起请求(Request),现在的所有请求都先经过一个WEB Server Plugin(服务器插件)来处理,此插件用于区分是请求的是静态资源(.htm或者是.htm)还是动态资源。

如果WEB Server Plugin发现客户端请求的是静态资源(.htm或者是.htm),则将请求直接转交给WEB服务器,之后WEB服务器从文件系统中取出内容,发送回客户端浏览器进行解析执行。

如果WEB Server Plugin发现客户端请求的是动态资源(例如:.jsp、.asp/.aspx、.php等),则先将请求转交给WEB Container(WEB容器),在WEB Container中连接数据库,从数据库中取出数据等一系列操作后动态拼凑页面的展示内容,拼凑页面的展示内容后,把所有的展示内容交给WEB服务器,之后通过WEB服务器将内容发送回客户端浏览器进行解析执行。

注意:
所谓静态页面,是基于访问页面时网页的内容有无变化而言的,与页面的视觉效果无关,因为动态的视觉效果主要是通过JavaScript、jquery等技术实现的。

2.2 Web 服务器

  • Web服务器是指驻留于因特网上某种类型计算机的程序,是可以向发出请求的浏览器提供文档的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。
  • 服务器是一种被动程序:只有当Internet上运行在其他计算机中的浏览器发出请求时,服务器才会响应。

2.2.1 常见的 Web 服务器:

  • Tomact
    TomcatTomcat是一个实现了JAVA EE标准的最小的WEB服务器,是Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且开源免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。学习JavaWeb开发一般都使用Tomcat服务器,该服务器支持全部JSP以及Servlet规范。
    Mac 系统下是自带 Java 环境,安装Tomact服务器后,可以通过终端,进入系统中 Tomact 所在的路径:
iTerm2

如图所示,即可在本机开启 Tomact 服务器,打开浏览器,输入 127.0.0.1:8080 ,即可显示一下页面:

Tomact7
  • ** IIS **

Microsoft的Web服务器产品为Internet Information Services (IIS),IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。ⅡS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在ⅡS的平 台上。IIS提供了一个图形界面的管理工具,称为Internet信息服务管理器,可用于监视配置和控制Internet服务。

IIS

  IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。它提供ISAPI(Intranet Server API)作为扩展Web服务器功能的编程接口;同时,它还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。

3 . JSP 简介

JSP 技术是由原 SUN 公司提出,他基于 Java Servlet 技术来实现开发的动态、高性能的 Web 应用程序,JSP 的网页实质就是在 Html 的基础上按照指定的语法格式添加 Java 代码片段与 JSP 的特殊标记,然后以 .jsp 为后缀保存。 JSP 实质上也是一个HTML页面,只不过他包含用于产生动态网页内容的 Java 代码,这些 Java 代码可以是 Java Bean、SQL语句等。

3.1 JSP 的执行流程:

** JSP执行的大体流程:** 首先,客户端向 Web服务器发出请求,然后 JSP引擎负责将页面转化为 servlet,此 Servlet 经过虚拟机的编译后生成类文件,然后再将类文件加载进内存中执行,最后,由服务器将处理的结果返回给客户端。

JSP 页面会被编译成 Servlet 代码,所以从执行效率上来说,肯定没有 Servle t快,但并不是每次都需要编译,当第一次编译完成之后,JSP 引擎会缓存已经编译后的类文件,所以,当重复调用的时候,就不需要重复的编译了。

下面我从一个 Java Web 项目中找出了一个简单 JSP 源代码,先熟悉一下JSP 页面的基本组成:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="net.sf.json.JSONArray"%>
<%@include file="is_login.jsp" %>
<head>

</head>
<body>
    <table width="80%" border="0" cellpadding="4" cellspacing="1"
        bgcolor="#464646" class="newfont03" align="center">
        
        <tr bgcolor="#EEEEEE">
            <td>编号</td>
            <td>新闻标题</td>
            <td>发布日期</td>
            <td colspan="2">新闻管理</td>
            
            
        </tr>
        <%
        
        response.setContentType("text/html;charset=UTF-8");
        request.setCharacterEncoding("utf-8");
        
            if(request.getAttribute("json")!=null){
            JSONArray json = JSONArray.fromObject(request.getAttribute("json"));
            
            for (int i = 0; i < json.size(); i++) {
        %>
        <tr bgcolor="#FFFFFF">
            <td><%=json.getJSONObject(i).getInt("news_id")%></td>
            <td><%=json.getJSONObject(i).getString("news_title")%></td>
            
            <td><%=json.getJSONObject(i).getString("news_date")%></td>
            <td><a href="http://localhost:8080/iframework22/deleteNews.u?id=<%=json.getJSONObject(i).getInt("news_id")%>">删除新闻</a></td>
            <td><a href="xiugai.jsp?id=<%=json.getJSONObject(i).getInt("news_id")%>&content=<%=json.getJSONObject(i).getString("news_content")%>&title=<%=json.getJSONObject(i).getString("news_title")%>" >更新新闻</a></td>   
            
        </tr>
        <%
            }
            }
            else{
            %>
            <%="出错了" %>
         <%  }
        %> 
    </table>
</body>
</html>

从中我们可以看到,JSP 代码并不是直接写在 HTML 中的,而是写在 <% %> 中间的,与普通的 HTML 页面代码不同的是 JSP 引入了一些标签,引入了相应的类库。

Java Web 的入门基础就写到这里吧,下次有空开始写 JSP 的基础语法以及简单的实例。

感悟:
发现写文章好累人啊,御魔了一晚上才写了这么点,每次想说的总是很宏达,可是一下笔就陷入无尽的细节中,自己的写作表达能力仍需努力啊!现在是真佩服那些能够坚持写完一个系列的博主。所以,遇到用心写的文章,也许文章并不完美,但不要吝啬你的喜欢、评论奥,因为正是你喜欢、评论鞭策他们走向优秀。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 210,978评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,954评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,623评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,324评论 1 282
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,390评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,741评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,892评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,655评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,104评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,451评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,569评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,254评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,834评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,725评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,950评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,260评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,446评论 2 348

推荐阅读更多精彩内容

  • 转自陈明乾的博客,可能有一定更新。 转原文声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、...
    C86guli阅读 4,673评论 6 72
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,597评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,628评论 18 139
  • 1、你会比别人年轻 玫瑰养生酒具有美容养颜的效果,长喝此酒皮肤变得更嫩,淡化色素,使皮肤变得更加白皙和光滑,看上去...
    小岑布依之子阅读 1,052评论 0 0
  • 年初读萧公权的自传《求学谏往录》,深为先生的一句治学箴言所折服,即“放眼看书”。萧先生的所谓“放眼看书”,自有它特...
    三皮骑士阅读 332评论 0 0