• 【2017-09-04】JavaWeb内置对象


    Jsp页面中引入别的页面

    include命令

     <%@ include file="要引入的页面路径"%>

    页面中的form表单提交方式:
    post:
    提交内容不可见, 没有长度限制
    get:
    有长度限制, 提交内容在地址栏可见

    1、application从服务器启动到关闭

    application对象
    application对象是一个全局对象, 生命周期为服务器启动一直到服务器停止, 在这个对象里面可以存放一些全局变量

    setAttribute(String, Object)---设置某个属性和属性值
    getAttribute(String)---获得某个属性的值
    getAttributeNames()---获取application对象中所有的属性名

    2、session会话对象

    session指的是用户在进入一个网站开始到关闭浏览器的时间, Tomcat服务器默认的session有效时间是30分钟, 也就是说, 打开一个网站30分钟之内没有动作, session对象同样也会失效
    session存在服务器的内存中, 服务器中不同的用户对应的session也是不同的, 所以服务器用来判断当前登录的用户是否是同一个的时候就需要session
    session对象是HttpSession的实例
    常用方法:
    long getCreationTime()---返回session对象创建的时间
    String getId()---返回一个sessionid, 是唯一的
    void setAttribute()---设置一个属性和一个属性值
    Object getAttribute()---获取某个属性的属性值
    String[] getValueNames()---以数组的形式获取session对象中所有可用属性的属性名
    setMaxInactiveInterval()---设置session经过多长时间之后失效(默认30分钟)
    getMaxInactiveInterval()---设置session的失效时间(单位是秒)

    session的生命周期:
    创建: 当用户第一次访问某个jsp或者servlet的时候, 服务器就会为当前的访问创建一个session, 并生成一个sessionId, 每次客户端向服务器发送请求的时候, 都会将这个sessionId带过去进行验证

    活动: 在这个页面的各种活动, 比如通过超级连接打开另一个页面, 或者进行各种增删改查的操作, session失效除非要等到浏览器的相关页面全部关闭, 或者session超时, 当再次访问的时候会创建一个新的session, 但是原来的session还会存在, 只不过没有任何请求再带着那个旧的sessionId让服务器去验证了

    销毁:
    三种方法可以销毁session
    1, 调用session.invalidate()方法
    2, session自己过期了
    设置session过期时间也可以在web.xml中设置
    <session-conf>
    <session-timeout>
    10<!-- 单位是分钟 ! -->
    </session-timeout>
    </session-conf>
    3, 服务器重新启动

    3、request请求对象

    <input name="haha" type="text">   必须有name这个属性

    requset.getParameter("haha");      返回input标签输入的值  

      

    String [] str=request.getParameterValues("name ")    获取一个数组

    request.setAttribute("number",12)     设置属性,键值对形式

    request.getAttribute("number")         获取刚刚设置的属性。 

    request.getServerName();   获取登录服务器主机名

    request.getContentType()---返回请求体的MIME类型
    requset.getprotocol()---返回请求用的协议类型和版本号
    request.getServerPort()---获取服务器的端口号

    request.getRealPath(String path)---返回传入的这个路径的物理路径

    request.getRemoteAddr()---返回发送此请求的客户端的IP地址

      

    4、pageContent   当前页面对象

    5、response

    response对象是HttpServletResponse的实例
    常用方法:
    setCharacterEncoding(String name)---设置响应页面使用的字符编码
    setContentType("text/html; charset=utf-8")---设置(MIME类型)请求头
    response.getWriter().append(String content)---向页面输出一段字符串
    out对象的类型是JspWriter, 而response.getWriter()是一个PrintWriter, out对象也可以通过pageContext.getOut()获得, 这两个对象的类型不一样

    out.print(null);会抛出异常, PrintWriter.print(null)不会抛出异常

    JspWriter是一个抽象类, PrintWriter是一个继承了Writer的普通类

    getWriter()方法可以在页面上输出一串字符, out也是一个输出对象, 两者的区别在于, getWriter()方法的执行结果, 总是优先于out对象, 可以使用out.flush()方法, 强行属性缓冲区的内容, 将out对象的输出结果先输出出来

    造成这种现象的原因:
    out对象实际上对PrintWriter是有依赖的, 他需要先将需要输出的内容存到response的缓冲区里面, 然后等待jsp页面中的out满足一定条件之后, 才会调用输出的方法把内容直接输出到页面上

    而PrintWriter是可以直接输出出来的

    转发和重定向(面试98%会问)
    response.sendRedirect(String location)---请求重定向
    客户端行为, 从本质上讲相当于两次请求, 第一次请求的对象不会被保存, 地址栏的Url地址会改变
    request.getRequestDispatcher().forward(request, response)---请求转发
    服务器行为, 相当于一次请求, 转发后请求对象会被保存, 地址栏url不会改变

    6、out

    out.print("要输出的字符串");

    7、page

    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" isErrorPage="true"          
    errorPage="error.jsp"%>           errorPage是在当前页面出错时会跳转到设置的页面   isErrorPage="true"  会把出错信息带过去

    out.print(exception.getMessage());    将页面错误信息打印出来。

  • 相关阅读:
    【mac】homebrew国内源安装加速
    【Mac】快速删除指定文件夹下的.DS_Store文件
    【mac】Mac微信小助手安装和卸载
    如何高效的开展app的性能测试
    什么是C#?什么是DOTNET?
    Xamarin Android使用自签名证书
    产品经理的私房菜
    java并发编程2-Synchronized关键字底层实现原理详解
    VS Code 1.60 发布!竟然可以自动检测编程语言了!
    为什么'x1B'.length===1?x与u知识延伸
  • 原文地址:https://www.cnblogs.com/qq609113043/p/7474618.html
Copyright © 2020-2023  润新知