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

JSP内置对象

内置对象指web容器创建的对象,不需要new来创建
JavaWeb学习笔记#1-JSP内置对象_第1张图片
常用内置对象

out对象:

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

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

request对象

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

\\传递至reques.jsp form方式或url方式: 通过url地址参数传递信息 <%--url传中文可能会出现乱码问题--%>

在request.jsp页面中:

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

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()%>
<%=simpleDateFormat.format(date)%>
session id: <%=session.getId()%>
session attribute: <%=session.getAttribute("username")%>
session live time: <%=session.getMaxInactiveInterval()%>

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

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

  10


application对象

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

    <%
        application.setAttribute("city","shanghai");
        application.setAttribute("postcode","10000");
        application.setAttribute("email","[email protected]");
    %>

    city = <%=application.getAttribute("city")%>
    
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"); %>

    
    <%=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区别

表单提交一般格式如下:



get:

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

post:

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

JavaWeb学习笔记#1-JSP内置对象_第2张图片
get方式,密码出现在地址栏中

你可能感兴趣的:(JavaWeb学习笔记#1-JSP内置对象)