• 第一章 开始编写第一个jsp


    第一章

    搭好框架,需要tomcat服务器和jdk.

    JSP是Java Server Page的缩写,现在先让我们编写一个简单的jsp页面,看看jsp究竟能干什么?

    <%=new java.util.Date()%>

    随便找一个文本编辑器来编写第一个jsp吧,如果实在没有顺手的编辑器,那么也可以用windows自带的记事本,新建一个test.jsp文件,把上面的代码复制到文件里,保存即可。

    得到了我们的第一个jsp文件之后,让我们把它复制到tomcat/webapp/ROOT目录下。现在检查一下tomcat是不是已经启动了,如果还没启动,需要先去启动tomcat,在看到tomcat正常启动的提示之后,就可以打开浏览器,输入网址 http://localhost:8080/test.jsp查看执行效果。

    Mon Nov 28 10:54:56 CST 2016

    看到了这些字样,也就说明我们写的第一个jsp已经成功执行了,现在咱们看到的并不是谁预先写好的文字,而是使用服务器实时计算出的当前时间,如果不信你可以多刷新几次页面,时间内容会不断改变,显示的永远是当前服务器的时间。

    好的,现在就引出了一个问题,jsp是如何把我们需要的数据发送给我们的。

    1.2. B/S结构,请求与响应

    B/S结构,既浏览器(Browser)/服务器(结构),用浏览器查看jsp写的页面就算非常简单的B/S结构了。

    先看看在我们访问http://localhost:8080/test.jsp的时候究竟发生了什么:

    1. 首先,浏览器解析我们输入的网址,查找服务器的位置。

      咱们这里使用了http://localhost:8080/,浏览器就会以http协议,去访问localhost的8080端口,localhost是本机的别名,8080是tomcat的默认端口,即使现在不太理解也没有关系,只要知道http://localhost:8080/是你这台机器上运行的tomcat就可以了。

    2. 找到了服务器的位置,浏览器会向服务器发送一个请求(request),这个请求包含着http协议规定格式的数据,现在咱们不需要去计较细节,先把注意力集中在流程上。

    3. 接下来,服务器接收请求,分析请求中包含的数据。这个分析过程也是定义在http协议中的,像我们这里请求的是/test.jsp这个jsp页面,服务器就会去webapp/ROOT目录下去查找这个test.jsp,然后对它进行解析,运行。

    4. 在服务器的操作结束后,会生成一个响应(response),并把这个响应发送回客户机器的浏览器。

    5. 现在浏览器接收了响应,开始进行解析与运行,最后把结果显示给用户,这就成为我们最后看到的结果。

    这就是http协议的基本流程了,像我们看到的一样,浏览器与服务器之间完全是依靠请求和响应联系起来的。这就像是在打乒乓球,浏览器发过一个球来,服务器接到球,反手再打回去。双方队员之间不会有其他接触,所有的交流就是那颗小球。

    这也暗示了http中另一个重要的特性:短连接,无状态。

    • 短连接是指:请求响应一次,服务器就关闭与浏览器之间的网络连接。

    • 无状态是指,任意两次请求响应之间,没有直接的联系。

    浏览器发出一个请求,服务器才能返回一个响应。一个请求对应一个响应,每个过程都是完全独立的。并且服务器端是被动的,只能接收请求,然后向请求的原发地发送响应,如果没有请求,服务器没办法凭空发一个响应出去,因为它不知道客户的机器在什么地方。浏览器和服务器之间也不会拉一根电话线,随时保证畅通,每次请求处理完之后,服务器就会立刻忘掉上次请求的信息。这样做的好处是处理简单,连接用完就断,不会浪费资源,坏处是在进行复杂操作的时候,因为没法保证用户当前的状态,只好把表示状态的信息不断的在浏览器和服务器之前传来传去,造成了操作的复杂。

    一个请求一个响应,构筑了http协议的基础,jsp则是专门管辖服务器的部分,这样我们就可以把jsp的功能锁定在第二步和第三步了。处理请求,返回响应,这便是jsp的所有工作。

    再重复一遍,jsp只负责服务器的操作,浏览器上的任何东西都与其无关,显示图片,显示文字,点击按钮,弹出窗口,这些都是浏览器的工作职能。并且,因为http的无状态性,jsp一旦返回了响应,就再不管其他的了。它绝对不会也不能直接对浏览器造成什么影响,它所能做是把响应这颗球打出去,剩下的就全看浏览器了。浏览器会发生什么事情,jsp也无从得知,如果想让jsp做些什么事情,唯一的办法就是发送一个请求。

    重复第三遍,浏览器和服务器基本就是两个孤岛,两地居民的交流只能通过飞鸽传书来实现。在一封信到达之前,本地人是没办法得知对面的消息的,每当浏览器这边岛上的居民想要什么东西,他们就把需要的东西写到信里,用信鸽传递给服务器那边的岛上,服务器收到信鸽的消息,会按照上边所写的准备好,再放飞回去,等浏览器等到他们要的信鸽,就可以把东西放下来随便用了。两地居民直接接触的只有信鸽,他们从信鸽上那到他们想要的东西,对面的人长什么样子,是人是鬼他们全不在意,只要大家都会用信鸽就好了,http就是这样一只大家都会用的信鸽了。

    希望现在大家已经对http有了清晰的认识,如果不了解它的运行原理,带着一脑子糨糊学jsp,那可是太可怕了,最怕的就是把jsp和浏览器混为一谈,认为是浏览器在运行jsp。实际上jsp是完全不知道浏览器的存在,它只是根据http形式的请求,发送http形式的响应,如果对面的浏览器能解析http形式的响应,就能显示出页面来,幸运的是目前市面上的浏览器都能解析http形式的响应,所以我们只要制造符合标准的数据,当作响应发送出去就行了。

    其实一切都是这么简单,只要能了解它的运行原理,我们就可以在自己的舞台上大施拳脚,不用为涉及不到的领域胡乱苦恼了。

     特别鸣谢 http://www.mossle.com/docs/jsp/html/jsp-ch-01.html,准备一边看一边做笔记。谢谢你

  • 相关阅读:
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 大臣的旅费
    Java实现 蓝桥杯 历届试题 大臣的旅费
    Java实现 蓝桥杯 历届试题 大臣的旅费
    Java实现 蓝桥杯 历届试题 大臣的旅费
    Navicat查询哪些表有指定字段名
  • 原文地址:https://www.cnblogs.com/wenjieyatou/p/6108630.html
Copyright © 2020-2023  润新知