首页 > 学院 > 开发设计 > 正文

Servlet中的Requset和Response的学习 --------web部分第十一天

2019-11-10 17:55:12
字体:
来源:转载
供稿:网友

Servlet中的Requset和Response的学习 ——–web部分第十一天

小知识点

服务器每次收到请求,都会开辟一个新的线程。服务器把客户端请求的数据封装到request中,把要做出的响应放到response中。Apcahe网站中有方便开发使用的jar包,来简化开发。

1. Response的介绍

ServletResponse -与协议无关的类型

HttpServletResponse - 和http协议相关的类型

传输状态码,方法如下

sendError(int sc)sendError(int sc String msg)sendStatus(int sc)

响应头:Content—Type,Refresh,Location等等,以下响应头分别适用于单值或多值,还可以适用于加类型的响应头。

setHeader(String name , String value) ;addHeader(String name , String value) ;setIntHeader(String name , int value) ;addIntHeader(String name , int value) ;setDateHeader(String name , long value) ; 适用于单值的毫秒类型的响应头。

addDateHeader(String name , long value) ;

通过响应头的设置可以完成,定向转发,定时刷新,禁用缓存的行为。

标签可以代替响应头。

响应体:通常是html、也可以是图片

ServletOutputStream ,用来向客户端发送字节数据PRintWriter , 用来向客户端发送字符数据!需要设置编码。设置编码为response.setCharacterEncoding(“utf-8”) ;两个流不能同时用。

重新定向的方法 sendRedirect(“地址信息”) ;

2. Request的介绍

封装了所有客户端的请求数据。

获取常用信息

获取客户机的请求方式 , request.getMethod() ;获取客户机的ip , request.getRemoteAddr() ;

获取请求头

String getHeader(String name)int getIntHeader(String name)long getDateHeader(String name)

Enumeration getHeaders(String name) 获取多值请求头

可以通过获取User-Agent识别用户的浏览器和系统信息。

获取请求的URL

例: http://localhost:8080/myproject/MyServlet?username=xxxx&passWord=yyyyy

String getScheme() ; 获取协议 : http

String getServerName() ; 获取服务器名 : localhostString getServerPort() ; 获取服务器端口 : 8080String getContextPath() ; 获取项目名称 : /myprojectString getServletPath() ; 获取servlet部分 : /MyServletString getQueryString() ; 获取参数部分 : username=xxxx&password=yyyyyString getRequestURI() ; 获取请求URI,等于项目名加Servlet路径 : /myproject/MyServletString getRequestURL() ; 获取请求URL,等于不包含参数的整个请求路径 : http://localhost:8080/myproject/MyServlet

获取请求参数

String getParameter(String name) ; 获取指定名称的参数String[] getParameterValues(String name) ; 适用于获取多值的指定名称的参数Enumeration getParameterNames() ; 获取所有请求参数的名称Map

3. 编码

URL编码

是客户端与服务器之间传递参数的一种方式。URL编码需要先指定一种字符编码,把字符串解码后,得到byte[] ,经过处理显示出来Post请求默认使用URL编码,tomcat会自动使用用URL解码。URL编码: String username = URLEncoder.encode(username , “utf-8”) ;URL解码: String username = URLDecoder.decode(username , “utf-8”) ;
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表