[HeadFirst-JSPServlet学习笔记][第一章:前言与概述]
来源:互联网 发布:网上商城系统web源码 编辑:程序博客网 时间:2024/05/01 07:27
第一章 前言与概述
web服务器做什么?
答:接收客户请求,然后向客户返回结果
web客户做什么?
答:此处客户指浏览器,web客户允许用户请求服务器上的某个资源,并向用户展现请求的结果。
html 客户与服务器间的语言
http 客户域服务器间传输的通道
HTTP是一个简单的请求/响应序列:
请求流的关键要素
- HTTP方法(要完成的动作)
- 要访问的页面(URL)
- 表单参数(如方法采纳数)
响应流的关键要素
- 状态码(表明请求是否成功)
- 内容类型(包括文本、图片、HTML等等)
- 内容(具体的HTML、图片、文本等等)
HTTP**请求**
POST
与GET
GET 的参数直接加到URL后面,即请求行
//请求行GET /select/selectBeerTaste.jsp?color=dark&taste=malty HTTP/1.1//请求首部Host: www.wickedlysmart.comUser-Agent: Mozilla/5.0 (Macintosh; U;PPC Mac OS X Mach-O;en-US;Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.7,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1Accept-Language :en-US,en;q=0.5Accept-Encoding:gzip,deflateAccept-Charset:ISO-8859-1,UTF-8;q=0.7,*;q=0.7Keep-Alive: 300Connection: keep-alive
POST 的参数放到消息体.
//请求行POST /advisor/selectBearTaste.do HTTP/1.1Host: www.wickedlysmart.comUser-Agent: Mozilla/5.0 (Macintosh; U;PPC Mac OS X Mach-O;en-US;Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.7,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1Accept-Language :en-US,en;q=0.5Accept-Encoding:gzip,deflateAccept-Charset:ISO-8859-1,UTF-8;q=0.7,*;q=0.7Keep-Alive: 300Connection: keep-alivecolor=dark&taste=malty//消息体,参数放在消息体当中
HTTP响应剖析:什么是MIME类型?
HTTP响应包含一个首部和一个体,首部信息告诉浏览器使用了什么协议,请求是否成功,以及体中包括的内容是什么类型。体包含了让浏览器显示的具体内容(例如,HTML)
HTTP/1.1 200 OK //Web服务器正在使用的协议版本 响应的HTTP状态码 状态码的文本版本Set-Cookie: JSESSIONID=0AABDSA2DS4FD2321EFDSWDASD2;Path=/testELConcent-Type:text/html //内容响应的指称为MIME类型,与请求的Accept相关Content-Length: 97Date: Wed, 19 Nov 2003 03:25:40 GMTServer: Apache-Coyote/1.1Connetion: close <html>...</html>
URL(Uniform Resource Locators) 统一资源定位符
TCP端口
- HTTP: 80
- HTTPS: 443
- FTP: 21
- POP3:110
- SMTP: 25
- TIME: 37
- 0-1023的TCP端口已经保留,自己的服务端程序不能使用这些端口
Web 服务器自己不做的两件事情
1. 动态内容
Web服务器应用只提供静态页面,但是有一个”辅助“应用可以生成非静态的及时页面,而且这个辅助能与Web服务器通信。动态页面可以是一个编目,Web日志,甚至是一个随机显示图片的页面
比如返回当前时间的页面,实际上是辅助应用编写HTML代码返回给服务器应用,再由服务器应用传输给客户
2. 在服务器上保存数据
CGI程序就是上述的辅助应用
大多数CGI程序被编写成Perl脚本,不过用C,Python和PHP。
配置tomcat
http://www.cnblogs.com/pannysp/archive/2012/03/07/2383364.html
servlet揭秘
1. 建立目录树
project1 |--src |--classes |--etc
2. 编写名为Ch1Servlet.java的servlet,放在src目录中
[zip文件] javax.servlet jar包
http://download.csdn.net/detail/pupingpp/5835867
import javax.servlet.*;import javax.servlet.http.*;import java.io.*;public class Ch1Servlet extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response )throws IOException{//标准servlet声明 PrintWriter out = response.getWriter(); java.util.Date today=new java.util.Date(); out.println("<html>"+ "<body>"+ "<h1 align=center> HF\'s Chapter1 Servlet</h1>"+"<br>"+today+"</body>"+"</html>"); }}
3. 创建一个部署描述文件(deployment descriptor,DD),名字为web.xml,把它放在etc目录中。
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <Servlet> <Servlet-name>Chapter1 Servlet</Servlet-name> <Servlet-class>Ch1Servlet</Servlet-class> </Servlet><servlet-mapping> <servlet-name>Chapter1 Servlet</servlet-name> <url-pattern>/Serv1</url-pattern></servlet-mapping></web-app>
4.在现有tomcat目录下建立这个目录树..
tomcat\webapps\ch1\WEB-INF\classes
5.从project1目录编译servlet…
%javac -classpath D:/apache-tomcat-7.0.68/lib/servlet-api.jar -d classes src/Ch1Servlet.java
为了调用servlet-api 中的 javax.servlet,并存在classes文件夹中
6.把Ch1Servlet.class文件复制到WEB-INF/classes,并把web.xml文件复制到WEB-INF.
7.运行Tomcat..
8.打开浏览器键入
http://localhost:8080/ch1/Serv1
9.每次更新servlet类或部署描述文件都需要关闭Tomcat;
总结:
1. servlet就是java版本的CGI2. jsp就是镶嵌在html中的java
0 0
- [HeadFirst-JSPServlet学习笔记][第一章:前言与概述]
- [HeadFirst-JSPServlet学习笔记][第二章:高层概述]
- [HeadFirst-JSPServlet学习笔记][第三章:实战MVC]
- 《金融理财》第一章:金融与个人理财概述 学习笔记
- headfirst python 学习笔记
- 《HeadFirst JavaScript》学习笔记
- 计算机网络学习笔记—第一章概述
- java学习笔记|第一章:java平台概述|
- 计算机网络_学习笔记 第一章 概述
- 学习笔记:第一章——计算机网络概述
- C++学习笔记--第一章 C++概述
- 精通JavaScript 第一章 前言及概述
- 第一章安卓前言学习
- struts2学习笔记(六)文件上传与下载(上)jspServlet的文件上传与下载
- headfirst学习笔记/命令模式
- HeadFirst设计模式学习笔记
- 第一章 计算机网络概述(笔记)
- 第一章 导论与概述
- 求出1~1000之间的完全平方数,每行输出六个
- 关于字符串数组的问题
- A - Doing Homework again
- java中缓存的使用
- bzoj 2186: [Sdoi2008] 沙拉公主的困惑 (数论,逆元)
- [HeadFirst-JSPServlet学习笔记][第一章:前言与概述]
- 【Vuforia】基于Vuforia增强现实开发(二)之模型移动
- 求出1~1000之间的素数,每行输出六个
- java方法执行图解
- 数据结构 - 知识点
- [HeadFirst-JSPServlet学习笔记][第二章:高层概述]
- 基于OpenGL 的STL 文件可视化研究
- codeforces 617B 水题~
- 算法虐我千百遍,我待算法如初恋