Servlet笔记整理

一.get和post请求:

1.get请求:

a.哪一些情况下,浏览器会发送get请求?
a1.在浏览器地址栏,直接输入某个地址。
a2.点击链接。
a3.表单默认的提交方式。
b.特点
b1.请求参数添加到了请求资源路径的后面,只能提交少量的数据。
注:
请求行只能存放约2k左右的数据。
b2.请求参数会显示在浏览器地址栏,不安全。
注:
有一些网络设备,比如路由器,会记录请求地址。

2.get请求:

a.哪一些情况下,浏览器会发送get请求?
a1.在浏览器地址栏,直接输入某个地址。
a2.点击链接。
a3.表单默认的提交方式。
b.特点
b1.请求参数添加到了请求资源路径的后面,只能提交少量的数据。
注:
请求行只能存放约2k左右的数据。
b2.请求参数会显示在浏览器地址栏,不安全。
注:
有一些网络设备,比如路由器,会记录请求地址。

二.转发和重定向的区别:

重定向:
response.sendRedirect(String url);
转发:
1.绑订数据到request对象上。
request.setAttribute(String name,Object obj);
2.获得转发器。
RequestDispatcher rd = request.getRequestDispatcher(String uri);
3.转发
rd.forward(request,response);

a. 能否共享request?

转发可以,而重定向不行?注:
当容器收到请求,会立即创建request和response,当
响应发送完毕,容器会立即销毁这两个对象。也就是说,
request和response的生存时间是一次请求与响应期间
存在。

b.浏览器地址栏的地址有无变化?

转发之后,浏览器地址栏的地址不变。重定向有变化。

c.地址有无限制?

转发地址有限制,重定向没有限制。

三.servlet生命周期:

1.实例化
2.初始化
3.就绪
4.销毁

四.request和reaponse:

通过Request对象可以在服务器端获取客户端发送的请求数据内容。
通过Response对象可以生成服务器端向客户端响应的数据内容。

五.Servlet中文处理:

request.setCharacterEncoding("utf-8");//浏览器请求
response.setContentType("text/html;charset=utf-8");//服务器响应

六.路径问题:

相对路径:不以"/"开头的路径。
绝对路径:链接、表单提交、重定向从应用名开始写;转发从应用名之后开始写。String request.getContextPath()来获得实际部署时的应用名。

七.绑定数据:

request、session、Servlet上下文都提供了绑订数据
相关的方法,区别如下:
a.绑订到这三个对象上的数据的生存时间是不一样的。
request < session < Servlet上下文。
注:
在满足使用条件的情况下,优先使用生命周期短的。

八.cookie:

1.在添加cookie时,使用encode方法来编码

String URLEncoder.encode(String str,String charset);
在读取cookie时,使用decode方法来解码
String URLDecoder.decode(String str,String charset);

2.a.cookie可以被用户禁止。

b.cookie不安全。
对于敏感数据,一定要加密处理。
c.cookie只能存放少量数据。
大约4k左右。
d.cookie的数量也有限制。
大约几百个。
e.cookie只能存放字符串。

3.

session的工作原理就是依靠cookie来做支撑,第一次使用request.getSession()时session被创建,并且会为该session创建一个独一无二的sessionid存放到cookie中,然后发送会浏览器端,浏览器端每次请求时,都会带着这个sessionid,服务器就会认识该sessionid,知道了sessionid就找得到哪个session。以此来达到共享数据的目的。 这里需要注意的是,session不会随着浏览器的关闭而死亡,而是等待超时时间。

九.九大内置对象:

  1. request

该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数(包括头信息、系统信息、请求方式以及请求参数等)。
request对象的作用域为一次请求。

2)response

response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。
response对象也具有作用域,它只在JSP页面内有效。

3)session

session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”。 session对象的value可以使复杂的对象类型,而不仅仅局限于字符串类型。

4)application

application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象生命周期更长,类似于系统的“全局变量”。

5)out

out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。

6)pageContext

pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。

7)config

config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。 开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。

8)page

page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。

9)exception

exception 对象的作用是显示异常信息,只有在包含 isErrorPage="true" 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。excepation对象和Java的所有对象一样,都具有系统提供的继承结构。exception 对象几乎定义了所有异常情况。在Java程序中,可以使用try/catch关键字来处理异常情况; 如果在JSP页面中出现没有捕获到的异常,就会生成 exception 对象,并把 exception 对象传送到在page指令中设定的错误页面中,然后在错误页面中处理相应的 exception 对象。

你可能感兴趣的:(Servlet笔记整理)