
一、JSP简介:
JSP(Java Server Pages,Java服务器端页面开发技术)
JSP可以实现的技术都可以通过Servlet实现,他们本质上是一样的。但JSP设计的目的在于简化表示层的表示。JSP执行前都会被转化为Servlet。
二、JSP页面包括三大部分:
指令、Java脚本、动作组件。
1.指令:
page指令:用来定义整个JSP页面的全局属性。

格式:<%@ 指令名 属性名="值" %>
import(导入包)、contentType(服务器向浏览器响应输出的文件格式类型和字符集编码方式)、isThreadSafe、session、buffer、autoflush 、extends、info、errorPage (处理异常事件的JSP文件)、isErrorPage和language(脚本语言)等。
<%@ page language="java" %> <%@ page contentType="text/html;charset=GB2312" %> <%@ page errorPage="error.jsp" %>
include指令:在JSP页面中嵌入其他文件。
格式:<%@ include file="相对位置" %>
注意:<%@ include%>指令和<jsp:include>动作标签有什么区别?
<%@ include file="copyright.html" %>
2.Java脚本:

声明:JSP页面中数据和方法的声明(全局变量)。格式:<%! 声明的变量或方法; %>
声明变量和方法也可以在脚本代码片段中(局部变量),但两者是有区别的。
表达式:用于在页面上输出信息。格式:<%= 表达式 %>。(无分号)
脚本代码片段:JSP页面的脚本代码必须写在<% 代码%>区域里。
3.动作组件:是一些XML语法格式的标记,被用来控制Web容器的行为。
常见的JSP动作组件共有以下几种:
<jsp:include>:在页面被请求的时候引入一个文件。
< jsp:param>:在动作组件中引入参数信息。

< jsp:forward>:把请求转到一个新的页面。
< jsp:useBean>:寻找或者实例化一个JavaBean。
< jsp:setProperty>:设置JavaBean的属性。
< jsp:getProperty>:输出某个JavaBean的属性。
include动作组件:
注意:include动作组件和include指令元素有很大的不同。 include动作组件在执行时才对包含的文件进行处理,因此JSP页面和它所包含的文件在逻辑上和语法上是独立的,如果对包含的文件进行了修改,那么运行时可以看到所包含文件修改后的结果。而静态的include指令包含的文件如果发生变化jsp常用指令,必须重新将JSP页面转译成java文件,否则只能看到所包含的修改前的文件内容。
forward动作组件:
活 动内容服务,意味着用户可以从网页服务中快速存取服务,用户通常对网页的内容进行复制粘贴,这里的情况是把网页中内容发送到一个web应用程序中,例如, 用户在页面看到一个餐厅地址,那么他就可以把看到的地址发送到地图服务中去。活动内容服务,意味着用户可以从网页服务中快速存取服务,用户通常对网页的内容进行复制粘贴,这里的情况是把网页中内容发送到一个web应用程序中,例如,用户在页面看到一个餐厅地址,那么他就可以把看到的地址发送到地图服务中去。答: 1、foward是服务器端控制页面转向,在客户端的浏览器地址中不会显示转向后的地址。

<jsp:forword page= “网页名称”>
param动作组件:
<jsp:param>用于传递参数信息,必须配合< jsp:include>或< jsp:forward>动作组件一起使用。语法如下:
< jsp:param name=参数名称 ,value=值 />
当该组件与<jsp:include>一起使用时,可以将param组件中的值传递到include动作组件要加载的文件中去。
<jsp:forward page="welcome.jsp">
<jsp:param name="name" value="John" />
</jsp:forward>
等同于welcome.jsp?name="John"
userBean动作组件:用于创建对象实例。
格式:<jsp:userBean id = "对象名字" scope="作用域">
其中actioncontext里面有:application(是一个map,封装了应用域的属性)、session(是一个map,封装了会话域的属性)、request(是一个map,封装了请求域的属性)、parameters(是一个map,封装了参数)、attr(是一个mapjsp常用指令,封装了4个域的全部属性)。session:域范围是整个会话,注意一个会话中只有一个用户,如果要统计站点的访问次数,使用的域是servletcontext,因为这个时候统计的是多个用户,而非一个用户。比如缓存需要一个context引用,缓存是长生命周期的,在程序运行过程中会一直存在,如果使用activity作为context,因为activity随时可能finish,生命周期与缓存不匹配,而如果使用application作为context,因为application也是在程序运行中一直存在,周期是匹配的,就不会发生内存泄露,也就不需要弱引用。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-117779-1.html
没有一发炮弹击穿主装甲
自己活着