美文网首页
Request、Response、JSP、session概述

Request、Response、JSP、session概述

作者: _NineSun旭_ | 来源:发表于2019-03-06 21:21 被阅读0次

request :

  • 结构:

请求行:
方法名(空格)URI(空格)版本
请求头:
浏览器信息
空行:请求头结束
请求数据:post方法

通过request方法获取参数,获取后都是字符串类型。

  • request常见方法:

.getMethod();获得请求提交方式
.getRequestURI();获得请求URI
.getHeader("User-Agent");获得请求头特定项
.getRemoteAddr();获得请求IP地址
.getContextPath();返回客户端请求访问web应用的URL入口 如:URL:http://localhost:8080/helloapp/info,该方法返回/helloapp;
.getCookies();返回HTTP请求中的所有cookie
.getQueryString();获得请求中的查询字符串,?后面的内容
.setCharacterEncoding("utf-8");设置字符集

response:

  • response常见方法:
                .sendRedirect(); 返回指定页面
                .getOutputStream(); 返回ServletOutputStream对象,用来输出二进制的正文数据。
                .getWriter(); 返回一个PrintWriter对象,用来输出字符串形式的正文数据。
                .setCharacterEncoding("utf-8");设置字符集
                .setContentType();设置响应正文的MIME类型   
                    MIME类型:描述消息内容类型的因特网标准,指定浏览器按照什么类型进行处理该数据。
                    三种方式:
                    1.res.setContentType("text/html;charset=utf-8");                                                                         
                    2.res.setContentType("text/html");res.setCharacterEncoding("utf-8");
                    3.res.setHeader("Content-type","text/html;charset=utf-8");
                .setBufferSize(int size);设置存放数据正文的缓冲区大小。
                .getBufferSize();返回存放数据正文的缓冲区大小。
                .reset(); 清空缓冲区数据,并清空响应状态码和响应头
                .restBuffer();只清空缓冲区数据
                .flushBuffer();强制把缓冲区数据发送到客户端
                .isCommitted();返回布尔值,true:表示缓冲区内容已发送到客户端。
    将缓冲区内容发送到客户端几种方法:
                1.缓冲区数据满,OutputStream或PrintWriter对象会自动发送。
                2.调用.flushBuffer()方法
                3.调用OutputStream或PrintWriter对象的flush()或close()方法。
    为了保证数据全部提交到客户端,需要在数据输出完毕后调用OutputStream或PrintWriter对象的close()方法。如果servlet中service没有关闭,Tomcat会在调用service方法后关闭输出流,保证数据全部提交到客户端。
    如果要设置MIME类型或字符集需要先进行setContentType()和setCharacterEncoding("utf-8")进行设置,才能进行数据传输。
                
    禁止客户端缓存页面:
                response.addHeader("Pragma","no-cache");  --适用HTTP1.0的浏览器,不缓存页面
                response.setHeader("Cache-Control","no-cache");--适用HTTP1.1的浏览器,不缓存页面
                response.setHeader("Expires","0");--设定网页过期时间,立即过期。

JSP

    重定向和请求转发:
            重定向:
                    站外跳转,网址改变,返回一个URL给客户端,客户端重新发出请求,进行两次完整的请求响应过程,.sendRedirect("URI");绝对路径“/”后写项目名,取不到request里的值?只能从session中取,可以跨域访问,性能低。
            请求转发:
                    站内跳转,网址不变,客户端只发出一次请求,共享response和request对象, RequestDispatcher rd = request.getRequestDispatcher("URL"); rd.forword(req,res);框架中比较常用。绝对路径“/”后写此应用下的文件名,可以从request中取值,不能跨域访问,性能高
                    
    JSP:是一种文件。
            1.静态内容:html
            2.指令:内部是java代码,通常用来导包或引入文件。
                    <%@ page  常用来设置文本格式contentType、响应流的编码格式pageEncoding、导包import、语言language
                    <%@ include file=""  包含外部另一文件,
                    <%@ taglib  引入标签库的定义
            3.内部是java代码
                表达式<%= :生成在servlet方法体中
                脚本<% :生成在servlet的doPost()/doGet()方法体中
                声明<%!:jsp中声明方法、属性。
                <% return ; %> :后面代码不执行。
                编译时先执行java代码段。
            4.动作:标签,有前缀。
            5.自定义标签:将java代码封装成标签,解析变慢,开发缓慢,淘汰。
            
    内置9大对象:
            page、req、res、session、application(相当于servletContext)、out、config、exception、pagecontext。
            
    注释:
            html:<!--  -->
            css: /*   */
            java: // 
            jsp:<%--   --%>
    EL表达式       

session

  • 概述:

由Tomcat创建javax.servlet.session.HTTPSession
在服务器内存中开辟空间创建会话,存放ip、浏览器等信息
主要给不同请求和响应(客户端一系列的请求响应)存取共享数据
session中主要以键值对的形式存放数据
一旦代码中涉及session,不进行用户登录是不能够进行访问的。

相关文章

网友评论

      本文标题:Request、Response、JSP、session概述

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