JSP实现数据传递和保存

JSP实现数据传递和保存
Jsp是一种动态网页技术,java Server pages, java + HTML,HTML是作为页面内容显示,java是作为动态逻辑处理。
它实质上是一种模板技术,然后通过Tomcat的Jasper组件,可以将其翻译为.java文件,然后编译运行。
它里面的每一块组成都会被翻译到.java文件的对应位置。
在这里插入图片描述
JSP的内置对象
1.掌握request和response的使用
1.1JSP的九大内置对象(面试题)
Out:向页面输出内容
out.print(); // 它可以输出任何数据类型 将对应的数据类型转换为字符串 它用于向页面输出我们Java一些变量信息
out.write(); // 它只能输出字符(字符串)内容 它用于向页面输出HTML内容
Request:它代表的就是客户端的请求
Response:它代表的是服务端的响应
Session:会话技术
Application:应用程序上下文
Page:它指代当前页面,当然如果是翻译后的,那么它指代当前对象。
pageContext:它是用来获取其他作用域内容的 同样它也是页面的上下文
Config:它可以获取到初始化配置参数(web.xml)
Exception:它能够获取到某个页面上出现的异常信息 一般要和<%@page errorPage=”error.jsp”%>结合使用

1.2 request对象
模拟一个注册:
在这里插入图片描述
在这里插入图片描述

  • String getParamepter(String name); 根据name获取value值 如果获取不到返回null
  • String[] getParamepterValues(String name); 根据name获取多个value值的参数
  • Map<String,String[]> getParamepterMap(); 将请求参数全部注入到Map集合
  • String getMethod(); 获取请求方式
  • String getRemoteAddr(); 获取客户端的IP地址
  • String getContextPath(); 获取项目的根路径
  • String getHeader(String name); 获取请求头信息
  • InputStream getInputStream(); 获取参数的字节输入流
  • void setAttribute(String name,Object val); 向request作用域存储信息 但是这个信息只能在同一次请求中有效
  • Object getAttribute(String name); 从request作用域提取信息 如果不存在则为null
  • RequestDispatcher getRequestDispatcher(String path); 获取请求转发对象
    • forward(request,response); 实现请求转发

1.3 GET请求和POST请求的区别(面试题)
GET:
·地址栏会显示传递的参数
·一般来讲浏览器对GET请求有数据长度限制
·URL具有传播性
·不安全
POST:
·地址栏不会显示传递的参数 通过请求体传输
·一般来讲浏览器没有数据长度限制
·URL不具备传播性
·相对安全
2.掌握解决请求中文乱码问题
POST请求中文乱码
·request的方法:void setCharacterEncoding(字符集);
GET请求中文乱码
在这里插入图片描述
数据是通过URL地址传递的 但是Tomcat 8.0以下默认的URL编码为ISO-8859-1
**·治标不治本:**先解码再编码
。将得到的参数数据 先以ISO-8859-1(原来的编码)解码
在这里插入图片描述
。再将解码后的内容进行UTF-8(新编码)重写编码
在这里插入图片描述
·治本:
在这里插入图片描述

3.理解转发和重定向的区别
请求转发:
·地址栏不变化 还是原来的请求
·请求转发它是一次请求
·请求转发它只能跳转到服务器内部的资源
·请求转发是服务器在帮助你进行页面跳转
重定向:
·地址栏不会变化 变为新的请求地址
·重定向是两次请求
·重定向可以跳转到任意地址/资源
·重定向是服务器响应给客户端一个标识(302),然后客户端重新进行页面跳转
4.掌握session对象的使用

  • void setAttribute(String name,Object value); 向session作用域存储内容 这个内容在同一次会话中都是有效的
  • Object getAttribute(String name); 从session作用域中取出内容
  • void removeAttribute(String name); 从session作用域移除内容
  • String getId(); 获取当前session的编号
  • void invalidate(); 作废session
  • void setMaxInactiveInterval(int seconds); 设置session非活动有效期(默认为30分钟)
    在这里插入图片描述
    int getMaxInactiveInterval(); 获取session非活动有效期
    Seeion的生命周期(一次会话):当浏览器(客户端)访问服务器时,会话就开始了(帮你创建的一个会话对象)(每个浏览器每个用户都是独立的),然后只要你没有完全关闭/结束对应的浏览器(客户端)或者没有超过session设置的 非活动有效期(如果你不再访问服务器,那么这就开始非活动时间了),那么会话就一直保持。

一般session前期都是用来存储用户登录信息,存储购物车的临时信息…
5.掌握cookie和session的区别
在这里插入图片描述
一些网站里例如百度在搜索时有历史记录提示
一些网站里登录时可以勾选7天免登录或者记住我等功能

Cookie它和客户端有关。
模拟实现记住账号功能:

实质上seseion使用到的就是会话级的cookie。当浏览器第一次访问服务器时,服务器会生成一个session并且将session 的id写入到浏览器的会话级cookie,当浏览器访问服务器时,会携带此cookie,服务器会对cookie中的session id进行验证,如果有则表示是同一次会话,否则说明会话不存在或者已经过期了,那么就会重复之前的步骤。

Cookie和Session区别:

  1. cookie只能存储String类型的值,而session可以存储任意类型的内容
  2. cookie可以设置会话级也可以设置持久级,而session只能是会话级
  3. cookie是客户端存储的内容,而session是服务器存储的内容
  4. cookie不够安全,session相对安全,一些重要信息推荐放在session中

6.掌握application对象的使用
它的应用一般和request和session差不多,它也是一种作用域。
Tomcat容器中,**存在四种作用域,**这作用域是用来存储信息的。
Page:当前页面 信息只能在当前页面使用
Request:同一次请求
Session:同一次会话
Application:同一个应用(只要服务器不关闭,application都是同一个)

模拟统计一个网站的访问人数:
在这里插入图片描述
1.当用户访问网站时,就会访问人数进行自增1
2.如果是第一个访问网站的用户,那么就初始化访问人数统计设置为1

Ctrl+shift+(解除注释)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值