JavaWeb-JSP概念笔记

一、JSP概念:JSP(Java Servlet Page)

  • 运行在服务器中
  • 将java代码嵌套在html中 JSP视图
  • 将HTML代码嵌套在java代码中 java/class视图

二、JSP运行原理

  • 将JSP编写好后,并将项目(web应用)部署到tomcat容器中,然后启动tomcat,
    jsp文件就出现在webapps/项目名中(未编译)
  • 当用户第一次访问这个jsp页面,这时这个jsp页面才会翻译成java文件,
    在编译成class文件,接着运行class文件在tomcat服务器
  • 这个JSP页面会一直存在于服务器内存中,后面的多次用户请求,都是访问这个JSP对象(没有重新翻译/编译/运行)
  • 用户访问时,如果这个JSP的内容发生了改变,JSP会重新进行翻译,编译和运行
  • 服务器关闭后,JSP翻译的java和class文件会保存(一次编译到处运行)

三、JSP与Servlet关系

  • servlet与JSP是同一种类型,只是servlet主要负责后台处理,jsp主要负责界面展示

四、JSP的语法

  • 指令 <%@ %>
    page页面设置
    import导包
    include引入其他页面
  • 小脚本 <% %>
    小脚本包含的java代码,出现在service方法中
  • 声明 <%! %>
    声明的java的代码,出现在类中,可以定义属性和方法
  • 表达式 <%= %>
    调用out.ptint()方法,一般用于显示动态数据
  • 注释 <%-- --%>
    客户端界面无法查看(F12开发者模式也无法查看)
  • < !-- -->
    客户端界面无法查看(F12开发者模式可以看到)

五.JSP的四大作用域

  • page 当前页面
  • request 一次请求中
  • session 一次会话中
  • session与cookie的区别与联系
  • application 一个Web应用(全局)

六.JSP的九大内置对象

out输出到客户端的流PrintWriter
request来自于客户端的请求对象HttpServletRequest
response响应给客户端的对象HttpServletResponse
session会话(服务器端)HttpSession
application全局/整个应用/上下文ServletContext
config当前页面的配置对象ServletConfig
page当前页面
exception异常
pageContext页面的上下文

七.请求对象 request

  • request:接受/处理来自客户端的请求
    • 核心方法:
getParameter(“name”)String单个值
getParameterValues(“name”)String[]多个name(多选)

获取session/获取客户端的信息/设置参数的编码
获取方式:doDel/doUpdate

  • get 默认get方式
  1. 浏览器的地址栏可以看到URL和参数
  2. 长度有限,只支持字符串信息 1KB作用
  • post
  1. 浏览器的地址栏可见URL,不可见参数
    开发者模式下,notwork的form data可见
  2. 长度无限制,支持任何类型
  • get/post使用场景:
    • get
    1. 商品/文档/博客的搜索
    2. 路径的跳转
    • post
    1. 安全性高的跳转(后台/管理者页面)
    2. 文件上传只能使用post方法
  • 页面跳转与数据传递
  • 页面跳转:
  1. request的转发技术
    request.getRequestDispacher(“跳转的页面路径”).forward();
  2. response的重定向
    response.sendRedirect(“跳转的页面路径”);
  3. response的头文件
  • 数据传递(两个jsp页面的数据交互)
  1. 转发技术
    (1)setAttribute(String,Object);/getAttribute(String)
    (2)getParameter(String);
    上一次请求的参数或自定义URL参数
    URL?参数1=值1&参数2=值2
  2. 重定向技术
    session对象‘
    (1)setAttribute(String,Object)/getAttribute(String)
    (2)request.getParameter(String);
    URL?参数1=值1,&参数2=值2
  • 重定向与转发的对比:
  1. 转发不会改变URL的路径(路径不变)
    重定向会改变URL的路径(路径改变)
  2. 转发是在同一个请求对象中处理数据(一次请求)
    重定向是在第二个请求对象中处理数据(两次请求)
  3. 转发在本项目中进行处理(本项目中)
    重定向可以在本项目和其他项目中进行处理(任何项目)

八、会话session与cookie

  1. session的概念:浏览器与服务器的一次会话
  2. 注意:
    (1)一个版本的浏览器是一个客户端(使用sessionId去识别)
    (2)一次会话必须是连续的请求(时效性)
  3. 常用方法
    (1)setAttribute(String,Object); 存放用户信息
    (2)getAttribute(String); 获取session中的用户信息
    (3)getId():String 返回当前会话的id(唯一标识符)
    (4)setMaxInactiveInterval(int 秒); 最大有效时间(等待时间)
    (5)removeAttribute(String) 删除seesion中的用户信息
    (6)invalidate() session清除(session信息全部清除,id消失)
  4. 生命周期
    (1)当浏览器向服务器发起第一次请求时,服务器会创建sessionId,
    并且在服务器创建一个指定的内存分配给该用户,
    将sessionId通过response响应对象带回客户端浏览器储存
    (2)当浏览器向服务器发起之后的请求时,
    会通过request携带sessionId(JSESSIONID=id号)
    服务器通过这个sessionId,去调用对应的存储信息给用户
    (3)会话超时/主动清除/服务器重启关闭/
    客户端浏览器关闭(客户端JSESSIONID丢失),
    服务器会重新分配sessionId给客户端浏览器
  5. cookie
    cookie:存储于客户端浏览器的持久化文件(一串字符信息)
    key1=value1;key2=value2;…
    使用cookie:
    (1)存储方式 response.addCookie(cookie);
    (2)遍历cookie request.getCookies:Cookie[]
  6. session与cookie的对比
    session cookie
    ①存储位置 服务器 客户端
    ②存储形式 缓存 文件
    ③存储容量 理论没限制 很小几KB
    ④禁用 无法限制 通过浏览器设置禁用
    ⑤使用场景 用户信息(安全要求高) 用户的个人偏好设置(账号和密码进行加密处理MD5/Base64/UUID)

九.application全局上下文

application:代表整个web应用,作用于整个web应用,
一个web应用只存在一个application
使用application:

  1. set/getAttribute(String,Object) 属性值
  2. set/getInitParameter(String) 初始化参数

十、四大作用域的区别

pagerequestsessionapplication
创建的时机被第一次访问时每次被请求时每次会话web应用被Tomcat加载时
销毁的时机被移除/服务器关闭请求被响应后会话的结束web应用被移除时或关闭时
作用范围当前页面一次请求中一次会话中一个web应用中
使用场景当前页面被访问数需要转发的数据跨页面访问数据跨会话访问用户信息

十一.EL表达式

作用:简化java表达式,取代<%= %>,避免语法嵌套混淆,阅读麻烦的问题
语法:
${作用域.属性名.属性} 或 ${作用域.属性名[属性]}
原理:
1.只能从四大作用域去取值 (getAttribute())
2.当没有指明作用域的时候(从作用域的pageContext -> request --> session --> application)
依次去找,找到马上返回,没有返回null;
简化的地方:
1.实体类不需要导包(自动import需要使用的类)
2.渠道的对象自动转换类型(强制类型转换)
3.通过 . 或 [] 自动回去对应的属性(getXX())
内置对象:

  • pageScope 页面作用域
  • requestScope 请求作用域
  • essionScope 会话作用域
  • aooicationScope 全局作用域
  • param URL参数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值