一、获取页面信息

如果想要获取页面信息,判断信息来自于注册页面还是登陆页面方式:
1、一般在页面连接服务器的地址后加:?键=值;作为标记。
注意:如果时get方式传输的表单,则会覆盖?后自定义的标记。
2、在页面中设置隐藏域

该标签不会再页面上显示,但其参数可以传递,根据参数可以判断页面。

二、对于请求实体进行编码

语法:request.setCharaterEncoding(“服务器编码”);
注意:
1)此方法值针对post传输方式;
2)如果希望同时对get方式进行编码,须在设置端口号的地方进行配置,再标签中添加属性:useBodyEncodingForURI=”true”。

三、文件下载

1、字符串转码

语法:String 变量名 = newString(str.getBytes(“当前字符串的编码方式”),“新的编码方式“);

2、在页面设置下载

(1)第一步:response.setHeader(“content-disposition”,”attachment;filename=”+fileName);
(2)第二步:通过文件输入输出流输出文件。

四、request作用域

request可以作为作用域使用,当其作为作用域使用时,类似于Map容器;

1、存值方式

语法:request.setAttribute(“键”,“值“);

2、取值方式

语法:String str = (String)request.getAttribute(键);

3、移出键值对

语法:request.remove(“键”);

4、获取键的集合

语法:Enumeration enums = request.getAttributeNames();
获取键和值:遍历Enumeration集合。

五、请求转发和重定向

1、请求转发

语法:request.setReuqestDispacher(“地址”).forward(“请求对象”,”响应对象”);
特点:
(1)整个过程只有一次请求;
(2)地址栏不发生变化;
(3)效率高;
(4)不能访问外部资源;
(5)绝对路径/xxx :表示根目录之后的/xxx ;
(6)之后的语句依旧会执行,习惯在这之后加一句return;

2、重定向

语法:response.sendRedicrect(“地址”);
特点:
(1)整个过程有两次请求;第一次请求会带会一个302状态码(表示请求重定向,需要重新发一次请求)和第二次请求的地址:location;
(2)地址栏发生变化
(3)效率低
(4)可以访问外部资源(地址为外部资源地址);
(5)据对路径/xxx , 表示端口号之后的/xxx;
(6)之后的语句依旧会执行,习惯在这之后加一句return。

3、请求转发和重定向如图示

20181105获取页面信息 对请求实体编码 文件下载 request作用域 请求转发和重定向 - 图1