• JSP数据交互


    内置对象:

      JSP内置对象是Web容器创建一组对象,不用通过手动new就可以使用

    JSP九大内置对象:

       名称                                                类型                      作用域                         

      session  (用来保存会话信息,可以实现在同一-用户的不同请求之间共享数)          javax.servlet.http.HttpSession                  Session  

      application  (代表了当前应用程序的上下文,可以在不同的用户之间共享信息)         javax.servlet.ServletContext                    Application

      out  (用户向客户端,浏览器你输出数据)                        javax.servlet.jsp.JspWriter                   page

      request  (封装了来自客户端,浏览器的各种信息)                    javax.servlet.ServletRequest                 Request

      response  (封装了服务器的响应信息)                          javax.servlet.SrvletResponse                 page

      pageContext  (提供了对JSP页面所有对象以及命名空间的访问)              javax.servlet.jsp.PageContext                 page

      page  (指向了当前JSP程序本身)                            javax.lang.Object                       page

      exception  (封装了JSP程序执行过程中发生的异常和错误信息)               javax.lang.Throwable   

      config  (封装了应用程序的配置信息)                            javax.servlet.ServletConfig                  page

    out对象:

      方法名          说明

      print或println      输出数据

      newLine        输出换行字符

      flush           输出缓冲区数据

      close          关闭输出流

      clear           清除缓冲区数据,但不输出到客户端

      clearBuffer       清除缓冲区数据,输出到客户端

      getBufferSize        获得缓冲区大小

      getRemaining        获取缓冲区中没有被占用的空间

      isAutoFlush         是否为自动输出

        

    request对象:

      方法名          说明

      isUserRole      判断认证后的用户是否属于某一成员组

      getAttribute      获取指定属性的值,如该属性不存在返回null

      getAttributeNames   获取所有属性名的集合

      getCookies      获取所有Cookie对象

      getCharacterEncoding 获取请求的字符编码方法

      getContentLength   返回请求正文的长度,如不确定返回-1

      getHeader       获取指定名字报头值

      getHeaders      获取指定名字报头的所有值,一个枚举

      getHeaderNames   获取所有报头的名字,一个枚举

      getInputStream    返回请求输入流,获取请求中的数据

      getMethod      获取客户端向服务器端传送数据的方法

      getParameter      获取指定名字的参数值

      getParameterNames  获取所有参数的名字,一个枚举

      getParameterValues  获取指定名字参数的所有值

      getProtocol      获取客户端向服务器端传送数据的协议名称

      getQueryString     获取一get方法向服务器传送的查询字符串

      getRequestURL   获取发出请求字符串的客户端地址

      getRemoteAddr   获取客户端的IP地址

      getRemoteHost    获取客户端的名字

      getSession      获取和请求相关的会话

      getServerName    获取服务器的名字

      getServerPath    获取客户端请求问价的路劲

      getServerPort    获取服务器的端口号

      removeAttribute    删除请求中的一个属性

      setAttribute      设置指定名字参数值

    response对象:

      方法名          说明

      addCookie      添加一个Cookie对象

      addHeader      添加Http文件指定名字开头信息

      containHeader    判断指定名字Http文件信息是否存在

      encodeURL      使用sessionid封装URL

      flushBuffer      强制把当前缓冲区内容发送到客户端

      getBufferSize     返回缓冲区大小

      getOutputStream    返回客户端的输出对象

      sendError        向客户端发送错误信息

      sendRedirect     把响应发送到另一个位置进行处理

      setContentType    设置响应的MIME类型

      setHeader        设置指定名字的Http文件头信息

        

    session对象:

      方法名          说明

      getAttribute      获取指定名字的属性

      getAttributeNames   获取session中全部的属性名字,一个枚举

      getCreationTime    返回色session的创建时间

      getId          获取回话标识符

      getLastAccessedTime   返回最后发送请求的时间

      getMaxInactiveInterval  返回session对象的生存时间单位千分之一秒

      invalidate       销毁session对象

      isNew          每个请求是否会产生新的session对象

      removeAttribute    删除指定名字的属性

      setAttribute      设置指定名字的属性值

    application对象

      方法名            说明

      getAttribute      获取应用对象中指定名字的属性值

      getAttributeNames    获取应用对象中所有属性的名字,一个枚举

      getInitParameter      返回应用对象中指定名字的初始参数值

      getServletInfo     返回Servlet编译器中当前版本信息

      setAttribute      设置应用对象中指定名字的属性值

    config对象:

      方法名            说明

      getServletContext    返回执行的Servlet的环境对象

      getServletName     返回所有执行的Servlet的名字

      getInitParamter     返回执行名字的初始参数值

      getInitParamterNames  返回该JSP中所有初始参数名,一个枚举

    page对象:

      方法名            说明

      toString          将当前项目的信息打印出来

      getClass         返回当前Object类

      hashCode        返回page对象的hashCode值

      equals          用于比较对象是否与当前对象相同

    pageContext对象:

      方法名            说明

      forword         重定向到另一页面或Servlet组件

      getAttribute        获取某范围中指定名字的属性值

      findAttribute       按范围搜索指定名字的属性

      removeAttribute      删除某范围中指定名字的属性

      setAttribute        设定某范围中指定名字的属性值

      getException        返回当前异常对象

      getRequest        返回当前请求对象

      getResponse        返回当前响应对象

      getServleConfig      返回当前页面的ServletConfig对象

      getServletContext      返回所有页面共享的ServletContext对象

      getSession         返回当前页面的会话对象

    post和get的区别:
         1.从安全角度考虑   post更安全一些   get不安全 ;
         2.post方式提交数据可以提交大概几GB的数据   get方式提交数据最大也就到几KB;

    解决乱码的方案:
        post乱码解决:request.setCharacterEncoding("UTF-8");
        get乱码解决: hobbys[i]=new String(hobbys[i].getBytes("ISO-8859-1"),"UTF-8");

    HTTP状态码:
          1** 信息,服务器收到请求,需要请求者继续执行操作
          2** 成功,操作被成功接收并处理
          3** 重定向,需要进一步的操作以完成请求
          4** 客户端错误,请求包含语法错误或无法完成请求
          5** 服务器错误,服务器在处理请求的过程中发生了错误
      
        404和500错误状态码配置页面:
             在当前项目的web.xml当中加入如下配置信息:
              <error-page>
               <error-code>500</error-code>
               <location>/500.jsp</location>
              </error-page>
              <error-page>
               <error-code>404</error-code>
               <location>/404.jsp</location>
              </error-page>

    response:响应
          转发:(是在服务器内部进行,无法访问到除内部以外的资源):request.getRequestDispatcher("/response/welcome.jsp").forward(request, response);
          重定向:(全路径):response.sendRedirect("/Chap02/response/Login.jsp");

    contentType和pageEncoding区别:

        contentType定义响应的资源类型,也可以包含JSP页面和响应内容的字符集;

        pageEncoding指定JSP文件的字符集及默认的contentType字符集;

    转发和重定向区别:

             1.转发是在服务器内部进行,重定向是客户端完成的,需要写入全路径,地址xxxxxxx
             2.转发请求1次,其余的操作都是在服务器内部进行的;重定向请求至少2次,其余的请求命令客户端再次请求一个URL
             3.转发可以携带这次请求的数据,重定向不带数据

    session会话:

        一个会话就是在一段时间内,一个用户和Web服务器的一连串相关的交互过程,它可以包含浏览器与服务器之间的多次请求,响应过程;

        会话机制是一种服务器端的机制,当用户向服务器发出第一次请求时,服务器会为该用户创建唯一会话,会话将一直延续到用户访问结束;

        当服务器接收到客户的请求时,服务器首先会判断是否创建了与该客户端对应的会话,如果已经创建,就将该请求与此会话相关联,如果没有创建,则创建一个新会话,此客户端之后发送的请求将关联到该会话;

        而服务器判断是否创建了相关会话,是通过一个唯一的标识sessionid来实现的,如果在客户端请求一个包含一个sessionid,则说明在此前已经为客户端创建了会话,服务器就会根据这个sessionid将对应的会话对象读取出  来;否则就会创建一个新的会话对象生成一个sessionid,并将sessionid在本次响应的过程返回客户端保存;

    会话失效:

      方法一:

        //时间单位为秒

        session.setMaxInactiveInterval(600);

      方法二:

        //时间单位为分钟

        <session-config>

          <session-timeout>10</session-timeout>

        </session-config>

    session会话对象:
        会话:在一段时间内,客户端和服务器建立连接的过程,只要会话时间不过期,只要会话不关闭,那么会话就一直存在,那么会话中保存的数据就一直存在
          不同浏览器的会话是不相等的;
           可以设置Session的会话时长:
              1.session.setMaxInactiveInterval(秒数)
              2.在项目web.xml当中去设置Session的实效时长:
           <session-config>
              <session-timeout>1</session-timeout>
           </session-config>
         手动设置Session实效:
            session.invalidate();
        
        会话保存数据:
           session.setAttribute(String name, Object value);
           Object value=session.getAttribute(String name);
        删除会话当中保存的数据:
           session.removeAttribute(String name);

    incloud
         <%@  include file="loginControl.jsp" %>

      

  • 相关阅读:
    Entity Framework 连接低版本数据库
    Validate Disk Failover Failed
    Unable to create Azure Mobile Service: Error 500
    查看Visual Studio异常内容
    RDLC An unexpected error occurred while compiling expressions. Native compiler return value: '-1073741511'
    Redis 64 steps
    IQueryable join 的问题
    jquery 通知页面变化
    jquery 让滚动条处于div底部
    SSIS 文件系统任务无法使用变量配置目标路径
  • 原文地址:https://www.cnblogs.com/wnwn/p/11115504.html
Copyright © 2020-2023  润新知