1.在互联网中,只要是能访问的资源,那么这个资源一定可以下载。(输入输出流)
2.javaEE 定义的很多事接口(标准),由TomCat来实现具体的类,因为是TomCat实现了它的标准提供给我们开发使用。
(这些类存放在\Tomcat 7.0\lib\servlet-api.jar)
3.既然这些类都在\Tomcat 7.0\lib\servlet-api.jar中,那么我们要使用的话,第一步肯定是要导入(MyEclipse已经集合这些东西)。
4.servlet是服务器端小程序,不只是单纯的WEB服务器,而是只要是支持servlet规范的都可以(FTP服务器等)。
5.关于javax.servlet.servlet接口:我们不能直接实现这个接口,因为我们写得是应用于Http服务的Servlet(也就是应用于web服务器的),这个接 口有个service()方法,这个方 法是被容器直接调用的,对外提供服务。
6.HttpServlet()构造方法由容器调用,当一个新的客户端请求访问web资源的时候调用(用于实例化一个Servlet对象)
7.请求的时候,容器会根据请求的内容和提交的方法来调用对应的servlet的doXxx(),实际上是先调用(service()方法)
8.HttpServletRequest request对象封装了客户端对服务器端的一系列的请求,然后服务器再这些请求交给容器,容器交给Servlet来处理。
9.HttpServletResponse response对象封装了服务器对客户端请求的响应,用于返回给客户端的信息。
11.关于当客户端发生请求时,容器怎么找到Servlet:首先找到该项目的web.xml文件;然后对比地址栏的URL地址和在web.xml中<url-mapping>中的 URL有没有一样的。 如果没有则报404错误,如果有则通过<url-mapping>URL对应的<Servlet-name>的名字,最后根据<Servlet-name>的名字找到该Servlet的类所在地,通过该类由容器生 成一个对象来处理请求。
12.<url-mapping>/servlet/a</url-mapping>表示的是:项目目录下的servlet文件夹下的a文件;“/”表示的项目的根目录。
13.Servlet对象只会被构造一次,初始化一次,销毁一次,处理服务多次(也就是说,不管你请求多少次,为你提供服务的都是同一个对象)。
14.HTTP具有无连接性,无连接性就是一次请求-响应之后就没有连接了(双方断开了通信)故此要设置session保存范围属性来告诉服务器之后的请求是不是同一个用户在操 作。
1)服务器通过响应请求把一些东西记录上客户端上,这些东西就是Cookie。
2)也就是说服务器在响应时,向客户端写入一些文本文档,而且客户端可以阻止服务器写入。
3)webapp只能获取自己的Cookie(比如新浪不能获取网易的Cookie)
4)每个浏览器都有一个独一无二编号(为了防止浏览器上面有同样的Cookie时无法判断)。
5)Cookie以“名-值”对的形式保存的(类似于Map)
6) Cookie的应用:记住密码,一周内免登陆等。。。
注:之所以只能是文本文档,是为了防止恶意网站写入可执行文件(*.exe)来破坏客户端。
15.Cookie分两种:一种是设置了它的生命周期setMaxAge()它将会放在文件中,这个生命周期内服务器都能拿到这个Cookie的内容。
一种是没有设置生周期,那么就是相当于存在内存之中,只有浏览器的窗口打开着,这种Cookie就存在着;关闭则消失。
16.一个servlet或者JSP设置的Cookie只能被同一个路径下面或者子路径下面的servlet或者JSP读取。
例如:A/a.jsp设置的Cookie;A目录的文件能读取,A目录的子目录能读取,A的上级目录不能读取。
注:这里的路径不是指真实路径,而是URL,映射的路径。
17.会话跟踪:session也是用来记录一系列状态的,session和Cookie的区别就是:
1)Cookie是记录在客户端的,不可靠,不安全
2)session记录在服务器端的
18.session的原理:当浏览器访问服务器的某个页面的时候,服务器会在内存里开辟一块内存,这块内存就叫session而且会跟浏览器关联在一起的,
这个session只能由关联的浏览器来访问(另外一个浏览器,或者是同一个浏览器的新的窗口则不能访问),多个浏览器访问服务器,则会
开辟多个session内存区域,每个session一一对应浏览器关联起来。
注:HTTP协议是无连接性,当浏览器再次访问服务器时,怎么知道该浏览器对应着哪个session呢?这时候就必须有个机制来解决,这个机制就是Cookie机制:在浏览器 访问服务器的时候,服务器给浏览器关联session的时候,还给浏览器分配一个独一无二编号,同时还给和浏览器 关联的session分配同样的编号,这个编号就是 sessionID。
19.session的两种实现方法:一种是通过Cookie机制,一种是通过URL重写。
注:URL重写就是当浏览器不支持Cookie的时候,通过URL的方式把sessionID发给服务器;在链接加上response.encodeURL()。
20.Httpsession session = request.getSession(true)表示的是,如果有session就拿到当前的session,没有就新建一个。
21.session可以存东西,也就是说session这块内存里头可以存放一些属性(对象),通过这个属性来进行一些判定(登录验证)。
注:session没有像Cookie拥有路径访问的问题。
注:同一个application下的Servlet/JSP可以共享同一个session(前提是在一个客户端窗口下的)。
22.request.getRequestDisPatcher(URL).forward(req,res)与thisServletContext.getRequestDisPatcher(URL).forward(req,res)的区别
1)前者可以相对路径,后者只能是绝对路径。
2.javaEE 定义的很多事接口(标准),由TomCat来实现具体的类,因为是TomCat实现了它的标准提供给我们开发使用。
(这些类存放在\Tomcat 7.0\lib\servlet-api.jar)
3.既然这些类都在\Tomcat 7.0\lib\servlet-api.jar中,那么我们要使用的话,第一步肯定是要导入(MyEclipse已经集合这些东西)。
4.servlet是服务器端小程序,不只是单纯的WEB服务器,而是只要是支持servlet规范的都可以(FTP服务器等)。
5.关于javax.servlet.servlet接口:我们不能直接实现这个接口,因为我们写得是应用于Http服务的Servlet(也就是应用于web服务器的),这个接 口有个service()方法,这个方 法是被容器直接调用的,对外提供服务。
6.HttpServlet()构造方法由容器调用,当一个新的客户端请求访问web资源的时候调用(用于实例化一个Servlet对象)
7.请求的时候,容器会根据请求的内容和提交的方法来调用对应的servlet的doXxx(),实际上是先调用(service()方法)
8.HttpServletRequest request对象封装了客户端对服务器端的一系列的请求,然后服务器再这些请求交给容器,容器交给Servlet来处理。
9.HttpServletResponse response对象封装了服务器对客户端请求的响应,用于返回给客户端的信息。
10.Servlet要想在web服务器中运行,那么就必须进行注册。所谓的注册就是通过部署描述符告诉容器自己的位置(包.类名称),有因为自己被编译成*.class后放在了
WEB-INF 目录下了(WEB-INF是安全级别最高的,用户不可访问),故此需要映射路径,通过映射的方式来访问该Servlet。
11.关于当客户端发生请求时,容器怎么找到Servlet:首先找到该项目的web.xml文件;然后对比地址栏的URL地址和在web.xml中<url-mapping>中的 URL有没有一样的。 如果没有则报404错误,如果有则通过<url-mapping>URL对应的<Servlet-name>的名字,最后根据<Servlet-name>的名字找到该Servlet的类所在地,通过该类由容器生 成一个对象来处理请求。
12.<url-mapping>/servlet/a</url-mapping>表示的是:项目目录下的servlet文件夹下的a文件;“/”表示的项目的根目录。
13.Servlet对象只会被构造一次,初始化一次,销毁一次,处理服务多次(也就是说,不管你请求多少次,为你提供服务的都是同一个对象)。
14.HTTP具有无连接性,无连接性就是一次请求-响应之后就没有连接了(双方断开了通信)故此要设置session保存范围属性来告诉服务器之后的请求是不是同一个用户在操 作。
1)服务器通过响应请求把一些东西记录上客户端上,这些东西就是Cookie。
2)也就是说服务器在响应时,向客户端写入一些文本文档,而且客户端可以阻止服务器写入。
3)webapp只能获取自己的Cookie(比如新浪不能获取网易的Cookie)
4)每个浏览器都有一个独一无二编号(为了防止浏览器上面有同样的Cookie时无法判断)。
5)Cookie以“名-值”对的形式保存的(类似于Map)
6) Cookie的应用:记住密码,一周内免登陆等。。。
注:之所以只能是文本文档,是为了防止恶意网站写入可执行文件(*.exe)来破坏客户端。
15.Cookie分两种:一种是设置了它的生命周期setMaxAge()它将会放在文件中,这个生命周期内服务器都能拿到这个Cookie的内容。
一种是没有设置生周期,那么就是相当于存在内存之中,只有浏览器的窗口打开着,这种Cookie就存在着;关闭则消失。
16.一个servlet或者JSP设置的Cookie只能被同一个路径下面或者子路径下面的servlet或者JSP读取。
例如:A/a.jsp设置的Cookie;A目录的文件能读取,A目录的子目录能读取,A的上级目录不能读取。
注:这里的路径不是指真实路径,而是URL,映射的路径。
17.会话跟踪:session也是用来记录一系列状态的,session和Cookie的区别就是:
1)Cookie是记录在客户端的,不可靠,不安全
2)session记录在服务器端的
18.session的原理:当浏览器访问服务器的某个页面的时候,服务器会在内存里开辟一块内存,这块内存就叫session而且会跟浏览器关联在一起的,
这个session只能由关联的浏览器来访问(另外一个浏览器,或者是同一个浏览器的新的窗口则不能访问),多个浏览器访问服务器,则会
开辟多个session内存区域,每个session一一对应浏览器关联起来。
注:HTTP协议是无连接性,当浏览器再次访问服务器时,怎么知道该浏览器对应着哪个session呢?这时候就必须有个机制来解决,这个机制就是Cookie机制:在浏览器 访问服务器的时候,服务器给浏览器关联session的时候,还给浏览器分配一个独一无二编号,同时还给和浏览器 关联的session分配同样的编号,这个编号就是 sessionID。
19.session的两种实现方法:一种是通过Cookie机制,一种是通过URL重写。
注:URL重写就是当浏览器不支持Cookie的时候,通过URL的方式把sessionID发给服务器;在链接加上response.encodeURL()。
20.Httpsession session = request.getSession(true)表示的是,如果有session就拿到当前的session,没有就新建一个。
21.session可以存东西,也就是说session这块内存里头可以存放一些属性(对象),通过这个属性来进行一些判定(登录验证)。
注:session没有像Cookie拥有路径访问的问题。
注:同一个application下的Servlet/JSP可以共享同一个session(前提是在一个客户端窗口下的)。
22.request.getRequestDisPatcher(URL).forward(req,res)与thisServletContext.getRequestDisPatcher(URL).forward(req,res)的区别
1)前者可以相对路径,后者只能是绝对路径。