javaweb6jsp

jsp的介绍

jsp是建立在servlet的基础上动态的网页开发技术,在jsp中包括HTML,java,jsp这三个的代码。
jsp继承HttpJspBase,而HttpJspBase有继承了HttpServlet.

jsp的运行原理

粗略的:

客户端发送请求,到服务器上,相当于在jsp的容器中,.jsp的文件先转换成servlet文件(java)的,在转换成.class的文件,去执行servelt的实例。

详细的:

1:客户端发送Http请求,请求访问JSP文件
2:jsp容器会先将jsp文件转化成JAVA的源文件(Java servlet源程序),若jsp文件中存在任何的语法错误,将立即停止转换,并返回给客户段错误的信息。
3:Jsp容器会将生成的JAVA的源文件编译成字节码文件*.class,此时的字节码文件就是一个servlet的文件。
4:Servlet容器会将加载转换后的Servlet的文件(字节码文件*.class文件),创建一个个servlet的实例(jsp页面的转换结果),并执行Servlet中的jspinit()方法,jspInit()方法在Servlet的整个生命周期中只会执行一次。
5:请求响应结束,响应结果将会被jsp容器接受,并将HTML的格式的响应信息返回到客户端
6:在jsp的容器中会对于每一个请求,通过jspService()方法处理请求,
7:在第一次jsp的请求中,会比较慢,因为它需要进行转换和进行编译。

基础语法

<% 代码块 %>
<%! 声明的变量和方法%>
<%= expression %> 这里面不能有分号,也就是在expression的后面,这个主要是将输出到客户端的变量或者是数据封装到expression中。

注释

<!-- 这是HTML的注释 -->
<%-- 这是jsp的注释 -->
在客户端中浏览页面的原码的时候,HTML的注释可以看到,而jsp的源码时看不到的,

jsp指令

page指令

<%@ page “属性名1”=“属性值1” “属性名2”=“属性值2” …> 这里面可以写很多个。
在这里插入图片描述

include指令

在jsp中静态的去包含一个HTML文件或是文本文件。
<%@ include file=“被包含的文件的地址” %>
这是两个jsp文件但是生成的JAVA源文件和字节码文件就是生成一个,在这一个里面包含着另一个。

JSP隐式对象

一共有九个。
request:javax.Servlet.HttpServletRequest。
response:javax.Servlet.HttpServletResponse.
session: javax.servelt.http.HttpSession
config:javax.Servelt.ServletConfig
application: javax.Servlet.ServletContext
exception: java.lang.Throwable
out: javax.servlet.jsp.JspWriter
page: java.lang.Object.
pageContext: javax.servlet.jsp.PageContext

out对象

在这里插入图片描述
这里需要注意的就是缓冲区,它是先存放到自己的缓冲区中,在存放到response.getWriter的缓冲区中,进而显示在页面中。

pageContext对象

此对象可以调用其他的8个隐式对象。而且可以调用其他的三个域,request域,response域,application域,这个pageContext也是一个域,可以通过
pageContext.setAttribut(String name,Object value,int scope).
pageContext.getAttribut(String name;int scope);
pageContext.removeAttribute(String name;Int scope);
pageContext.removeAttribute(String name);
pageContext.findAttribut(String name)。

ecxeption对象

用于封装jsp抛出的异常。例如在test.jap中,在page指令中加 (”属性名“=”属性值“)errorPage=“error.jsp”
在error.jsp中,在page指令中加 (”属性名“=”属性值“)isErrorPage=“true”。

<%=exception.getMessage() %> # jsp动作元素 ## 动作元素 在这里生成的JAVA源文件和字节码文件是有几个生成几个,跟<%@ include file="" %> 时不同的,在进行第一次编译的时候,会先进行包含页面的的编译,及那个编译结果返回到被包含的页面中,在对页面进行编译。 ## 动作元素 跳转到另一个jsp文件中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值