Head First ServletJSP 1.Why use Servlets JSPs
GUI应用程序的部署难,动态网站部署简单,广泛发布。
服务器用HTTP
(HyperText Transport Protocal)发送HTML
(HyperText Markup Language)给浏览器。
HTML有标签和属性
浏览器将HTML代码创建为网页并渲染到显示器上。
HTTP运行在TCP/IP之上。
TCP负责让被分快的文件在网络节点之间完整的传输
IP在下面让每一个文件块能在路由之间找到去往目的地的路。
HTTP会话的结构就是浏览器请求,服务器相应,如此反复。
request请求:HTTP,URL,参数
response响应:状态码,Content-Type(MIME),Content
HTTP是IETF标准,RFC 22616,Apache 是一个处理HTTP请求的服务器,Firefox是一个发送HTTP请求的浏览器。
一个HTTP响应有一个header,并携带了HTML数据。
HTTP请求有不同的方法,不同的方法表示不同的请求类型,和不同的消息格式,如 GET(用户点击新的网页链接)&POST(用户点击提交按钮).
GET只负责请求,POST不仅可以请求同时还能发送数据给服务器。
其他方法:HEAD,TRACE,PUT,DELETE,OPTIONS,CONNECT.
其实GET可以携带少量数据,用?
将路径和参数隔开,参数之间用&,形如/somepath.../demo.jsp?x=1&y=2&z=3
。
还得用POST的原因:
- 参数有限制,视服务器而定
- 明文
- 相对POST,GET不能将表单数据添加到书签
GET:请求=request line (参数在此
,name/value pair) + request header
POST:请求=request line + request header + message(payload)(参数在此
)
Response
- header :协议版本 HTTP/1.1,状态码200 OK,内容类型Content-Type …
- body:内容
GET 全过程:
输入URL->发送请求->服务器接受请求->找到资源->发送相应->浏览器接响应->渲染页面。
URL(Uniform Resource Locators)
Protocal+Server+Port+Path+Resource
http://www.wickedlysmart.com:80/beeradvice/slect/beer1.html
TCP 端口号(Port),一个16-bit的数字(0~65535),标识了一个运行在服务器硬件上的特定软件程序,而非物理插口。
协议 | 端口 |
---|---|
FTP | 21 |
Telnet | 23 |
SMTP | 25 |
Time | 37 |
HTTP | 80 |
POP3 | 110 |
HTTPS | 443 |
0~1023 TCP 端口为知名的服务保留,不能用于自定义的服务器程序。
使用不同协议的多个应用可以使用同一个端口。
所谓静态网页,就是存在目录里,等着被服务器交接给浏览器的网页,中途不做任何更改,每一个浏览器得到的网页都一样。
比如需要网页上显示当地时间,静态网页显然就做不到了。
Web Server App 只可以serve,不能在 serve 的东西上 do computation,但是服务器上的其他 App 可以。
故,可以将请求交给别的程序帮忙处理。
动态创建的页面(dynamically-created pages)意味着其在被 request
之前是不存在的。request来,程序创建网页,response回去。
光靠Web Server 不能完成:
- 动态内容
- 在服务器存储数据
web server 将请求参数交给 生成 response 的 app 来处理。
这些帮忙处理请求的 app 在没有 Java 的世界里,叫做 CGI
(Common Gateway Interface)程序。通常是 Perl 脚本写的,也可以是 C,Python, PHP.
请求来,web server app 接受,启动CGUI程序并将参数转给它,CGI程序构建一张新的网页交给web server app后关闭,web server app将网页返回给浏览器。
从web server app 的角度看,网页始终是静态的。
Perl | Servlet |
---|---|
语言晦涩 | Java流行 |
性能差 | 性能好 |
CORBA | J2EE |
Servlet 必须将所有内容print到HTTP response stream 中,为了不让 Java Class 塞满 HTML 和字符串变量(否则HTML中的回车换行和双引号会把人逼疯),于是有了JSP,将一些Java代码移动到HTML中,就像在HTML中插入了变量。(把Java放进HTML而不是反之)
JSP让Java 开发者不用写HTML了,但是会让网页设计师多写一点额外的“Java”,不是真的Java代码,而是JSP标记语言。
Bullet Point
- HTTP TCP/IP
- HTTP Request/Response
- GET/POST
- MIME
- URL
- Web Server , CGI
- Servlet/JSP
Head First ServletJSP 1.Why use Servlets JSPs相关推荐
- Why use Servlets JSPs: an introduction(Head First Servlets and JSP)
? A GET request appends form data to the end of the URL. ? A POST request includes form data in the ...
- APACHE TOMCAT INTERVIEW QUESTIONS ANSWERS【转】
原文地址:https://www.wisdomjobs.com/e-university/apache-tomcat-interview-questions.html Question 1. What ...
- Introduction to the Peer-to-Peer Sockets Project
http://onjava.com/lpt/a/4421 ------------------------------------------------------------ Publi ...
- eclipse插件说明
Properties Editor Properties Editor 编辑java的属性文件,并可以自动存盘为Unicode格式 更多Properties Editor 信息 Colorer T ...
- Eclipse插件大全 (下)
Quigen Quigen这个插件利用Velocity模板引擎来快速生成任何类型的文本内容.它不需要进行配置,所要做的只是利用它自带Velocity编辑器编写一个velocity 模板文件. 更多Q ...
- Portal产品对比分析报告
目录 1概述 2Portal相关产品介绍 2.1商业Portal 2.1.1Bea weblogic portal 2.1.2IBM websphere portal 2.1.3Oracle port ...
- 【历史】 tomcat mysql server 端本地部署完美方案
1 介绍 HTTP Server: E.g., Apache HTTP Server, Apache Tomcat Server, Microsoft Internet Information Ser ...
- JXCZT网络管理系统建设方案
1. 背景 随着近年来XXXX业务要求的不断提升和对IT系统的快速建设,IT建设已经初具规模,业务开展也越来越依赖IT系统,IT系统和业务数据对XXXX的重要性越来越显现出来. 不论是5×8 ...
- portlet 2.0_Java Portlet规范V2.0(JSR 286)中有哪些新功能?
Portlet是组件化的面向用户的应用程序,可创建某种标记. 该标记旨在与其他标记片段聚合到一个更大的应用程序中,例如,如图1所示的门户页面. 图1.一个样本门户页面 因此,可以将Portlet视为基 ...
最新文章
- MacOS中安装python-jekins失败解决方法
- [ZJOI2008][BZOJ1036] 树的统计count
- python绘制一个圆_Python在网格上绘制一个填充的“圆”
- 8 种常见SQL错误用法,你千万别犯!
- checksum linux 命令_linux常用命令总结
- Java黑皮书课后题第5章:**5.28(显示每月第一天是周几)编写程序,提示用户输入年份和代表概念第一天是周几的数字,然后在控制台显示该年各个月份的第一天是周几
- jvm timezone
- [转]通过创建一个位图的XY Chart来学习Android绘图类Rect,Paint,Bitmap,Canvas(附源码)...
- python允许无止境的循环吗_Python第一天 - 思想永无止境的个人页面 - OSCHINA - 中文开源技术交流社区...
- CAP 原则与 BASE 理论
- java连接符_使用java流将两个集合的元素与分隔符连接起来
- [从零开始]HelloWorld——第一个应用程序
- 使用 jsfl 发布flash IDE 插件
- mysql视图子查询_MySQL:FROM子句限制中的带有子查询的视图
- gambit软件license文件
- adb的环境搭建,下载和卸载app
- 管家婆系统怎么创建提醒服务器,管家婆辉煌Ⅱ++10.1 -管家婆软件官方网站
- AHCI和IDE区别,和在目前系统中设置 AHCI - 摘自网络
- 中国无线VOC检测器行业市场供需与战略研究报告
- Android控件——TextView与EditText
热门文章
- 对手方最优价格和本方最优价格
- linux dialog详解
- element table复选框禁用
- 再见 RPM/DEB/TAR,是时候拥抱下一代全平台安装程序 AppImage 了!
- ArcGIS 10.2安装教程 (Win10 环境下)
- Excel编程——复制WorkSheet
- 信大捷安校招过程以及java岗位笔试+面试题(2019秋招回忆)
- node.js+uniapp计算机毕业设计安卓天然气地域数据管理APP(程序+APP+LW)
- mysql错误18456_解决sql server 2008 18456 用户登录失败的方法
- nacos注册中心(三)服务订阅