zoukankan      html  css  js  c++  java
  • 九大内置对象

    jsp九大内置对象:

    5, response 响应对象

    6, page 当前页面对象

    7, out 输出流对象

    8, exception 异常

    9, config ServletConfig/FilterConfig对象

    作用域(每一种作用域的生命周期是不一样的):

    1, application 全局作用域

    2, session 会话作用域

    3, request 请求作用域

    4, pageContext 页面作用域

    优先级(按照生命周期的长短):

    application > session > request > pageContext

    页面中的form表单提交方式:

    post:

    提交内容不可见, 没有长度限制

    get:

    有长度限制, 提交内容在地址栏可见

    request对象:

    request对象是HttpServletRequest这个类的实例

    常用方法:

    String getParameter(String name)---返回name指定的参数的值

    String[] getParameterValues(String name)---返回一个数组, 是包含那个参数名的所有的人

    void setAttribute(String, Object)---设置某个作用域中的属性

    Object getAttribute(String name)---获取某个作用域中的属性

    String getServerName()---返回请求服务器的主机名

    String getContentType()---返回请求体的MIME类型

    String getprotocol()---返回请求用的协议类型和版本号

    int getServerPort()---获取服务器的端口号

    int getContentLength()---返回请求体的长度(单位是字节)

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

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

    String getContextPath()---返回上下文路径

    解决request中出现中文乱码的问题

    post方式:

    通过使用request.setCharacterEncoding("utf-8")来设置

    get方式:

    通过修改Tomcat服务器中的server.xml配置文件来设置

    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不会改变

    举例说明: 办证

    Session对象

    session指的是用户在进入一个网站开始到关闭浏览器的时间, Tomcai服务器默认的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>

  • 相关阅读:
    HLG 1522 子序列的和【队列的应用】
    POJ 3273 Monthly Expense【二分】
    HDU 4004 The Frog's Games 【二分】
    POJ 2001 Shortest Prefixes【第一棵字典树】
    POJ 2823 Sliding Window【单调对列经典题目】
    HDU 1969 Pie 【二分】
    POJ 3125 Printer Queue【暴力模拟】
    POJ 3250 Bad Hair Day【单调栈】
    字典树【模板】
    验证码 Code
  • 原文地址:https://www.cnblogs.com/angangxiaofa/p/7261021.html
Copyright © 2011-2022 走看看