• Java遇见HTML——JSP篇之JSP内置对象(上)


    一、JSP内置对象简介

     1.1、内置对象简介

    JSP内置对象是WEB容器中创建的一组对象,可以直接使用不需要new,如截图中的out 对象。

    JSP有九大内置对象:

    • 五大常用对象: out、request、response、session、application
    • 其它四个不常用对象:page、pageContext、exception、config

    二、web程序的请求与响应模式

    用户发送请求(request),服务器给用户响应(response)

    例子:

    三、out对象

     3.1、什么是缓冲区?

    缓冲区:Buffer,所谓缓冲区就是内存的一块区域用来保存临时数据。

    比如:IO输出最原始的就是一个字节一个字节输出,就像一粒一粒吃一样,效率太差。缓冲区可以先将多个字节读出来,再一次性的输出,提高效率。

     3.2、out对象

    out对象是JspWrite类的实例,是向客户端(浏览器)输出内容常用的对象。

    常用方法如下:

    具体例子:

    运行结果:

      

    注:

    • out.flush()

    运行结果:

    此时缓冲区的剩余大小变多了,主要是因为使用了out.flush,缓冲区把前面flush之后的信息给清空了,所以缓冲区就变大了。

    out.flush();之后会释放缓冲区大小。

    • out.clear()

    如果flush之后添加了clear方法:

    运行结果:

    并且后台抛出了异常。在执行flush方法之后再执行clear方法,会抛出异常。则clear方法之后的程序就不会继续执行了。

    • out.clearBuffer()

    如果flush方法之后再调用clearBuffer(),是不会抛出异常的。

    四、get与post提交方式的区别

    表单常用的提交方式:get 与 post

    比如:

    get方式

    post方式:

    五、request对象

    其中:

    String getParameter(String name)//获取单个参数值
    String[] getParameterValues(String name)//获取多个参数值(获得提交参数具有相同名称的集合),如获取checkbox的值

    比如这个注册表单

    数据提交到request.jsp页面:

    运行结果:

    解决中文乱码问题:

    request.setCharacterEncoding(“utf-8”);//解决post请求传递中文参数的乱码问题,设置的编码要与发送请求的页面的编码设置的一致。但是无法解决URL链接传递中文参数的乱码问题。

    通过路径URL传参(get方式)出现中文乱码问题。

    此时解决get方式传递中文参数需要在tomcat的server.xml中,在connector标签添加属性URIEncoding="utf-8"

    setAttribute()设置属性时是以键值对的形式

    getAttribute()获取属性只需要输入键的值,就可以获得属性的值。

    请求体的MIME类型:<%=request.getContentType() %><br>
    协议类型及版本号:<%=request.getProtocol() %><br>
    服务器主机名:<%=request.getServerName() %><br>
    服务器端口号:<%=request.getServerPort() %><br>
    请求文件的长度:<%=request.getContentLength() %><br><!--单位是字节-->
    请求客户端的IP地址:<%=request.getRemoteAddr() %><br><!--//只能获取静态的IP地址,动态的话获取不到-->
    请求的真实路径:<%=request.getRealPath("request.jsp") %><br>
    请求的上下文路径:<%=request.getContextPath() %><br><!--是项目的虚拟路径-->

    运行结果:

    六、response对象

     

    实例:

    运行结果:

    response对象获得的是PrintWriter对象,输出在内置对象out 前面。(printwriter输出流对象提前于out对象输出)

    运行结果:

    说明:out对象的输出晚于PrintWrite对象的输出,可以利用out.flush() 将printWrite对象的输出靠后。(利用flush()清空缓存区强制输出。)

    response 的sendRedirect("..jsp")//请求重定向(相当于让客户端发一个新的请求,让这个请求定位到指定页面)

    七、请求重定向请求转发的区别

    举个生活中的例子:

    1请求重定向是客户器端行为而请求转发是服务器端行为
    2请求重定向相当于两次请求,地址栏地址会发生变化 
    3重定向是response对象的方法而请求转发是request对象的方法 
    4请求重定向不会保存原有的request对象而请求转发会保存原有的request对象

  • 相关阅读:
    HTML DOM 06 节点关系
    HTML DOM 05 事件(三)
    HTML DOM 05 事件(二)
    HTML DOM 05 事件(一)
    html DOM 04 样式
    html DOM 03 节点的属性
    html DOM 02 获取节点
    html DOM 01 节点概念
    JavaScript 29 计时器
    JavaScript 28 弹出框
  • 原文地址:https://www.cnblogs.com/Qian123/p/5271973.html
Copyright © 2020-2023  润新知