声微饭否

博客园 首页 新随笔 联系 订阅 管理

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:格式化标签库:

多表分页与模糊查询 

 

posted on 2020-08-13 11:51  声微饭否  阅读(115)  评论(0编辑  收藏  举报