Web Application简介:
Web Application Name
WEB-INF
web.xml
该web application的配置文件
lib
该web application用到的依赖包
classes
编译好的servlet
META-INF
存放该web application的上下文信息,符合J2EE标准
Web Application可以直接放在Tomcat的webapp目录下面
也可以通过配置文件指定到其他目录 在server.xml文件中<host>标签中<Context path=“/虚拟路径名称“ docBase=”web application目录位置" debug="0" reloadable="true"/>
HttpServlet:
Servlet是服务器小程序的意思
用来完成B/S架构下,客户端请求的响应的处理
跨平台,通常以多线程方式运行
Servlet API为Servlet提供了统一的编程接口
Servlet一般在容器中运行,Servlet的生命周期由容器管理
常见的Servlet容器
Tomcat
Resin
Jetty
HttpServetl继承了GenericServlet
GenericServlet类是所有Servlet的祖先类
HttpServlet主要方法
请求处理方法:(分别对应http协议的7种请求)
1、doGet 响应Get请求,常用
2、doPost 响应Post请求,常用
3、doPut 用于http1.1协议
4、doDelete 用于http1.1协议
5、doHead 仅响应Get请求的头部。
6、doOptions 用于http1.1协议
7、doTrace 用于http1.1协议
service方法,当请求一个Servlet首先到达该方法,该方法再分发到相应的处理方法
Servlet生命周期
生命全过程:
加载Servlet并实例化 new
初始化 init
处理请求 service doGet doPost
退出服务 destroy()
注意Servlet只实例化一次
init方法也只执行一次
Servlet不是线程安全的
Cookie
Cookie:保存到客户端的一个文本文件,与特定客户相关
Cookie以“名-值”对的形式保存数据
创建Cookie:new Cookie(name,value)
可以使用Cookie 的setXXX方法来设定一些相应的值
setName(String name)/getName() //设置名字
setValue(String value)/getValue() //设置值
setMaxAge(int age)/getMaxAge() //设置存放的时间,以秒为单位
利用HttpServletResponse的addCookie(Cookie)方法将它设置到客户端
利用HttpServletRequest的getCookies()方法来读取客户端的所有Cookie,返回一个Cookie数组
务器可以向客户端写内容,只能是文本内容
客户端可以阻止服务器写入,禁用Cookies
只能读取自己webapp写入的东西
Cookie分为两种
属于窗口/子窗口(放在内存中的)
属于文本(有生命周期的)
一个servlet/jsp设置的cookies能够被同一个路径下面或者子路径下面的
servlet/jsp读到,其他路径无法读取到
// 举个例子:
请求的路径是 http:localhost:8080/test/testcookie
test:项目名称 testcookie:web.xml中的虚拟路径就是mapping中配置的
我们在mapping中在加个路径为 /testcookie/testcookie2 这样我们也是能访问到cookie的,
如果我们 请求的路径是 http:localhost:8080/tt/test/testcookie
tt:项目名称 test/testcookie:web.xml中的虚拟路径就是mapping中配置的
我们在mapping中在加个路径为 /testcookie/testcookie2 这样我们是不能访问到cookie的,
因为 一个servlet/jsp设置的cookies能够被同一个路径下面或者子路径下面的
servlet/jsp读到,其他路径无法读取到