文章目录
为什么使用Servlet & JSP
作为一个 web应用 开发人员,不用像对付独立应用那样,亲自处理棘手的部署问题,完全可以通过浏览器把你的应用交付给别人,不过要 构建一个真正强大的web应用,灵活而且可扩展的体系结构,需要 Java、servlet 和 jsp,通过后面的学习把 web网站变成真正的web应用 。
println()中的参数是String类型,而String直接量中无回车(真正的回车),而且如果HTML中有双引号怎么办,引入jsp,jsp页面就像是一个HTML页面。
web服务器和web客户做些什么
— 服务器
- 可能指物理主机(硬件)
- web服务器应用(软件)
— web客户
- 人类用户
- 浏览器应用
- 二者都可能包括
浏览器一个重要任务是:解释HTML代码,并把web页面呈现给用户。客户就是浏览器应用,能完成用户指定的任务。
HTML告诉浏览器怎样向用户显示内容,HTTP是web上客户和浏览器之间进行通信的应用层上的协议(可参见图解HTTP),服务器使用HTTP向客户发送HTML。
HTML速成
<input type="" name="" />
什么是HTTP协议
HTTP协议是超文本传输协议,支持简单的请求和响应对话。运行于TCP/IP上。HTTP使用一种 请求/响应模型,客户做出一个HTTP请求,web服务器返回一个HTTP响应,再由浏览器根据响应的内容类型进行处理。
TCP负责确保一个网络节点向另一个网络节点发送的文件能作为一个完整的文件达到目的地,尽管在具体传输过程中这个文件可能会被分解位小块传输。IP是一个底层协议,负责把数据块(数据包)沿路移动/路由到目的地。HTTP则是另一个网络协议,有一些web特定的特性,不过他要依赖于TCP/IP从一处向另一处完整地传送请求和响应。HTTP会话的结构是一个简单的 请求/响应 序列:浏览器发请求,服务器做回应。
— 请求流的关键要素
- HTTP方法
- URL
- 表单参数
—响应流的关键要素
- 状态码
- 内容类型
- 内容
HTML是HTTP响应的一部分
浏览器发现一个图片标记时,会生成另外一个HTTP请求,得到HTML标记所描述的资源,浏览器会做第二个HTTP请求来得到标记引用的图片。
GET和POST
1.GET是一个简单的请求
a. GET中的总字符数是有限的(取决于服务器)。如果用户输入了很长的一段文字,GET方法可能无法正常工作。
b.发送的数据会追加到URL后。
2.POST可以发送用户数据
a.参数放在请求实体中,所以没有限制。
b.用户不能对表单提交建立书签。
URL和TCP端口
Web服务器擅长提供静态Web页面和辅助应用
Web服务器擅长找静态页面,静态页面原封不动地待在目录中,服务器找到静态页面返回给客户,每个客户看到的东西都一样, **注意一点:这是web服务器。擅长找静态页面。**所以用到动态页面时需要辅助应用:web服务器负责把请求交给合适的辅助应用,然后取得应用的响应,再把响应发给客户,相当于中间人的身份,一般是web服务器处理不了的请求比如servlet,动态内容,在服务器上保存数据等才会交给辅助应用。
- web服务器自己不做的两件事
- 1.动态内容
- 2.在服务器上保存数据:保存数据到文件或数据库中
- 辅助应用
- CGI程序(非java术语):公共网关接口
- Servlet
Servlet揭秘 (编写、部署、运行)
classes目录存放的是编译过的文件。src目录存的是未编译的源码。
简述IDE工作原理: 按照IDE的目录结构建立标准的目录结构,项目存放在workplace这个根目录下,IDE将项目的程序编译后会放在 classes目录下,并复制到tomcat文件目录的webapps下。并且将部署表述文件同样也复制到tomcat中。
部署描述文件(deployment descriptor ,DD),名为web.xml。
- 每个web应用只有一个部署描述文件
- 一个部署文件可声明第一个servlet,相当于取别名。
- 把元素与对应的元素绑定。
- 是java类。
- 是客户所用的请求名。
” / “ 不可省
汇总
原理
客户发送请求,根据URL中服务器名称和端口号找到服务器并通信,若URL路径找d的是静态页面,则web服务器根据目录找到静态资源,如需要动态资源或在服务器上保存资源则需要调用辅助应用,web服务器做不到的都交给辅助应用:servlet。
web服务器有: Apach,Tomcat;
Tomcat同时又是应用服务器、容器。
一般好一点的网站需要Apach和Tomcat并用
servlet中的out.println()工作原理: 在servlet中创建一个动态web页面必须把整个html打印到输出流,但这知识要打印的HTTP响应的一部分,servlet会把输出流写进响应对象中,然后把响应对象交给web服务器,web服务器将内容写进响应报文实体中返回给用户。