Day29_10 JavaWeb之编码处理、Jsp及Cookie的使用(记住密码)

目录

一、编码处理

编码处理的意义

请求编码及响应编码

二、Jsp

Jsp的概述

html 转换为jsp

三、Cookie

Cookie的概述

Cookie细节

四、记住密码的实现

了解什么是会话跟踪技术?

记住密码功能实现的思路


一、编码处理

  • 编码处理的意义

解析:

1、为了解决项目中前后端交互后的数据乱码问题。

2、码表:文字/字母/字符 对应 数字(码表)

3、现在的码表都是对ASCll码表的扩展:0~127(已经定死不会改变)

4、常见码表:UTF-8 GBK GB2312 Big5 ISO-8859-1(西欧语言)

5、为了防止乱码情况出现,我们在项目中的编码统一为:UTF-8

tips:JavaWeb使用Request,Response 默认编码: ISO-8859-1 (不包含中文)

  • 请求编码及响应编码

解析:

一、请求编码

1、请求流程如下:

2、get请求, 通过url

处理方式:

1. Tomcat 从8开始, 默认处理Get请求编码, 默认使用的编码: UTF-8

2. Tomcat7或者之前的, 没有处理Get请求编码

        2.1、在server.xml 指定get请求编码: UTF-8

        <Connector URIEncoding= "UTF-8"  connectionTimeout= "20000"  port= "8888"          protocol= "HTTP/1.1"  redirectPort= "8443" />

        2.2、对所有的web服务器都有效, 通过代码处理

           //1.打散
          byte[] bytes = name.getBytes("UTF-8");
          //2.组装成字符串
          name = new String(bytes,"UTF-8");

3、post请求, 通过请求体

post请求编码, 调用request.setCharacterEncoding("UTF-8");        

二、响应编码

1、设置格式如下:

response.setCharacterEncoding(“utf-8”);

该步一般不会写,因为在下面的调用中已经默认会调用setCharacterEncoding,除非下面的方法调用了之后,前端还是出现???的乱码,才会把上述加上。

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

使用总结:一、在Servlet使用之前把request.setCharacterEncoding("UTF-8");及response.setContentType("text/html;charset=UTF-8");代码在获取参数之前, 响应数据之前, 作为servlet前两行代码,可保证前后端不会出现乱码现象。

二、上述都加了还出现乱码再加上response.setCharacterEncoding(“utf-8”);

 

二、Jsp

  • Jsp的概述

解析:

1、html无法访问域对象, 域对象是java对象, 如果想访问域对象, java的代码, JavaEE 提供了jsp

2、JSP包含HTML与java脚本, 作为展示, jsp也是一个动态资源, 浏览器无法直接访问, 浏览器请求jsp, 需要web服务器,执行jsp的代码, 执行之后的结果转换静态的html,响应给浏览器

3、jsp的java脚本写法:

3.1、 <%  %>:  java方法能写的代码,都可以写在它内部
3.2、 <%= %> :  表达式, 表达式的结果在页面展示
3.3、 <%! %> : 定义属性,定义方法

4、jsp九大内置对象(重点)

内置对象: 不需要创建,可以直接使用

四大域对象: pageContext, request,session,application

响应对象: response

响应流对象: out

配置对象: config

表示this: page

异常对象: exception

  • html 转换为jsp

1.创建一个jsp页面, 文件名与对应html文件名一样

2.把html页面的所有内容拷贝到jsp,  从<%@ page%> 之后

3.把相对路径转换为绝对路径, 项目设置发布项目名: /   绝对路径:  全部以 /开头

特别注意:如果设置发布项目名:  /xx    绝对路径: /xx开头, /xx动态获取: <%=request.getContextPath()%>

三、Cookie

  • Cookie的概述

解析:

1、Cookie翻译成中文是小甜点,小饼干的意思。在HTTP中它表示服务器送给客户端浏览器的小甜点。

2、其实Cookie就是一个键和一个值构成的,随着服务器端的响应发送给客户端浏览器。然后客户端浏览器会把Cookie保存起来࿰

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
JavaWeb应用中,为了实现用户登录认证,通常会使用Session和Cookie。 Session是在服务端保存用户状态的一种机制,每个用户在访问服务器时都会被分配一个唯一的Session ID,通过该ID可以在服务端存储和获取与该用户相关的信息。在用户登录后,可以将用户信息存储到Session中,供之后的页面访问和使用Cookie是在客户端保存用户状态的一种机制,通过在服务端设置Cookie,在客户端保存一个唯一的标识符,带着该标识符可以在客户端和服务端之间传递数据。在用户登录后,可以将用户信息存储到Cookie中,供之后的页面访问和使用使用Session和Cookie实现登录认证的基本流程如下: 1. 用户在登录页面输入用户名和密码。 2. 服务器接收到请求后,验证用户名和密码是否正确。 3. 如果验证通过,生成一个唯一的Session ID,并将用户信息存储到Session中。 4. 将Session ID 存储到Cookie中,并设置Cookie的有效期。 5. 用户访问其他页面时,将Cookie中的Session ID 发送到服务器,服务器根据Session ID 获取用户信息,判断用户是否登录。 6. 如果用户已经登录,返回需要访问的页面内容;如果用户未登录,跳转到登录页面。 示例代码如下: ```java // 生成Session ID String sessionId = UUID.randomUUID().toString(); // 将用户信息存储到Session中 HttpSession session = request.getSession(); session.setAttribute("username", username); // 将Session ID 存储到Cookie中,并设置有效期为1天 Cookie cookie = new Cookie("sessionId", sessionId); cookie.setMaxAge(24 * 60 * 60); response.addCookie(cookie); // 获取Cookie中的Session ID,并根据Session ID 获取用户信息 Cookie[] cookies = request.getCookies(); String sessionId = null; if (cookies != null) { for (Cookie c : cookies) { if ("sessionId".equals(c.getName())) { sessionId = c.getValue(); break; } } } if (sessionId != null) { HttpSession session = request.getSession(false); if (session != null) { String username = (String) session.getAttribute("username"); if (username != null) { // 用户已经登录,返回需要访问的页面内容 } } } // 用户未登录,跳转到登录页面 ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值