首先我们要了解网络服务器(server)和客户端(client)是如何进行通讯的。
基于HTML(HyperText Markup Language)和HTTP(HyperText Transfer Protocol)协议!!
(HTML 让browser知道如何将内容显示给client)
HTTP是client和server之间进行网络通讯的协议。(HTTP是运行在TCP/IP协议之上,TCP协议保证了网络传输过程中文件的完整性,IP协议确定了地址的正确性)其实呢,HTTP conservation 的结构就是**Request/Reponse 序列**
,browser发出request,server做出响应,发回response。
下面就是request和response的详细介绍:
对于request来说,最主要的便是其中包含的方法了,分为两种:GET和POST。GET是一个相对简单的方法,可以传送**少量**
的参数,如下图:
但是POST方法就能够发送一定量的用户参数;除此之外,由于数据不是直接出现在URL中,所以对数据的安全行有很大的提升,所以在发送password和username的时候、chatting的时候、一些私密信息都会用POST方法)详细区别可以参考:http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html
context-type被视作为MIME type,他会告诉浏览器response里面是什么数据类型,然后browser就会知道如何处理。
所以呢,client和server通讯的具体流程便是:
在这里不说是HTML是因为也可以请求servlet做出响应
),如果没有就返回404NOT Found,找到文件后,生成HTTP response发回browser;说了这么多,接下来应该介绍一下为什么要使用Servlet&JSP了。
sever一般只会储存静态的网页,但是有时候我们需要的不单单是一张死板的毫无生气的静态网页,首先有两点仅仅依靠sever是不可能做到的我们是必须要清楚:1.动态的内容,比如说当前时间,必须要依靠“helper”,也就是以后将讨论的Servlet&JSP;2.在服务器上储存数据,当sever接收了表单里的数据后,sever"并不关心",要处理这些数据或者储存到Database中,就需要一个helper app来操作。
什么是Servlet和JSP:
而JSP(Java Server Page)则是一个页面, 由JSP容器负责执行。就是在一个HTML页面中添加了java语言,极大的改善了Servlet丑陋的输出。
Servlet和JSP两者最大的区别就是,Servlet以Java程序为主, 输出HTML代码时需要使用out.println函数,也就是说Java中内嵌HTML; 而JSP则以HTML页面为主,需要写Java代码时则在页面中直接插入Java代码, 即HTML中内嵌Java。
下面简单的对比:
JSP:
<html>
<body>
<h1>
<% out.println("JSP"); %>
h1>
body>
html>
Servlet输出:
public class MyServlet ... {
...
out.println("");
out.println("");
out.println(""
);
out.println("Servlet);
out.println("");
out.println("");
out.println("");
}
这两个输出在其实本质上是一样的,都是同样的HTML页面,但是很明显可以发现JSP极大的简化了输出!!!
(一)先写到这里,以上都是个人的学习笔记,如大神发现有错误请帮忙指出,谢谢!