美文网首页jsp servlet
HttpServletRequest、HttpServletRe

HttpServletRequest、HttpServletRe

作者: 唯死撑尔 | 来源:发表于2019-05-10 19:44 被阅读0次

HttpServletRequest:一次来自客户端的请求的相关信息

        请求行

                request.getMethod()  获取http请求方式

                request.getRequestURI()  获取统一资源标识符

                request.getRequestURL() 获取统一资源定位符

                request.getQueryString() 获取查询字符串

                request.getProcotol()  获取协议版本

                request.getScheme()  获取协议名

        请求头

                request.getHeader() 获取请求头信息

                request.getHeaderNames() 获取所有请求头的名字

        实体内容

                request.getParameter() 获取请求实体中的参数、或URL后的请求参数

                request.getInputStream() 获取请求参数,当表单提交的enctype="multipart/form-data"

        网络相关信息

                request.getRemoteAddr()  获取客户端的IP地址

                request.getRemotePort()  获取客户端的端口号

                request.getLocalAddr()  获取服务器端的IP地址

                request.getLocalPort()  获取服务器端的端口号

HttpServletResponse:一次发送给客户端的响应的相关信息

        状态行

        应答头

                response.setHeader()  设置应答头

                response.setContentType("text/html; charset=utf-8")  设置响应内容及字符集

        响应实体

                response.getWriter()  获取打印流,输出字符数据

                response.getOutputStream()  获取字节输出流,输出二进制数据

中文乱码问题

一、客户端请求服务器的数据有乱码

        1.get方式请求

                ①修改tomcat/conf/server.xml,在<Connector> 标签中添加属性useBodyEncodingForURI="true"

                ②在获取请求数据之前,设置  request.setCharacterEncoding("utf-8");

        2.post方式请求

                在获取请求数据之前,设置  request.setCharacterEncoding("utf-8");

二、服务器返回给客户端的数据有乱码

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

做表单时常用

请求转发

request.getRequestDispathcer("path").forward(reqeust,response);

请求转发的特点:

        1.地址栏没有发生变化

        2.用户只发起了一次请求

        3.请求转发只能转发本服务器以内的资源

        4.由于请求是同一个对象,所以可以利用该request做servlet之间数据的传输

重定向

response.sendRedirect("path")

重定向的特点:

        1.地址栏会发生改变

        2.用户发起了两次请求

        3.重定向可以访问服务器以外的资源

        4.重定向由于请求多次的,所以HttpServletRequest不是同一个对象,故不能使用它传递数据

Cookie:在浏览器中保存用户的信息

使用:由服务器创建,发送到浏览器保存,之后随着请求发回到服务器

1.创建cookie

Cookie cookie = new Cookie("name","value");

2.发送cookie到浏览器

response.addCookie(cookie对象);

3.获取来自客户端的cookie

Cookie[] cookies = request.getCookies();

使用注意:

        1.cookie第一次是由servlet发送到浏览器中,第一次不能获取cookie

        2.不同的浏览器存放的cookie不是同一个

        3.如果设置了cookie的maxage,则cookie会保存在浏览器所在电脑的硬盘上,如果没设置该属性,则保存在浏览器的内存中

Session:在服务器中保存用户信息

使用:在服务器端创建Session,来保存当前访问服务器的用户的信息

1.获取session(如果已经创建了session,则返回当前session)或创建session:

HttpSession session =  request.getSession();

2.设置session最大不活跃时间

session.setMaxInactiveInteval() //以秒为单位

3.使用session保存信息

session.setAttribute(String key,Object value);

session.getAttribute(String key);

4.立即销毁session

session.invalidate();

相关文章

网友评论

    本文标题:HttpServletRequest、HttpServletRe

    本文链接:https://www.haomeiwen.com/subject/rmlzoqtx.html