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

  • Post author:
  • Post category:其他




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

类的对象



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



版权声明:本文为qq_45866940原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。