一, Web服务器的历史
CGI(common gatewayinterfact)
Cgi模式
Cgi模式的特点,是将服务端的动态资源基于进程方法来运行。由于进程的执行非常耗费时间,且内存空间浪费。所系效率及其低下。
FastCGI
所谓的fastCGI的模式其实就是在当前的CGI模式中添加的了一个pooling的概念,在服务器启动时初始化固定的进程来提高处理客户端请求的速度,但是该方法治标不治本。
二,servlet技术的特点
与传统的CGI模式不同,servlet运行模式更改为单进程多线程的模式。
单进程:服务器
多线程:服务端的servlet
三,servlet的继承结构
四,Http协议
1, 单向性:只有发送请求了,才会有相应产生。
2, 无状态:协议本身并没有状态的记录,当客户端多次访问服务端时,服务端并不会知道 你曾经访问过他。
基于http协议我们能够采用哪些方式来发送请求呢?
DOGET
DOPOST
DOHEAD
DODELETE
get与post区别:
1.get方式提交表单表单中的数据会在地址栏中显示。而post方法则不会。
2.get方式提交表单长度是有限制的512字节,而post理论上是无限的。
3.get方式提交表单会在http数据包中的第一行出现,而post在空一行的body中出现
4.get方式永远是已字符方式提交。而post既可以已字符也可以已字节。
五,http数据包
getpost
六,手动编写第一个servlet
1,编写servlet代码
1)你的servlet必须要继承HttpServlet。在你的servlet中添加doGet或者是doPost。
2)doGet或者是doPost方法中都会含有两个入参:
HttpServletRequest
HttpServletResponse
3) 该方法需要抛出两个异常:
IOException
ServletException
4)通过HttpServletResponse对象获取向客户端输出的字符流对象
PrintWriter pw = response.getWriter();
5)通过调用PrintWriter中的printl方法完成内容的输出
6)导包:
我们需要将
HttpServlet,HttpServletRequest,HttpServletResponse,IOExcetpion.ServletException这些对象的包import进来
import javax.servlet.http.*; import java.io.*; import javax.servlet; |
7)你的servlet至少需要在一个包下(切记)
Package com.bjsxt;
8) 编译你所写的servlet。在编译时需要注意,由于我们的servlet中时用到了javaEE平台下类。所以需要指定javac去什么位置找相应的类库。
9) 将编译好的servlet的class文件部署容器中。
1.需要在webapps目录下建立一个目录
2,在项目的目录中必须要包含一个名称为:WEB-INF的目录
3在WEB-INF的目录中 必须包含一个classes目录
4.按照servlet中所定义的正确的包名来建立目录,将class文件拷贝到相应的目录中。
5.需要在WEB-INF的目录中与classes目录同级建立一个名称为web.xml的文件
Web.xml:项目部署描述文件。在该文件中配置servlet的相关信息。
6.编写web.xml完成对servlet的配置。需要配置两个节点
<servlet>
<servlet-mapping>
详细配置如下
<servlet> <servlet-name>suibian</servlet-name> <servlet-class>com.bjsxt.HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>suibian</servlet-name> <url-pattern>/suibian.do</url-pattern> </servlet-mapping> |
<servlet-name>:给servlet起个别名,叫什么都行。只要在同一个web.xml中不重复就可以。
<servlet-class>:配置当前 给哪个servlet起别名的servlet的全名。
<servlet-mapping>:配置servlet与uri的映射
<servlet-name>为哪个servlet中的servlet做uri的映射配置
<url-pattern>:为这个servlet所配置的访问的uri是什么.注意:必须uri中必须要含有/
2,运行servlet
只要启动tomcat,在客户端浏览器中输入为servlet所配置的uri就可以访问了