JSP程序由JSP Engine(JSP引擎) 先将它转换成Servlet代码,接着将它编译成类文件载入执行。
只有当客户端第一次请求JSP时,才需要将其转换、编译
Directive 指令
Directive是编译期间执行的指令,常见的指令有:page include taglib
page:指明与JSP Container(JSP容器)的沟通方式
<%@ page language="java"
import="java.io.*,java.util.*" 引入包和类
errorPage="errorPageUrl" 如果页面出现错误,跳转到哪个页面
isErrorPage="false" 当前页面是否为一个错误页面
contentType="text/html; charset=GB2312"字符编码形式
extends="index.jsp" 指明这个jsp页面是从哪个jsp继承过来的
buffer="8KB" 缓冲区,默认为8K。none代表不缓冲
session="true" 是否使用session,默认为true
autoFlush="true" 页面输出完成后,是否自动刷新到客户端
info="InfoText" 指明JSP相关的描述信息
%>
include: JSP Engine会在jsp程序的转换期间先把file属性设定的文件包含进来,然后开始执行转换及编译
<%@ include file="index.jsp"%>//index.jsp后面不能接参数。因为这是一个编译指令
Declaration 声明
<%
int i = 0;//这种声明,i为局部变量
%>
<%!
int j = 0;//这种声明,j为成员变量(全局变量)
public void getMessage(){}//我们可以在此定义成员方法
%>
Action 运行期间的指令
Action是运行期间的指令,常见的指令有:jsp:useBean jsp:include jsp:forward
jsp:include
用于动态的JSP程序或HTML文件
除非这个指令被执行到,否则它是不会被Tomcat等JSP Engine编译
<jsp:include page="URLSpec">
<jsp:param name="ParamName" value="ParmValue"/> //用来设定include文件时的参数和值
</jsp:include>
jsp:forward
用于将一个jsp页面的内容传送到page所指定的jsp程序或者servlet中处理
<jsp:forward page="index.jsp">
<jsp:param name="paramName" value="paramValue"/>
</jsp:forward>
<jsp:forward>与response.sendRedirect的区别
<jsp:forward>
1、跳转发生在服务器端,跳转后,客户端的URL地址依然是1.jsp的地址
2、<jsp:forward>在跳转的过程中,使用的是同一个request对象
3、工作流程:客户端发出请求,传递到服务器1.jsp页面,1.jsp页面解析代码到<jsp:forward>语句后跳转到2.jsp页面。服务器将2.jsp页面的内容传递给客户端
response.sendRedirect
1、跳转后,客户端的URL地址发生改变
2、response.sendRedirect在跳转过程中,是不同的request对象
3、工作流程:客户端发出请求后,传递到1.jsp页面。1.jsp向客户端发出响应,通知客户端重新访问2.jsp页面。客户端得到请求后,再向2.jsp发出请求。2.jsp将响应内容传递给客户端
<jsp:useBean>
Bean的基本要素:
1、必须要有一个不带参数的构造器(构造函数),在jsp元素创建Bean时会调用空构造器
2、Bean类应该没有任何公共实例变量。也就是说不允许直接访问实例变量,变量名称首字母必须小写
3、通过getter()和setter()方法来读或写变量值,并且将对应的变量首字母改成大写
4、Bean要有包,不能使用裸体类
<jsp:useBean id="beanName" class="cn.wyd.testBean" scope="page" type="int">
</jsp:useBean>
id:Bean对象的实例名称
class:包名+类名
scope:这个Bean的作用范围,共有page,request,session,application四个值,默认为page,表示这个Bean只在当前页面有效。
type:Bean的实例类型,如果这个选择的是Object,则表示父类引用指向子类对象
<jsp:setProperty property="count" name="beanName" value="50"/>
设置Bean的属性,property="Bean中的变量名" 这句话相当于beanName.setCount(50);
<jsp:getProperty property="count" name="beanName" />
得到Bean的属性,相当于beanName.getCount();
JSP内置对象
内置对象是在JSP里直接可以使用的对象,包括:
out request response pageContext session application config exception page
JSP内置对象out
out内置对象是一个缓冲的输出流,用来给客户端返回信息。
它是javax.servlet.jsp.JspWriter类的一个实例
常用方法:
println():向客户端输出各种类型的数据
write():
newline():输出一个换行符
close():关闭输出流
flush():输出缓冲区里的数据
clearBuffer():清除缓冲区里的数据,同时把数据输出到客户端
clear():清除缓冲区里的数据
getBufferSize():返回缓冲区的大小
JSP内置对象request
request内置对象表示的是调用JSP页面的请求。
它是javax.servlet.http.HttpServletRequest接口的一个实例
可以用此对象取得请求的Header信息,请求方式(get/post),请求的参数名称、参数值、客户端主机名等
常用方法:
getParameter(String paramName) 获得form提交过来的参数值,此参数值由paramName指定
getMethod():返回客户端向服务器传送数据的方法
getParameterNames():获得客户端传送给服务器的所有参数名,返回枚举类型(Enumeration)
getParameterValues(String name):获得指定参数的所有值,由name指定
getRequestURI():获得发出请求字符串的客户端地址
getRemoteAddr():获取客户端的IP地址
getRemoteHost():获取客户端的机器名称
getServerName():获取服务器的名字
getServerPort():获取服务器端的端口
JSP内置对象response
表示的是返回给客户端的响应
它是javax.servlet.http.HttoServletResponse接口的一个实例
经常用于设置HTTP标题,添加cookie,设置响应内容的类型和状态,发送HTTP重定向和编码URL
常用方法:
sendRedirect(String url):重定向JSP文件
setContentType(String contentType):设置MIME类型和编码方式
addCookie(Cookie cookie):添加一个cookie对象,用于在客户端保存特定的信息
addHeader(String name,String value):添加HTTP头信息,该Header信息将发送到客户端
containsHeader(String name):判断指定名字的HTTP头文件是否存在
sendError(int):向客户端发送错误的信息
JSP内置对象session
常用方法:
setAttribute(String name ,Object value)
getAttribute(String name)
isNew()
getSessionId()
Servlet和JSP的通信
从JSP调用Servlet可用<jsp:forward>或者sendRedirect,请求信息自动跳转到servlet
从servlet调用JSP使用ResquestDispatcher接口的forward(request,response)方法或者使用sendRedirect跳转到JSP页面
相关推荐
下面是对JSP的一些主要知识点的详细解释: 1. **JSP注释**: - 单行注释:`<%-- comment --%>`,这种注释在JSP转换为Servlet时会被忽略,不会出现在生成的HTML中。 - HTML注释:`<!-- comment -->`,这种注释会...
**JSP 学习总结** JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML中嵌入Java代码,以实现服务器端的程序逻辑。对于初学者来说,掌握JSP的基础知识和核心概念至关重要。 ### JSP 开发Web应用系统 ...
【JSP期末概念总结】 JSP(JavaServer Pages)是一种基于Java的技术,它允许开发者在HTML页面中嵌入Java代码,以实现动态网页的创建。JSP文件在服务器上被编译成Servlet类,然后执行生成动态内容。JSP的核心在于将...
【JSP 学习经验分享】 JSP(JavaServer Pages)是一种基于Java技术的动态网页开发工具,它允许开发者在HTML、XML或者其他标记语言中嵌入Java代码,从而实现动态内容的生成。JSP 主要用于构建Web应用程序,提供与...
《jsp学习笔记总结(收集)》 在IT领域,Java Server Pages(JSP)是一种用于构建动态网页的技术,它将HTML、CSS、JavaScript等客户端代码与Java代码结合在一起,使得开发者能够轻松地创建数据驱动的Web应用程序。...
"jsp课程总结" JSP(JavaServer Page)是一种基于 Java Server 以及整个 Java 体系的 Web 开发技术,能够建立动态的、高性能的、安全的、跨平台的先进动态网站。JSP 技术的核心是将 Java 代码嵌入到 HTML 页面中,...
**JSP(Java Server Pages)学习总结** JSP是Java技术在Web开发中的一个重要组成部分,全称为JavaServer Pages。它是一种动态网页技术,允许开发者将HTML、CSS、JavaScript与Java代码混合在一起,以创建交互式的...
在学习JSP的过程中,首先接触的是Tomcat服务器的配置。Tomcat的全局配置文件`web.xml`位于`conf`目录下,它定义了服务器的行为。例如,若要禁止目录列表显示,需要修改`<init-param>`中的`listings`参数,将其值设为...
**JSP学习笔记总结** **第 1 章 JSP 和 Web 页面的交互** 1.1 JSP(JavaServer Pages)是Java技术在Web开发中的应用,它允许开发者将静态HTML与动态Java代码结合起来,生成动态网页。通过在HTML页面中嵌入Java代码...
JSP & Servlet 技术总结 JSP技术总结 2 1. JSP页面元素构成 2 2. JSP脚本元素 2 3. 注释 2 4. JSP指令 2 5. JSP动作元素 3 6. JSP内置对象 5 7. JSP内置对象及其作用 5 8. 获取页面参数 5 9. 重定向...
html,css,jsp相关知识总结,便于进行html,css,jsp的学习
JSP学习心得 JSP(Java Server Pages)是一种基于Java的服务器端脚本语言,用于生成动态网页。JSP技术可以将Java代码嵌入到HTML网页中,以生成动态网页内容。JSP程序设计课程的学习体会涵盖了从基础知识到实践应用...
压缩包中的"JSP学习资料.doc"文档很可能是详细的JSP教程或笔记,涵盖了上述所有概念和更多实践案例。通过深入阅读和实践,可以全面掌握JSP技术,为Web开发打下坚实的基础。 总结来说,JSP是Java平台上的动态网页...
【JSP工作原理详解】 JavaServer Pages(JSP)是一种基于Java技术...以上就是JSP学习中关于工作原理、输出缓冲区以及服务端重定向的重要知识点。理解这些概念有助于更好地编写和优化JSP应用程序,提高性能和用户体验。
结合“总结之JSP.docx”文档,可能涵盖了对JSP、EL和JSTL的综合概述,包括它们的概念、使用场景、优点和最佳实践。这些文档内容对于初学者理解JSP开发以及提升Java Web技能非常有帮助,特别是对于准备IBM的Java考试...
【JSP学习总结】 JSP(JavaServer Pages)是Java平台上的一个重要技术,它是一种用于创建动态网页的服务器端编程技术。JSP的核心概念在于将HTML代码与Java代码分离,使得开发者可以更专注于业务逻辑的实现,而不用...
jsp基础的学习资料,适合初学者,ppt形式,可以很容易学会jsp jsp基础的学习资料,适合初学者