JavaWeb会话技术详解与案例

网友投稿 321 2022-09-14


JavaWeb会话技术详解与案例

1.什么是会话:

2.会话技术有哪些:

什么是Cookie?

Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。

3.cookie学习案例:

cookie:是数组,中每个元素有:名称和值,

可以通过名称找到名称对应的元素。

重要:

Cookie[] cookies = req.getCookies(); //创建cookie对象,获得浏览器所有的cookie数组

Cookie cookie = CookieUtils.findCookie(cookies,"lasttime");//通过:cookies:一个名称“lasttime”,找到数组里面对应的cookies,返回这个cookie:值

String value = cookie.getValue();

resp.getWriter().println(value); //value:获取cookie(这个)的值,

打印在浏览器上面

Cookie c = new Cookie("lasttime", wer); //创建一个cookie,

名称为:lasttime,值为:wer变量对应的值

resp.addCookie(c); //在浏览器添加:增加这个名称的cookie值,

可以

创建:HelloServlet4 extends HttpServlet 这个类

package com.example.demo16;

import javax.servlet.ServletException;

import javax.servlet.http.Cookie;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.net.URLEncoder;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

public class HelloServlet4 extends HttpServlet {

@Override

public void init() throws ServletException {

super.init();

this.getServletContext().setAttribute("name","张三");

}

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//super.doGet(req, resp);

Cookie[] cookies = req.getCookies();

Cookie cookie = CookieUtils.findCookie(cookies,"lasttime");

System.out.println(cookie);

if (cookie==null) {

resp.setCharacterEncoding("utf-8");

ruppgSyiONdesp.setContentType("text/html;charset=UTF-8");

resp.getWriter().println("

} else {

resp.setCharacterEncoding("utf-8");

resp.setContentType("text/htm/UTF-8");

resp.getWriter().println("你上一次访问时间是:"); //出现了中文错误

cookie = CookieUtils.findCookie(cookies, "lasttime");

String value = cookie.getValue();

resp.getWriter().println(value);

Date d = new Date(); //变化的

SimpleDateFormat sc=new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");

String wer=sc.format(d); //字符串

System.out.println(wer);

//其实就是要设置:时间,时间值为java, 变化的时间

// Cookie c = new Cookie("lasttime","11111"); 这个可以显示

// Cookie c = new Cookie("lasttime","1-1-1-1-1");

// Cookie c = new Cookie("lasttime","2021-11-14");//2021-11-14 20:14不能反映,中文也不能

// Cookie c = new Cookie("lasttime","2021:11:14");// 空格不行

Cookie c = new Cookie("lasttime", wer);

resp.http://addCookie(c);

}

/*resp.getWriter().println("helloworld");

resp.setStatus(302);

//resp.setHeader("Location","/demo16_war/helloo");

resp.setHeader("Refresh","5,url=/demo16_war/helloo");

*/

// String name= (String) this.getServletContext().getAttribute("name");

// System.out.println(name);

//text();

text();

}

protected void text() throws IOException {

//Properties properties=new Properties();//创建文件对象

//InputStream is=this.getServletContext().getResourceAsStream("WEB-INF/dp.properties");//这里的路径,

// properties.load(is);

//String driverClassName=properties.getProperty("driverClassName");

// String url=properties.getProperty("url");

//String password=properties.getProperty("password");

// String usernane=properties.getProperty("username");

// System.out.println(driverClassName);

//System.out.println(url);

//System.out.println(password);

//System.out.println(usernane);

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

try {

Date d = sdf.parse(toString());

System.out.println(d);

} catch (ParseException e) {

e.printStackTrace();

}

}

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

super.doPost(req, resp);

}

}

创建CookieUtils类:

package com.example.demo16;

import javax.servlet.http.Cookie;

public class CookieUtils {

public static Cookie findCookie(Cookie[] cookies, String name){

if(cookies==null){

return null;

}else {

for(Cookie cookie:cookies){

if(name.equals(cookie.getName())) { //找到相等的name名称

return cookie;

}

}

return null;

}}}

效果图:

点击刷新页面:

4. 使用cookie注意出现的问题:

Cookie c = new Cookie(“lasttime”,“2021 11 14”);// 空格不行,

返回:乱码

如果:cookievalue值为:中文,就要设置:

resp.setCharacterEncoding(“utf-8”); 响应设置为:utf-8,解决中文乱码

下面:

String werr="我是谁";

Cookie c = new Cookie("lasttime", werr);

resp.addCookie(c);

还有:

可以在 resp.getWriter().println:放html标签

需要

resp.setContentType(“text/html;charset=UTF-8”);//来解析

resp.setContentType("text/html;charset=UTF-8");

resp.getWriter().println("


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:浅谈网络管理员的发展前景(网络管理员是做什么的有发展空间吗)
下一篇:“百络网警”网络管理工具介绍(百络网警 卸载)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~