一、导入tomcat的servlet的jar包
服务器不是运行在IDE中,而是运行在tomcat中,tomcat运行时,调用java的方法,实现响应客户端请求的功能。
路径:
webapp/项目名/WEB-INF/web.xml文件配置servlet的地址映射
webapp/项目名/WEB-INF/lib 放项目的jar包
webapp/项目名/WEB-INF/classes 放java编译后的二进制流文件
webapp/项目名/静态资源
二、Servlet生命周期
Servlet(接口)---GenericServlet(接口)--HttpServlet(抽象类)
方法执行顺序:
constructor init (前面的从tomcat容器启动开始只执行一次) --- Servlet对象只创建一次
doGet/doPost (每访问一次执行一次)
destroy(后面只有tomcat关闭时才执行)
全过程:
加载 ClassLoader将classes文件load进tomcat
实例化 new一个Servlet对象
初始化 执行init方法(初始化参数ServletConfig)
处理请求 (doGet doPost)
退出服务 destroy
/和没有/的区别:/是tomcat的根路径,没有/是当前路径
三、关于Cookie:(Http协议的无连接性,需要记录识别某个用户)
服务器通过Set-Cookie向客户端写数据
客户端可以阻止服务器写入
同源策略:只能向客户端写同一个域的Cookie
设置Cookie(向response设置)
获取Cookie(向request获取)
临时Cookie----相当于存在内存里,窗口关闭后就消失了。(cookie.setMaxAge(-1)或不写,用于记录该界面的用户是谁)
普通Cookie---以文件的形式存在计算机里
servlet/jsp设置的Cookie能被同一个路径下或子目录下的Servlet/jsp读取到,父路径无法读取这个Cookie
四、Session(保存在服务器端)
服务器开辟一个内存空间放用户的Session,和某个用户的浏览器关联,不同浏览器不同Session
用于唯一标识客户端的浏览器和唯一标识其向对应的Session----通过唯一标识符SessionId
Session的两种实现方式:
1.通过Cookie实现(将JSESSIONID保存在cookie里,请求时告诉浏览器去找这个SESSIONID对应的session)
2.通过URL重写实现(浏览器不支持Cookie时,
客户端将JSESSIONID写在URL地址中传给服务端)
五、webApplication(对所有访问的用户共享数据)
类:ServletContext(整个webApplication的运行环境)
获取context方法:HttpServlet-----getServletContext方法
获取context属性:ServletContext的get/setAttribute方法