学习Servlet
学习完servlet然后写一个关于他它的总结,加深自己的印象,也希望读者能在其中学到点东西
HTTP协议
HTTP(Hypertext Transfer Protocol, 超文本传输协议)
1 HTTP是以明文方式发送数据的
2 用于从WWW服务器传输超文本到本地浏览器的传输协议。 是Web应用程序的基础
3 HTTP协议是以TCP/IP为基础的高层协议。
4 现在广泛使用的版本HTTP/1.1
5 Http的缺省端口是80Http特点是:无状态、无连接
Servelet简介
1 Servlet是服务器小应用程序
2 用来完成B/S架构下,客户端请求的响应处理
3 平台独立,性能优良,能以线程方式运行
4 Servlet API为Servlet提供了统一的编程接口
5 Servlet一般在容器中运行
常见的Servlet容器
Tomcat (在此用此容器)
Jetty / Resin
tomcat启动与停止
startup.bat
shutdown.bat
catalina.bat start
catalina.bat stop / shutdown.bat
catalina debug 调试错误的时候
run exit help
设置环境变量JAVA_HOME(启动tomcat失败一般都是环境变量设置有问题)
tomcat目录结构
bin/ 二进制可执行文件和脚本
catalina start stop
catalina debug run exit
common/ Catalina本身和web应用可加载的类目录
conf/ 配置文件目录
logs/ 日志目录
server/ 服务器所需的类库目录
shared/ Web App共享的类库
webapps/ Web应用所存放的目录applications
work/ Tomcat的工作目录(存放jsp产生的class文件)
temp/ 存放临时产生的文件
Servlet的生命周期
生命全过程:
加载 ClassLoader
实例化 new
初始化 init(ServletConfig) 仅执行一次
处理请求 service doGet doPost
退出服务 destroy()
只有一个对象
API中的过程:
init()//只执行一次, 第一次初始化的时候
public void init(ServletConfig config) throws ServletException
service()
public void service(ServletRequest req, ServletResponse res) throws ServletException, java.io.IOException
destroy()//webapp 退出的时候
public void destroy()
doGet和doPost的区别:
Get方法:用户数据作为 URL 中的查询字符串传递给服务器,而body中的数据为空
Post方法:用户数据在body中传输给服务器
Get方法所传输的数据量有限制,Post方法则没有限制,当不会修改服务器端的数据时,应该使用 doGet() 方法
Get方法所传输的数据在url中可见,post则不可见,当需要修改服务器端的数据时,应该使用 doPost() 方法
Servelet的类层次结构
Servelet创建的文件默认继承于HTTPServlet
HttpServlet实现了javax.servlet.GenericServlet接口
HttpServlet类是专门处理基于HTTP协议的Servlet
Servlet还可以处理http以外的其他处理请求。