如何JSP

什么是JSP

JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。(以上内容摘自360百科)

JSP的优缺点

(1)优点

①JSP代码可以跨平台,JSP基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。

②强大的可伸缩性。

③多样化和功能强大的开发工具支持。

④支持服务器端组件。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。

(2)缺点

①增加了产品的复杂性

②运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存较多
(摘https://www.cnblogs.com/lzc396732672/p/10706517.html)

原理

当一个JSP文件第一次被请求的时候,JSP引擎(本身也是一个Servlet)首先会把这个JSP文件转换成一个Java源文件。在转换过程中如果发现JSP文件有语法错误,转换过程将中断,并向服务端和客户端输出出错信息;如果转换成功,JSP引擎用javac把该Java源文件编译成相应的.class文件并将该.class文件加载到内存中。
其次创建一个该Servlet的实例,并执行该实例的jspInit()方法(jspInit()方法在Servlet的生命周期中只被执行一次)。然后创建并启动一个新的线程,新线程调用实例的jspService()方法。(对于每一个请求,JSP引擎会创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程,每个客户端请求对应一个线程)。
浏览器在调用JSP文件时,Servlet容器会把浏览器的请求和对浏览器的回应封装成HttpServletRequest和HttpServletResponse对象,同时调用对应的Servlet实例中的jspService()方法,把这两个对象作为参数传递到jspService()方法中。jspService()方法执行后会将HTML内容返回给客户端。
如果JSP文件被修改了,服务器将根据设置决定是否对该文件进行重新编译。如果需要重新编译,则将编译结果取代内存中的Servlet,并继续上述处理过程。 如果在任何时候由于系统资源不足,JSP引擎将以某种不确定的方式将Servlet从内存中移去。当这种情况发生时,jspDestroy()方法首先被调用, 然后Servlet实例便被标记加入“垃圾收集”处理。

jsp原理图示
(摘自https://www.cnblogs.com/xdp-gacl/p/3788369.html)

一个jsp可以分为几部分
在这里插入图片描述

JSP标签

介绍
JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护。
常用标签

  • jsp:include标签
  • jsp:forward标签
  • jsp:param标签
  1. jsp:include标签用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,这种在JSP页面执行时的引入方式称之为动态引入。
    语法:
    <jsp:include page=“relativeURL | <%=expression%>” flush=“true|false” />
      page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得。
      flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端。
  2. jsp:forward标签用于把请求转发给另外一个资源。
      语法:
      <jsp:forward page=“relativeURL | <%=expression%>” />
      page属性用于指定请求转发到的资源的相对路径,它也可以通过执行一个表达式来获得。
  3. jsp:param标签
      当使用jsp:include和jsp:forward标签引入或将请求转发给其它资源时,可以使用jsp:param标签向这个资源传递参数。
      语法1:
    <jsp:include page=“relativeURL | <%=expression%>”>
    <jsp:param name=“parameterName” value=“parameterValue|<%= expression %>” />
    </jsp:include>
      语法2:
    <jsp:forward page=“relativeURL | <%=expression%>”>
    <jsp:param name=“parameterName” value=“parameterValue|<%= expression %>” />
    </jsp:include>
      jsp:param标签的name属性用于指定参数名,value属性用于指定参数值。在jsp:include和jsp:forward标签中可以使用多个jsp:param标签来传递多个参数。
      (摘自https://www.cnblogs.com/xdp-gacl/p/3788369.html)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值