美文网首页
JavaWeb学习笔记#1-JSP内置对象

JavaWeb学习笔记#1-JSP内置对象

作者: edwin1993 | 来源:发表于2017-05-09 15:46 被阅读0次

    JSP内置对象

    内置对象指web容器创建的对象,不需要new来创建
    常用内置对象

    out对象:

    out对象是JspWriter类的实例,可以向客户端输出内容。

        <%
          out.println("分别输出缓存区大小,剩余大小,是否自动清除。");//依赖servlet库,调用out对象的方法前需要引入tomcat的库文件。
          out.println(out.getBufferSize() + ";" + out.getRemaining() + ";" + out.isAutoFlush());
          
          // print过程中可以用flush方法提前将缓冲内容输出。
        %>
    

    request对象

    客户端的请求会被封装到request对象之中,在请求完成之前,request对象一直有效。

    <form action="request.jsp" name="request" method="post">
    \\传递至reques.jsp
    
    form方式或url方式:
    
    <a href="request.jsp?username=testusernme ">通过url地址参数传递信息</a>
    <%--url传中文可能会出现乱码问题--%>
    
    

    在request.jsp页面中:

    <%
          request.setCharacterEncoding("utf-8");
    //      可以通过该方法设定request传递过程中使用的字符集,无法解决url传参时的乱码问题
        %>
        username <%=request.getParameter("username")%><br>
    

    url乱码问题需要修改tomcat中server.xml中:


    server.xml

    response对象

    该对象具有页面作用域。

    <%
            out.println("normal out ");
    
            PrintWriter printWriter = response.getWriter();
            printWriter.println("from writer");  //appears more faster than out
            response.sendRedirect("index.jsp"); //send request to new page
        %>
    

    请求重定向:客户端行为。response.sendRedirect("url")请求重定向相当于两次请求,只是上一次的请求对象不会保存,地址栏url会改变。
    请求转发:服务器行为。上一次的请求对象会保存,地址栏url不会改变

    request.getRequestDispatcher("request.jsp").forward(request,response);
    

    session对象

    session表示服务器与客户端的一次会话,简单来说就是进入网站到离开网站的时间。保存在服务器内存之中。session对象用于在网页切换过程中保存用户的状态。

        <%
        session.setAttribute("username","edwin");
        session.setMaxInactiveInterval(100); // set 100 second as the session's live time
        %>
        session create time :<%=session.getCreationTime()%><br>
        <%=simpleDateFormat.format(date)%><br>
        session id: <%=session.getId()%><br>
        session attribute: <%=session.getAttribute("username")%><br>
        session live time: <%=session.getMaxInactiveInterval()%>
    
    

    session存活时间:
    session对象默认存活时间约30分钟(Tomcat)。
    session的存活时间可以设定。
    session对象可以通过调用invalidate()销毁。
    session对象在服务器重启后全部销毁。
    完全退出页面后session依然存在,只是非活跃状态。

    //web.xml中配置session存活时间。(eg:10分钟)
    web.xml:
    <session-config>
      <session-timeout>10</session-timeout>
    </session-config>
    

    application对象

    application对象实现了用户之间数据的共享,可以存放全局变量。
    application对象开始于服务器启动,终止于服务器关闭。
    通过set 与 get方法对属性进行操作,getAttributeNames可以获得所有属性名。

        <%
            application.setAttribute("city","shanghai");
            application.setAttribute("postcode","10000");
            application.setAttribute("email","111@163.com");
        %>
    
        city = <%=application.getAttribute("city")%>
        <br>
        application has attributes :
        <%
            Enumeration enumeration = application.getAttributeNames();
            while (enumeration.hasMoreElements()){
                out.println(enumeration.nextElement() + "-------" );
            }
        %>
    

    page 对象

    page 对象指向当前page页本身,类似于this指针。

    pageContext 对象

    pageContext对象提供了对jsp页面所有对象及命名空间的访问,如session,甚至application的某个属性。

        <%session.setAttribute("username","edwin"); %>
    
        <label>get session's attribute by pageContext </label>
        <%=pageContext.getSession().getAttribute("username")%>
      //edwin
        <%
            pageContext.forward("index.jsp"); //跳转到index页面
            pageContext.include("reg.jsp"); //页面中嵌入reg页面
        %>
    

    config 对象

    config 对象在servlet初始化时,JSP引擎为servlet传递信息时会使用到,如servlet参数等。

    exception 对象

    异常对象,当页面产生异常时,就产生了该对象。JSP页面要使用该页面,需要将isErrorPage设为:true。

    <%@ page contentType="text/html;charset=UTF-8" language="java" errorPage="exception.jsp" %>
    //exception 交给exception.jsp处理。
    //exception.jsp中,将isErrorPage置为true;
    <%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %>
    

    附:

    get 与 post区别

    表单提交一般格式如下:

    <form action="actionName" method="get/post" accept-charset="utf-8">
    </form>
    
    get:

    以明文方式通过url提交数据,可以通过url看到数据,且数据大小不超过2KB,但是效率高于post。用于安全性不高且数据量不大的操作,如搜索、查询。

    post:

    将信息封装于HTML HEADER中,用于高安全性且数据量大的情况,如注册,上传。

    get方式,密码出现在地址栏中

    相关文章

      网友评论

          本文标题:JavaWeb学习笔记#1-JSP内置对象

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