1. Web Application 的概念
Tomcat去实现Sun公司定义的servlet-api接口,供程序员使用。
HttpServletRequest request;
request 封装了客户端到服务器端的请求信息。
HttpServletResponse response;
response 封装了服务器端到客户端的返回信息。
<servlet>
<servlet-name>HW</servlet-name>
<servlet-class>HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HW</servlet-name>
<!-- 相对于web appcation路径,即相对项目路径 -->
<url-pattern>/abc</url-pattern>
</servlet-mapping>
通过找到匹配 url-pattern 中的/abc ; 找到servlet-name: HW ;
再找到最后的 HelloWorldServlet。
2. Servlet生命周期
- 当客户端第一次请求某个Servlet时,系统创建该Servlet的实例,即调用Servlet自己的构造方法进行实例化,或者Web应用启动时立即创建Servlet实例,即load-on-startup Servlet。
- Web容器调用Servlet的init方法,对Servlet进行初始化. 只执行一次,第一次初始化时候。
- Servlet初始化后,就一直存在容器中,用于响应客户端的请求。
- 当webapp 退出的时候,调用Servelt的destory方法,资源回收,实例被销毁。
3. Cookie
特点:
1. 服务器只可以向客户端写内容。
2. 只能是文本内容。
3. 客户端可以阻止服务器写入。
4. 只能拿自己webapp写入的东西。
5. Cookie以名-值对的形式保存数据。
6. Cookie分为两种: a:属于窗口/子窗口 b: 属于文本
7. 一个servlet/jsp设置的cookies能够被同一个路径下面或者子路径下面的servlet/jsp读到(路径=URL)
4. Session
Session实现方式:
1. 如果浏览器支持Cookie, 创建Session的时候会把SessionID保存在Cookie里面。
2. 如果浏览器不支持Cookie,必须自己编程使用URL重写的方式实现Session
- response.encodeURL(); // 转码,URL后面加入SessionId
2、Session创建的时间是:
事实是直到某server端程序调用 HttpServletRequest.getSession(true)这样的语句时才被创建,注意如果JSP没有显示的使用 <% @page session=”false”%> 关闭session,则JSP文件在编译成Servlet时将会自动加上这样一条语句 HttpSession session = HttpServletRequest.getSession(true);这也是JSP中隐含的 session对象的来历。
由于session会消耗内存资源,因此,如果不打算使用session,应该在所有的JSP中关闭它。
同一个application下的servelt/jsp可以共享同一个session,前提是同一个客户端窗口