JSP

1.jsp:数据的模板或是数据容器

jsp不能被浏览器直接打开,浏览器只认识HTML标签

2.C/S和B/S

c/s:client/server:客户机/服务器
不借助浏览器执行
QQ
Oraclel:一般都需要每台客户机单独安装客户端
B/S:借助浏览器才可以执行的
所有的维护成本都放在服务器端了

3.注释

JSP页面
java类
浏览器

4.关于表单元素

input 打头的都是
textarea
select -option

非表单元素即使有name属性,他的值也不会提交到服务器内存
表单元素,没有name属性,他的value值也提交不到服务器。
所以:表单元素必须有name属性 。

5.什么是内置对象

不需要实例化,就可以直接使用,而且对象不是空指针NULL,内置对象在启动romcat时创建
out 输出对象 JspWriter
request 请求对象 ServletRequest
response 响应对象 ServletResponse
session 会话对象 HttpSession
application 应用程序队象 ServletContext
exception 异常对象 ServletException
page 页面对象 作用仅限于当前页面 Object
pageContext 页面上下文对象
config 配置对象
ServletConfig

6.关于编码⽅式

pageEncoding:当前jsp⻚⾯可以出现中⽂。
contentType:响应会浏览器⽤的编码⽅式、

7.关于乱码的分情况讨论

情况⼀:表单的提交⽅式为get
⽅案⼀:全部⽅案;在tomcat的conf⽬录中,找到server.xml,找到名称为Connector的节点, 在其中添加⼀个URIEncoding=“UTF-8” 就可以了
⽅案⼆:单个解决:就是先⽤temp接收请求中的data,做⼀个编码格式转换,转换代码如 下:
String tempuname=request.getParameter(“uname”);
String uname=new String(tempuname.getBytes(“iso-8859-1”),“utf-8”);

情况⼆:表单的提交⽅式为post
response.setCharacterEncoding(“utf-8”);

8.谈谈状态码

1XX:临时响应 ,⽩话:数据还没有响应完成
2XX 200 成功响应 已经成功拿到浏览器内存了
3XX :302 重定向
4XX :404 服务器上没有我们要请求的资源
5XX :500 服务器内部错误 程序员代码写错了

9.注意开发中关于路径的事情

相对路径: 参照物:当前⻚⾯本身。 …/ 向上寻址,N层。 floder1/floder2/⼦⻚⾯.jsp
绝对路径: 磁盘⽬录:E:\JSP-Day02 绝对的对象:对web项⽬的根⽬录。从项⽬名称寻址

10关于转发和重定向

转发
url地址:douser.jsp 中间处理请求⻚⾯
携带数据:携带
请求次数:1次
能否进⾏站外连接:不可以
请求速度:快
⾏为⻆度:服务器内部
重定向:
url地址: index.jsp 最终⻚⾯
携带数据:不能,两次request
请求次数:2次

在这里插入图片描述
能否进⾏站外连接:可以
请求速度:慢
⾏为⻆度:浏览器主动的⾏为

1.⻚⾯间(跨⻚⾯)数据传递 ⽤内置对象 //内置对象出现的价值为了让http有状态 A--------->B request.getParameter(“name”); 2.提交数据的话,如果有中⽂,这个时候分情况讨论 get post
3.两种跳转⽅式(转发/重定向)

数据传递方法

pageContext
session
application
request
向某个对象的作用域中存取一个键值对:
XXX.setAttribute(String key,Object value);无返回值
从某个对象的作用域中取出value值:
XXX.getAttribute(String key);返回值为Object

案例:实现注册

html标签:
在这里插入图片描述
样式设置:

在这里插入图片描述

数据接收处理⻚⾯:douser.jsp
在这里插入图片描述
String request.getParameter(String); 获取地址栏参数包括表单元素的vallue值,返回值为String类型
在这里插入图片描述
在这里插入图片描述
request作用域:
在一次请求的范围内
转发:
request.getRequestDispatcher(url).forward(request,response);
服务器内部自动完成跳转,服务器行为
重定向
response.sendRedirect(url);
为指定字符串重新编码:
URLEncoder.encode(String name,“utf-8”);

session:会话

**setAttribute()作用域是一次会话
从客户端到服务端发起的一次连接,直到连接终止的过程
一个会话可以包含多次请求
可以在多次请求中保存和使用数据
服务器端记录客户端状态的机制–sessionId
session.getId();方法获取sessionId
每一个session都有一个唯一的ID
session是单用户、多页面共享的
session保存在服务器端
**

会话清除和过期

程序主动清除session
设置会话失效:
session.invallidate();
移除会话的一个属性
session.removeAttribute(String name);
服务器主动清除长时间没有再次发出请求的session
设置会话过期时间:
方法一: session.setMaxInacriveInterval(int interval); 单位:秒
方法二:在配置文件内添加:

<session-congif>
     <session-timeout>30</session-timeout>  <!--单位:分钟-->
</session-congif>

session是基于cookie的

cookie

跟踪用户的整个会话
通过在客户端记录信息
给客户端发送一个通行证,每一个客户一个
本质是文本信息
创建Cookie对象:
Cookie cookie = new Cookie(“username”,usname);

添加数据方法:
response.addCookie(Cookie cookie);
获取数据:
request.getCookies(); 返回为Cookie数组

设置有效期:
cookie.setMaxAge(int expiry); 单位为秒

设置路径:
coolie.setPath("/");当前工程所有页面都可以访问cookie

如果有中文会出现乱码:
使用URLEncoder.encode(String name,“utf-8”);重新编码
URLDecoder.decoder(String name,“utf-8”);解码

application实现计数器

多个用户共享,可在整个项目中共享使用数据
setAttribute(String name,Object o);
getAttribute(String name); 返回值为Object,需进行类型转化

在这里插入图片描述

当前页面获取作用域:

在这里插入图片描述

作用域大小排序

pegeContext<request<session<application

三个对象对比;

request、session、application
相同点:
都可以存储属性
不同点:
request中存储的数据仅在一个请求中可用
session中存储的数据在一个会话的有效期内可用
application中存储的数据在整个web项目中可用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值