servlet处理请求

来源:互联网 发布:欧文和库里总决赛数据 编辑:程序博客网 时间:2024/05/22 17:41
使用Servlet处理HTTP响应
状态行----http协议,状态码,状态描述
HTTP状态码:100-199 信息行代码;200-299 表示客户请求成功;
300-399 表示已经移走的资源文件,指示新的地址;
400-499 由客户端引起的错误;500-599 表示由服务器端引发的错误。
设置状态码:HttpServletRensponse的setStatus(arg)方法;参数arg是一个整数;
sendError(状态码,状态描述);
重定向--setStatus(302); setHeader(“location”,“”)
在PrintWrite之前设置状态码。
设置响应内容类型---MIME类型
MIME类型:告诉浏览器,服务器发送回去的数据类型是什么,客户端启动相应的应用程序来处理响应内容。 setContentType("text/html")
通过响应头设置---setHeader("Content-Type","text/html;charset=utf-8");内容在解析是编码格式设置为utf-8
自动刷新----setHeader(“refresh”,“1”);1为刷新时间,单位为秒
-setHeader(“refresh”,“5;newhtml”)5秒后跳到newhtml
控制数据无法缓存----setHeader(“Pragma”,“No-cache”)
setHeader(“Cache-Control”,“No-cache”)
设置响应消息体----
PrintWriter out = response.getWriter();----字符输出流对象
out.print( )和out.write( )-----两者都不会刷新页面,只在原页面上写数据。两个 方法都重写了Writer类的write方法。
out.print( )可以将各种不用的数据转换为字符串输出;
out.write( )只能操作字符、字符数组、字符串等与字符相关内容。
设置内容在传输过程中的编码格式:response.setCharacterEncoding("utf-8");
PrintWriter out = response.getOutputStream();---得到二进制输出流对象
设置重定向-----response.sendRedirect(arg0);
重定向状态码- 302;表示资源被移走,重新请求新的资源
重定向是客户端发起的两次请求
调用sendRedirect方法不用设置状态码
---------------------------------------------------------------------------------
servlet处理HTTP请求
get提交----用于获取到服务器资源。文本
1、地址栏直接输入服务器资源;
2、通过js直接访问;‘
3、超链接访问
post提交----主要用于传输数据。文本、二进制数据

请求静态页面或者图形文件时用GET;
URL--统一资源定位符;uri--统一资源标识符0
request对象封装了请求数据。
请求派发
每个客户的请求可以传递给很多servlet以及web应用程序中的其他资源
整个过程完全在服务器端完成;不需要任何客户端浏览器的行为
不需要在客户端浏览器和服务器端之间传递特殊信息
通过javax.servlet.RequestDispatcher对象实现

当前请求派发后,这个资源就将控制权移交给下一个资源
forward直接交出控制权;
include 将其他资源的内容包含到本资源中来,最终控制权会回到本资源
请求派发和重定向区别:
1、请求派发状态码307,重定向302
2、重定向让客户端完成,地址栏改变;请求派发在服务器端完成,不影响客户端
3、请求派发只能在本服务器完成,重定向可以访问其他服务器的资源
0 0