2020 11.9曾宇欣

心得体会:

最近学习的知识有变难了,很多地方不理解,还需要多练习。

知识点:

Jsp

  1. jsp 三种标签
    • <% 代码%>
    • <%= 表达式%> 输出语句
    • <%! 变量 %> 定义 声明
    • <%– jsp注释 –%>
    • <%@include file="页面路径"%> 页面拼接
  2. 内置对象appliction

    application 是JSP的内置对象,它是 javax.servlet.ServletContext 接口的对象。所以所有的用

    户都可以访问application中存放的对象,所以application对象对于所有用户来说相当于是一个公共的存

    储区域。application对象的生命周期从Web应用程序启动开始一直到Web容器关闭为止。

    • 常用方法

      void setAttribute(String, String)  // 向application内存储对象
      Object getAttribute(String name)  // 根据name向application中获取存储的对象
      void removeAttribute(String name) // 根据name从application中删除存储对象
      String getRealPath(String path) // 返回当前应用程序在服务器文件系统中的绝对路径
  3. 四大作用域

    所谓“作用域”就是“信息共享的范围”,也就是说一个信息能够在多大的范围内有效,也称为四大存储范围。

    • application 服务器启动到停止这段时间

    • session HTTP会话开始到结束这段时间

    • request HTTP请求开始到结束这段时间

    • page 当前页面从打开到关闭这段时间

      四大作用域范围从上到下依次递减,即从大到小是 application > session > request > page

    page

    存储在page 作用域的数据,仅限于在用户请求的当前页面中被获取,离开当前JSP页面,则page中的所有属性就会丢失。操作page作用域使用pageContext内置对象。

    request

    存储在request作用域中的数据,在请求开始到结束这段时间内的任何页面都可以被获取。操作request作用域使用request内置对象。

    session

    存储在application作用域中的数据,在服务器启动到停止这段时间内都可以被获取。会话失

    效,则session中的数据也随之丢失。操作session作用域使用session内置对象。

    application

    存储在application作用域中的数据,在服务器启动到停止这段时间内的任务页面中都可以被获取。操作

    application作用域使用application内置对象。

  4. JSP九大内置对象

    JSP中共有九个内置对象,分别是request、response、session、out、exception、page、

    pageContext、application和confifig。

    • page内置对象

      page对象有点类似于Java编程中的this。page的定义如下

      Object page = this;

    • pageContext内置对象

      pageContext是javax.servlet.jsp.PageContext的实例,该对象代表该JSP页面上下文,使用该对象可以

      访问页面中的共享数据。

      常用方法

      getOut() // 返回当前客户端响应被使用的JspWriter流(out)
      getSession()  // 返回当前页中的HttpSession对象(session)
      getPage() // 返回当前页的Object对象(page)
      getRequest() // 返回当前页的ServletRequest对象(request)
      getResponse() // 返回当前页的ServletResponse对象(response)
      getServletConfig() // 返回当前页的ServletConfig对象(config)
      getServletContext() // 返回当前页的ServletContext对象(application)
      setAttribute(key,value) // 设置属性及属性值
      getAttribute(key) // 在指定范围内取属性的值
  5. EL表达式

    EL表达式又称为表达式语言(Expression Language),它是JSP中一个很重要的组成部分。在JSP页面

    中使用EL表达式,可以简化对变量和对象的访问。

    EL表达式的语法非常的简单,所有的EL表达式都是以“\({”开始,以“}”结束,比如\){name}。EL表达式会

    将表达式中的结果在页面上输出,就像使用JSP的表达式结构或使用out内置对象进行输出一样。代替

    jsp中脚本表达式的功能,简化对java代码的操作

    <%
       request.setAttribute("name1",10);
    request.setAttribute("name2",10);
    request.setAttribute("name3",10);
    %>
    <%= (Integer)request.getAttribute("name1") + (Integer)request.getAttribute("name2")%>
    使用EL表达式 ${name1 + name2 + name3}
    • EL获取和解析复杂数据

      数组

      public class TestJsp extends HttpServlet {
       @Override
      protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      doGet(req, resp);
      }
      @Override
      protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      int[] arr = {1,2,3,4,5,6};
      req.setAttribute("arr",arr);
      req.getRequestDispatcher("jsp.jsp").forward(req,resp);
      }
      ${arr[2]}
      

      集合

      List<String> list = new ArrayList();
           list.add("name");
      list.add("name2");
      list.add("name3");
      list.add("name4");
      list.add("name5");
      Map<Integer,String> map = new HashMap();
      map.put(1,"age");
      map.put(2,"age");
      map.put(3,"age");
      map.put(4,"age");
      map.put(5,"age");
      req.setAttribute("list",list);
      req.setAttribute("map",map);
      req.getRequestDispatcher("jsp.jsp").forward(req,resp);
      ${list[2]}
      ${list[0]}
      ${map}
      ${map["1"]}

标签

评论

this is is footer