文章目录

  • 时间的控件My97DatePicker的使用:
  • 会话
  • 会话之Cookie
  • 会话之session
  • 增加删除操作思路


时间的控件My97DatePicker的使用:

My97DatePicker:js +css 来做了一个时间的特效库

官网地址: http://www.my97.net/

使用的步骤:

1.下载好资料放入到web下面
2.在界面引入这个js  ==>这个js WdatePicker.js  就是核心的js
3.<input id="d11" type="text" onClick="WdatePicker()"/> onclick="WdatePicker({dateFmt:'yyyy年MM月dd日 HH时mm分ss秒'} 使用各种格式来进行显示

会话

会话也就是客户端与服务器进行通信的过程,一次会话可以有多次请求

一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止
功能:在一次会话的范围内的多次请求间,共享数据

方式:
1. 客户端会话技术:Cookie
2. 服务器端会话技术:Session

会话之Cookie

Cookie : 就是用于把数据存到浏览器 或者叫客户端

作用: 1.把数据存到客户端,可以做一些智能推荐,还可以减轻服务器的压力 ,或者自动填写账号密码等

缺点:存在客户端:安全性低,所以一般都是存不是很重要的数据

一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止

Cookie 的查看:图

java移除cookie_数据

java移除cookie_java移除cookie_02


java移除cookie_客户端_03

Cookie的使用步骤

1.实例化这个Cookie  ==》 Cookie cookieName = new Cookie("uname","upwd");  ==>以字符串键值对的形式来进行存数据
2.把Cookie添加到响应对象发送Cookie对象  response.addCookie(cookieName);
3.获取Cookie拿到数据    Cookie[] cookies =  request.getCookies();  ==>通过request来获取所有的cookie,然后遍历这个数组,以此来获取不同cookie的数据
4.getName()  ==>来获取设置的键名     ==>getValue() ==>获取具体的值
//servlet端
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String name = req.getParameter("name");//获取前端数据
        String password = req.getParameter("password");
        Cookie cookieName=new Cookie("name",name);//创建名为name的cookie对象并把前端的数据复制过来,作为这个cookie的值
        cookieName.setMaxAge(60*60*24);//手动设置cookie的存活时间,如果不设置,默认是游览器关闭则会被销毁,单位是秒
        Cookie cookiePassword=new Cookie("password",password);
        cookiePassword.setMaxAge(60*60*24);
        resp.addCookie(cookieName);//把cookie交给响应对象
        resp.addCookie(cookiePassword);
}

前端:

<%//实现自动填充密码
  String uname;
  String pass;
  Cookie[] cookies = request.getCookies();//前端获取servlet的response传递过来的所有cookie
  if(cookies!=null&&cookies.length>0){//非空判断,遍历数组
    for (Cookie c:cookies){
      if ("name".equals(c.getName())){
        uname=c.getValue();
        request.setAttribute("na",uname);//将cookie的数据交给作用域
      }else if("password".equals(c.getName())){
        pass=c.getValue();
        request.setAttribute("pa",pass);
      }
    }
  }
%>

<form action="userServlet" method="get">
  用户名:<input type="text" name="name" value='${na}'>el表达式自动获取值
  密码:<input type="text" name="password" value='${pa}'>
  <input type="submit" value="登录">
</form>
注意点:
1.Cookie 设置传递中文,需要编解码  
编码:创建cookie时传递的键的值是中文时使用下面代码,RLEncoder.encode("我是要专递的值但是我是中文","UTF-8")     
解码:request对象要把传过的来数据进行使用时,需要解析 URLDecoder.decode(c.getValue(),"UTF-8")

2不设置cookie保存的时候,默认会随着浏览器关闭,而销毁      
设置 cookie的时间: setMaxAge(60*60); 以秒为单位  setComment("nddhh") 设置其描述

问题:

1. 一次可不可以发送多个cookie?
		* 可以
		* 可以创建多个Cookie对象,使用response调用多次addCookie方法发送cookie即可。
2. cookie在浏览器中保存多长时间?
		1. 默认情况下,当浏览器关闭后,Cookie数据被销毁
        2. 手动设置销毁时间:
		   * setMaxAge(int seconds) 并指定cookie存活时间,时间到后,cookie文件自动失效

会话之session

session :存在于服务器,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中

注意:Session的实现是依赖于Cookie的

Session如何与浏览器进行关联?

JSESSIONID  就是与浏览器之间的关联,也是这一次会话的唯一的标识,这个sessionId是由服务器创建的,每次会话打开的时候,都会设置给Cookie

每次打开这个会话 sessionId 是否一样?

不一样
sessionId  默认保存的时间是30分钟  ==>只能会话关闭之后,这个sessionId就不能够找到==>原因:http请求协议是无状态,一次性的的连接 
 ==>原来的sessionId 在回话关闭后再过30分钟之后,会自动回收   ==每次重新打开浏览器都会重新创建一个新的sessionId,原来的没有被回收,只是找不到

作用域和清空方式

session属于jsp的四大内置对象作用域之一
session.setAttribute("eee","kkk");   ==>存值
session.getAttribute("eee"); 取值
session.removeAttribute("eee"); 清空
把session的值清空的三种方式:  
1.会话结束的时候
2. session.removeAttribute("eee");根据键来清除某一个值
3.  session.invalidate(); 清空session里的所有的键与值

修改session 时间的两种方案:

session 默认的时间是:30分钟
 1.  session.setMaxInactiveInterval(60*60*24)  以秒为单位
 2. 在web.xml进行配置
    <session-config>
          <session-timeout>60</session-timeout>
    </session-config>

应用场景:

1.在首页显示某个用户的时候,都使用的是session来保存   
2.必须先登录之后才能访问到首页
  在Servlet获取session  ==>  HttpSession session  =   req.getSession();

HttpSession:来源于servlet端的req

1. 获取HttpSession对象:
		HttpSession session = request.getSession();
2. 使用HttpSession对象:
		Object getAttribute(String name)  
		void setAttribute(String name, Object value)
		void removeAttribute(String name)
//servlet端
String  uname   =     req.getParameter("uname");
String upwd    =     req.getParameter("upwd");
if(uname !=null &&uname !=""){
            //把对象存入session
          HttpSession session  =   req.getSession();
          session.setAttribute("uname",uname);
           resp.sendRedirect("index1.jsp");
        }
//前端代码,session九大内置对象之一
<%
    if(session.getAttribute("name")==null){
        response.sendRedirect("index.jsp");
    }

%>
${name}

session和cookie共同点和不同点:

session  与Cookie 都是用于来存数据     
session 存在服务器  ==>(比较重要的一些信息)     
Cookie 存在浏览器(给用户提供一些方便,不是特别重要的信息)

增加删除操作思路

增加的思路: 
1. 跳转到servlet==>传递一个标记   ==> 去增加的界面  =>去增加

2. servlet  ==》
         1.获取前端的数据   
         2.交给service来处理 ==>dao  ==>执行增加语句  ==>添加
删除思路:  
需要根据id来进行删除   ==》首页需要携带一个id参数  ==》通过el表达式可以获取到, =>还需要携带一个标记