zoukankan      html  css  js  c++  java
  • JSP(二)

    JSP九个内置对象(四大作用域对象):

    1.内置对象称为隐式对象  由tomcat容器创建  :

      appliction:全局上下文对象

      session:会话对象

      request:请求对象

      pageContext:当前页面对象

      response:响应对象

      config:配置文件对象

      out:输出对象

      execption:异常对象 pageContext.getExecption();

      page:描述页面的对象

    2.jsp内置对象的创建:  

    啊倒萨

    3.内置对象

      appliction:与servlet的servletContext同级 作用域:整个项目  生命周期:跟随项目

      session:每个用户会创建一个session 会记录用户的唯一性    局限于整个会话中

      request:服务器用于来获取请求的信息 作用域:一次请求之内

      pageContext:当前页面对象  局限于当前页面

      response:响应对象  服务器给客户端一些 响应信息(不是作用域对象)

      config:配置文件对象  获取页面的配置信息  与servlet中servletConfig

      out:输出对象  向网页写内容

          与servlet中写的区别   getWrite()不带缓冲区直接写入页面

          out带有缓冲区  需要先写入缓冲区  再写入页面中 out.flush() 

      execption:异常对象 pageContext.getExecption();  异常捕获和收集

      page:描述页面的对象

    servlet的作用域对象:

      request   servletContext  getSession()

    4.四大作用域对象:域大小递减   设置相同的键名 获取的时最小的

      appliction:全局上下文对象

      session:会话对象  局限于当前会话

      request:请求对象  在一次请求之内 能够获取作用域下的值

      pageContext:当前页面对象    局限于当前页面γ

      ${requestScope.uname}获取指定作用域对象的值   

    狗皮膏药获取项目根路径

    <%=pageContext.getServletContext.getContextPath%>

    ${pageContext.request.ContextPath}

    JSP动态标签库:

      由Java web提供 用于jsp的动态标签库 简化代码

      <jsp:forword page="index.jsp"></jsp:forword>

    引入其他界面的标签库:两个界面先编译  再合并  生成两个文件   效率相对低

      <jsp:include page=“index.jsp”></jsp:include>

    动态引入和静态引入:

      <%@ page="index.jsp"%>

      先合并 再编译  生成一个java文件  效率相对高

    JSTL标签库:

    1.导入jar包

    2.引入标签库

    3.使用  

      常见标签:核心标签库

      <c:set var="name" value="张三"></c:set> 设置存入作用域

      <c:out value="${uname}"></c:out>  输出

      remove var="name" 

       判断

       多选choose

       循环:foreach

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
        <c:set var="score" value="50"> </c:set>
        <c:if test="${score>80}">牛逼</c:if>
        <c:choose>
            <c:when test="${score>90}">牛逼</c:when>
            <c:when test="${score>80}">还行</c:when>
            <c:when test="${score>70}">一般</c:when>
            <c:otherwise>下次一定</c:otherwise>
        </c:choose>
        <table border="1">
           <tr>
               <td>编号</td>
               <td>姓名</td>
           </tr>
            <c:forEach items="${userlist}" var="user">
                <tr>
                    <td>${user.uid}</td>
                    <td>${user.uanme}</td>
                </tr>
            </c:forEach>
        </table>
    </body>
    </html>

      函数标签库:<%@prefix=别名uri="......../function">

       

     会话:

       客户端与浏览器之间进行多次请求和响应

       开始:浏览器发起请求

       结束:关闭浏览器

      作用:记录用户的浏览记录,实现数据共享

      会话技术:客户端Cookie  服务器Session

        cookie存数据 保存在客户端

    1.实例化cookie  键值

    2.设置cookie的时间

    3.将cookie添加到响应对象

    4.获取cookie  req.getcookies

     JSP:
    <%
           Cookie[] cookies = request.getCookies();
           for(Cookie cookie :cookies){
             if("uname".equals(cookie.getName())){
                 String uname =  cookie.getValue();
                 pageContext.setAttribute("uname",uname);
             }else if("upwd".equals(cookie.getName())){
                  String upwd = cookie.getValue();
                  pageContext.setAttribute("upwd",upwd);
             }
           }
        %>
      </head>
      <body>
      <form action="UserServlet" method="post">
        <p>用户名<input type="text" value="${uname}" name="uname"></p>
        <p>密码<input type="text" value="${upwd}" name="upwd"></p>
        <input type="submit" value="提交">
    
      </form>
    Servlet:
     protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            String uname = req.getParameter("uname");
            String upwd =req.getParameter("upwd");
            if("admin".equals(uname) ){
                Cookie cookie =new Cookie("uname",uname);
                cookie.setMaxAge(60*60);
                resp.addCookie(cookie);
            }
            if("123456".equals(upwd)){
                Cookie cookie1 =new Cookie("upwd",upwd);
                cookie1.setMaxAge(60*60);
                resp.addCookie(cookie1);
            }
        }

    特点:

      以键值对来存储

      有长度限制   不能超过4kb

      存储在浏览器中

      不安全

      默认生命周期随着浏览器的关闭而销毁   一般需要设置时间  s为单位

      减轻服务器压力

     Session:四大作用域对象之一

       存在服务器中  ,session的唯一标识是sessionid  默认保存时间30分钟  sessionid保存在cookie中

       session请求的原理;

        客户端第一次请求服务器  服务器创建sessioid 保存在cookie中

        以后客户端请求服务器都会带着sessionid  

         如果浏览器关闭  cookie的数据不设置时间  默认浏览器关闭而消失

    session的使用:

      1.用户登陆成功 展示用户 

    session的特点:

      1.存储再服务器中

      2.session是第二大内置对象

      3.默认时间30分钟

      4.存储的方式也是以键值对的形式    存的值可以是任意类型

      5.session存储没有长度限制

    设置session的生命周期:

      1.代码进行设置:(动态设置失效时间)

    session.setMaxInactiveInterval();

      2.web.xml中设置:(失效时间一般是固定的)

       <session-config>
            <session-timeout>分钟为单位</session-timeout>
        </session-config>

    清空session作用域下的值:

    1.session.removeAttribute(); //移出单个
    2.session.invalidate();   //让session失效
    3.关闭浏览器 超时

    Session与cookie的区别:

    存储位置:     服务器                                          浏览器  客户端

    存储长度限制:   没有长度限制          不超过4kb 

    安全性:       安全 重要                                     不安全 不重要

    数据类型      任意类型            字符串类型

              内置对象

    对时间的处理

       mysql:  date:年月日

           time:时分秒

           datetime:年月日时分秒  

       java:包util()   sql

         时间格式化:new SimpleDateFormat("yyyy-MM-dd").format(new Date())    

       jstl:格式化标签库:

    多表分页与模糊查询 

  • 相关阅读:
    计算机速成课 第十一集 编程语言发展史
    计算机速成课 第十集 早期的编程方式
    Sharepoint2013操作文档库内容的相关操作
    IE6 css fixed
    Sharepoint2013站点503错误的解决方法(图解)
    发布Sharepoint2013相关的WebService服务
    Spring 读书笔记Spring容器(二)
    (转)UML类图与类的关系详解
    (转)C# 操作 Excel 颜色索引对照
    (转)Silverlight显示本地图片、Stream转Byte数组
  • 原文地址:https://www.cnblogs.com/frhl/p/13495533.html
Copyright © 2011-2022 走看看