您现在的位置:首页 >> 前端 >> 内容

web基础--02请求

时间:2017/1/7 9:23:00 点击:

  核心提示:http 状态码100-199:表示信息性代码,请求正在进行。200-299:请求成功300-399:表示用于已经移走的资源文件。指示新地址。400-499:表示又客户端引发的错误500-599:表示...

http 状态码

100-199:表示信息性代码,请求正在进行。

200-299:请求成功

300-399:表示用于已经移走的资源文件。指示新地址。

400-499:表示又客户端引发的错误

500-599:表示由服务器端引发的错误

设置状态码。

Response.setStatus(num);

设置错误信息。

responser.sendeError(404,“not find”);

设置状态码300-399

Response.setStaus(302);

repponse.setHeader(“Location”,”资源网页”) 资源重定向。

编码集设置 :

req.setCharacterEncoding("utf-8");

resp.setCharacterEncoding("utf-8");

resp.setContentType("text/html;charset=utf-8");

设置响应内容的类型,设置mime类型

什么是mime类型。 告诉浏览器,服务器发送回去的数据类型是什么,客户端启动相应的应用程序来处理响应的内容。

Response.setcontentType(“text/html;charset=utf-8”); 按照utf-8的格式解析

通过响应头设置mime类型。

.setheader(“contentType”,”text/html;charset=utf-8”); tomcat 默认编码集是ISO8859-1;

设置内容在传输的过程中编码格式.

SetcharsetEncoding();

自动刷新功能

.setHeader(“refresh”,”秒数;index.jsp”);

控制数据无法缓存

.setHeader(“Pragma”,”No-cache”)

.setHeader(“Cache-Contorl”,”No-cache”)

.serHeader(“Expires”,system.cuttentTimerMillis(毫秒数)) 设置过期时间。

设置消息体

输出流对象。

PrintWriter out =Resp.getWriter(); 字符输出流对象

Out.print() 输出所有格式

Out.write() 只能输出字符

Print和write

共同点:两者都不会刷新页面。只在原来的页面上写数据。两个方法都是重写了writer类里面的weiter方法

不同点:print可以将不同的数据转换为字符串输出,writer只能操作,字符,字符数组,字符串。

获取到字节流输出对象

OutputStream os= Response.getoutputStream();

将字符串转化成字节数组,再输出

字符串.getBytes()

下载文件

1、设置响应编码集

2、获取文件要下载的路径,通过上下文对象获取到文件的物理路径

.getServletContext().getRealPath(“路径”)

3、设置响应头,控制浏览器打开下载框

Resp.serHeader(“content-disposition”,”attchment;filename=”+”文件名”)

中文文件

Resp.serHeader(“content-disposition”,”attchment;filename=”+

New String(文件名.getbytes(“”),”服务器编码集”))

4、获取到图片的二进制流

//---FileReader fr = new FileReader(path);字符流

Inputstrem in =new fileinpitstrem(path);

5、创建一个二进制流

//---printwiter out=resp.getwriter();

Outputstrem out= resp.getoutputstrem();

6、创建缓存区

Int len=0;

Byte b=new byte[1024];

While((len=in.read(b))>0){

Out.writer(by,0,len);

}

通过字符流操作二进制的文件,可能出现内容丢失。

重定向

1Resp.sendrditect (“目标网页”);

2 设置响应头的方式 Response.setStaus(302);

repponse.setHeader(“Location”,”资源网页”)

内容:

1.重定向的状态码是302,表示资源被移走,重新请求新的资源

2.重定向是客户端发起的两次请求。

3.调用sendredirect方法可以不用设置状态码

使用servlet处理http请求

提交方法

Doget:用于获取到服务器的资源

1.地址栏直接输入服务器资源

2,通过js直接访问

3,超链接访问。

Dopost :

主要是用于传输数据,客户端向服务器发送数据。文本、二进制的数据。

使用:1请求一个静态页面或者图形文件时使用get方法。因为仅仅需要发送文件名

2发送大数据使用post 因为没有大小限制

3上传文件时用post

4发送保密信息时使用post

获取到请求行的内容。

获取到客户请求的方法

String Method =Requ.getMethod();

获取到请求的url地址 --url统一资源定位符

String url =requ.getrequestUrl().toString()

获得uri --uri统一资源标识符

requ.getrequestUri()

获取到请求附带的参数;

Requ.getqueryString()

获取到客户端的ip

Requ.getremoteaddr();

获取到服务器的内容

Requ.getlocalPort(); 端口返回int类

获取到请求头:

Requ.getheader(“name”);

获取到所有的请求头

Enumeration num = req.getheaderName(); 返回枚举

Getdateheader(); 返回日期类型。

setChacrEcncoding();

Requ.getparameter(“key”);

获取到客户端传递的多个数据。

Requ.getparametervalues(“key”)

遍历--

请求派发:

整个过程是在服务器端完成。(客户端只需要发一次请求)

Reqdispatcher rd= Req.getreqdispatcher(“跳转页面”)

Rd.forward(req,resp)

当前请求派发后这个资源就将控制权移交给下一个资源。

但是java'代码任然要执行。

Include(req,resp)

包含:将其他资源的内容包含到本资源来,最终控制权会回到该服务器上。

请求派发和重定向的区别

1.请求派发的状态307 重定向是302

2.请求派发是在服务器端完成,不影响客户端,地址栏不会发生变化。

3.请求派发只能在本服务器完成,重定向是可访问其他服务器的资源。

4. 重定向加/ Js提交、超链接提交、重定向、都要加上项目名字。提交的路径是找到webapps目录(不加/是相对路径)

请求提交

Js提交、超链接提交、重定向、都要加上项目名字。

请求派发默认调用dopost

Tags:WE EB B基 基础 
作者:网络 来源:arthas0078