Head First Servlet&Jsp 学习笔记(一) 一些基础知识

时间:2021-06-27 21:04:45

Head First Servlet&Jsp 学习笔记(一) 一些基础知识

首先我们要了解网络服务器(server)和客户端(client)是如何进行通讯的。

  • sever接收client的请求request然后发送回一定的东西(response)给client,浏览器可以让用户请求sever上的资源,client一般请求为一个HTML页面或者一些其他的文件,然后服务器会将其发送回cient,当然如果sever并没有找到client所请求的文件或者页面,将会返回著名的“404 Not Found”。
  • 对于client来说,每点击一次超链接或者在browser中输入地址都会发起一次请求request,然后browser就会根据sever发回的response做出相应的反应——显示HTML或者下载文件等等。

基于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 主要包含:
    • HTTP 方法(the action to be perform;GET或者POST)
    • 需要请求的页面(a URL)
    • 表单的参数
  • response主要包含:
    • 一段状态代码(request是否是有效的
    • 包含的内容类型Context-type(文本、图片或者网页等等)
    • 内容(HTML、图片、文件等)

对于request来说,最主要的便是其中包含的方法了,分为两种:GET和POST。GET是一个相对简单的方法,可以传送**少量**的参数,如下图:
Head First Servlet&Jsp 学习笔记(一) 一些基础知识

但是POST方法就能够发送一定量的用户参数;除此之外,由于数据不是直接出现在URL中,所以对数据的安全行有很大的提升,所以在发送password和username的时候、chatting的时候、一些私密信息都会用POST方法)详细区别可以参考:http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html

Head First Servlet&Jsp 学习笔记(一) 一些基础知识

现在来看一下response:
Head First Servlet&Jsp 学习笔记(一) 一些基础知识

context-type被视作为MIME type,他会告诉浏览器response里面是什么数据类型,然后browser就会知道如何处理。


所以呢,client和server通讯的具体流程便是:

  1. client输入一个URL或者点击链接,随后browser发出repuest(GET/POST);
  2. server接收到request,找到指定文件(在这里不说是HTML是因为也可以请求servlet做出响应),如果没有就返回404NOT Found,找到文件后,生成HTTP response发回browser;
  3. browser接受response,做出相应的反应,显示页面或者下载等。

说了这么多,接下来应该介绍一下为什么要使用Servlet&JSP了。

sever一般只会储存静态的网页,但是有时候我们需要的不单单是一张死板的毫无生气的静态网页,首先有两点仅仅依靠sever是不可能做到的我们是必须要清楚:1.动态的内容,比如说当前时间,必须要依靠“helper”,也就是以后将讨论的Servlet&JSP;2.在服务器上储存数据,当sever接收了表单里的数据后,sever"并不关心",要处理这些数据或者储存到Database中,就需要一个helper app来操作。

什么是Servlet和JSP:

  • Servlet:Servlet是在服务器端执行的Java程序,一个被称为Servlet容器的程序(其实就是服务器) 负责执行Java程序。其输出只能使用out.println(),十分麻烦和丑陋;
  • 而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("<html>");
out.println("<body>");
out.println("<h1>");

out.println("Servlet);

out.println("
</h1>");
out.println("
</body>");
out.println("
</html>");
}

这两个输出在其实本质上是一样的,都是同样的HTML页面,但是很明显可以发现JSP极大的简化了输出!!!

(一)先写到这里,以上都是个人的学习笔记,如大神发现有错误请帮忙指出,谢谢!