JSP(二)

摘要:
JSP九个内置对象(四大作用域对象):1.内置对象称为隐式对象由tomcat容器创建:appliction:全局上下文对象session:会话对象request:请求对象pageContext:当前页面对象response:响应对象config:配置文件对象out:输出对象execption:异常对象pageContext.getExecption();page:描述页面的对象2.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 voidservice(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:格式化标签库:

多表分页与模糊查询

免责声明:文章转载自《JSP(二)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇windows zookeeper集群用C语言编写cgi程序下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SSH key生成代码详解

SSH key生成代码详解 -b 4096-t rsassh-keygen-C "邮箱" 转载于知乎 作者:就是这么优秀链接:https://zhuanlan.zhihu.com/p/36098077 ssh-keygen -t rsa -b 4096 -C "邮箱":这条命令的目的是为了让本地机器ssh登录远程机器上的GitHub账户无需输入密码。...

Node.js安全清单

前言 安全性,总是一个不可忽视的问题。许多人都承认这点,但是却很少有人真的认真地对待它。所以我们列出了这个清单,让你在将你的应用部署到生产环境来给千万用户使用之前,做一个安全检查。 以下列出的安全项,大多都具有普适性,适用于除了Node.js外的各种语言和框架。但是,其中也包含一些用Node.js写的小工具。 配置管理 安全性相关的HTTP头 以下是一些安...

[velocity] velocity详解

(1)为什么要使用模版语言? 在服务器端可以使用 Velocity 处理模板和生成的动态内容(HTML、XML等)。这和 JSP 技术的目标非常接近。但是,JSP 模型可以毫无阻碍地访问底层的 Servlet API 和 Java 编程语言。它基本上是一种在很大程度上开放的访问模型。而作为一种完全自包含的模板引擎和脚本解释器,Velocity 拥有完全封闭...

Flask入门之SQLAlchemy数据库连接操作(第15讲)

一、库安装 Flask-SQLAlchemy 2 SQLAlchemy 1.0.8 二、进入venv 三、切换到项目Sample 文件夹,进入manager.py 的shell python manager.py shell 四、创建data.sqlite数据库 from app import db from app import mod...

vue之vue-cookies

npm链接:https://www.npmjs.com/package/vue-cookies 安装: npm install vue-cookies --save 使用:main.js引入 import Vue from 'Vue' import VueCookies from 'vue-cookies' Vue.use(VueCookies) Ap...

分布式算法(一致性Hash算法)

转载:https://www.cnblogs.com/moonandstar08/p/5405991.html 一、分布式算法     在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括: 轮循算法(Round Robin)、哈希算法(HASH)、最少连接算法(Least Connection)、响应速度算法(Response Time)、加权法(...