jsp和servlet的区别和联系,九大内置对象

JSP小结

jsp可以说是一个简化的servlet,在html文件中加入java程序片段和jap标记,就构成可jsp页面

jsp和servlet的联系和区别

联系:servlet用来执行业务流程,jsp来生成动态页面

区别:

  1. 创建方式不同(jsp本质就是servlet);jsp运行时会编译java文件;servlet完全由java程序代码组成,擅长于流程控制
  2. jsp由html代码和jsp标签构成,用来编写动态页面
  3. jsp侧重视图,servlet主要用于逻辑控制

jsp指令元素

jsp可以通过指令元素影响服务器编译生成的java类的整体结构

语法: <%@ 指令名 {属性名=“值"}*%>

常用指令:page,include,taglib

page指令元素:

import属性用来引入JSP文件需要使用的类。如下代码所示:<%@page import="java.util.*,java.io.*" %>\

可以使用逗号同时引入多个包,也可以在一个JSP文件中多次使用import。

值得注意的是,import是page指令中唯一一个可以在一个JSP文件中多次出现的属性,其他属性在一个JSP文件中只能出现一次。

include指令元素:

用来静态包含其他页面。

所谓静态包含,指的是在编译期间,把包含的页面也编译到当前页面的Java文件中,Java源文件就实现“二合一”。<%@include file="copyright.jsp"%>

**动态包含:**在jsp页面中动态包含另一个资源

<jsp:include page=“filename”/>

Page=“为一个相对路径,或者是代表相对路径的表达式”

<sp:include>是动态包含,即在运行期访问被包含的页面,并将响应结果同包含页面的响应结果合并,生成最终响应。

jsp内置对象

jsp页面中的九大内置对象分别是:

1.out 向客户端输出

out对象是javax.servlet.jsp.JspWriter的实例

out = pageContext.getOut();

该实例代表JSP页面的输出流,用于向客户端输出数据。

例子:

<% out.print(“<p> helloOut<p>”);%>

<% String srt=“helloOut”;%>

<%out.print(“<p>”+ srt +”<p>”);%>

2.request 封装用户请求

• request是javax.servlet.http.HttpServletRequest的实例,该对象封装了一次请求,客户端的请求参数都被封装在该对象里。

•response是HttpServletResponse类的实例,response对象包含了响应客户请求的有关信息。

• 请求转发是指将请求再转发到另一资源。此过程依然在同一个请求范围内,转发后浏览器地址栏内容不变。

• 请求转发使用RequestDispatcher接口中的forward()方法来实现,该方法可以把请求转发到另外一个资源,并让该资源对浏览器的请求进行响应。

•request对象同时也是一个域对象,开发人员通过request对象在实现转发时,把数据通过request对象带给其它web资源处理

setAttribute(“name”,value)

getAttribute(“name”)

removeAttribute(“name”)

3.response 向客户端响应

•重定向是指页面重新定位到某个新地址,之前的请求失效,进入一个新的请求,且跳转后浏览器地址栏内容将变为新的指定地址。

• 重定向是通过HttpServletResponse对象的sendRedirect()来实现,该方法相当于浏览器重新发送一个请求

4.session 会话对象

•Session对象是javax.servlet.http.HttpSession的实例

它在第一个JSP页面被装载时自动创建,完成会话期管理。

从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。

•Servlet API中,定义了HttpSession接口,用来封装会话对象。

HttpSession是接口,会话对象是Web容器创建的,在Servlet中使用HttpServletRequest中的方法获得会话对象。

public HttpSession getSession():获取跟当前请求相关的session,如果不存在session,就创建一个新的session对象返回。

•JSP文件中使用会话对象的方法

–JSP文件中有内置对象session,可以直接调用HttpSession接口中任意方法

使用session实现会话机制的过程

  1. 当容器创建一个新的HttpSession对象后,即生成一个随机数,称为会话ID,并将ID值封装成一个名字为JSESSIONID的session,返回给客户端。
  2. 调用request.getSession方法获得会话对象时,容器先从request中获取JSESSIONID值,根据JSESSIONID值查找到对应的会话对象,返回使用。
  3. 如果没有获取到JSESSIONID值,认为当前的请求没有相关联的会话对象,重复步骤1

会话对象生命周期

•会话对象是容器创建的,并保存在容器中,如果客户端连接到服务器后,却置之不理,不做任何操作,那么容器维护这些会话对象将占用很多资源。因此,容器都会在默认时间内销毁会话对象,多数容器默认30分钟销毁会话对象。

•除了根据有效时间使会话对象失效外,还可以调用HttpSession中的invalidate方法,使会话失效,立即销毁会话对象

5.application 服务器开始时开始运行,用来存放全局变量,在用户间共享

6.pageContext 用于访问各种page的各种对象

7.exception 异常

java.lang.Throwable的实例

​ 该实例代表其他页面中的异常和错误。只有当页面是错误处理页面,即编译指令page的isErrorPage属性为true时,该对象才可以使用。

常用的方法有

exception.getMessage();返回异常信息字符串

exception.toString();异常信息简单描述

8.config 初始化要用的参数

9.page jsp页面本身

​ page是java.lang.Object类的对象

创作不易,大佬们留步… 动起可爱的双手,来个赞再走呗 (๑◕ܫ←๑)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值