您的位置:首页 > Web前端 > JavaScript

JSP学习

2015-12-02 11:24 405 查看
JSP学习
1、JSP--java server Pages 
2、JSP就是一个servlet,拥有servlet的特性和优点
3、直接在HTML中内嵌JSP
4、JSP程序由JSP Engine先将它转换成servlet代码,接着将它编译成类文件载入执行
5、只有当客户端第一次请求JSP是,才需要将其转换、编译

JSP特点:
1、优良的性能  优于CGI、PHP、ASP
2、平台无关性  操作系统无关,web服务器无关
3、可扩展性    tag的扩展机制,简化页面开发 

注意:HTML文件可以放在webApps的根目录下面或者根目录下的子目录下面,无需配置,但是不能放在WEB-INF,jsp也一样

JSP基本语法
1、JSP的传统语法
a、Declaration 声明 
<%! %>声明成员变量 
说明:在此声明的变量、方法都会被保留成唯一的一份,知道JSP程序停止执行
<%=  %> 会直接输出中间的内容
<% %>声明局部变量
b、Scriptlet 
基本语法:<% 程序代码区%>   可以放入任何的java代码
注释格式三种:
a、<%--......--%> b、<%//......%>  c、<%/*......*/%>

c、Expression <%=.....%>
=后面必须跟的是字符串变量或者是可以转换成字符串的表达式
不需要以;结束    并且只有一行

d、Comment
e、Directive(编译指令)相当于在编译期间的命令
格式:<%@Directive 属性="属性值"%>
常见的Directive:page/include/taglib
Directive-page指明与JSP Container的沟通方式
<%@page language="script language"   --script使用的语言,默认为java,一般不需要指明
|extends="className"  -- 继承了哪些类,不需要指明
|import=""importList"  --引用了哪些东西,经常用到
|buffer="none|kb size"   --none:不缓冲,默认是8k的缓冲区
|session="true|false"   --是否可以使用session,默认true
|autoFlush="true|false"  --缓冲区是否自动清除,默认true
|isThreadSafe="true|false"  
|info="infoText"|  --jsp相关描述信息
|errorPage="errorPageUrl"  --如果当前页面出错,会显示哪个页面的信息
|isErrorPage="true|false"   --当前页面是否是出错页面
|contentType="contentTypeInfo"
%>
Directive-include指令将指定的JSP程序或者HTML文件包含进来
格式:<%@include file="fileURL%>  JSPEngine会在JSP程序的转换时期先把file属性设定的文件包含
进来,然后开始执行转换及编译工作
限制:不能向fileURL中传递参数  例如可以如下方式:file=abc.jsp,但是不能file=abc.jsp?user=aaa

f、Action动作指令--运行期间指令
常见指令:
jsp:useBean(jsp:setProperty  jsp:getProperty)
Bean的基本要素:
必须要有一个不带参数的构造器,在JSP元素创建Bean时会调用空构造器
Bean类应该没有任何公共实例变量,通过getter/setter方法来访问变量
注意:在java中使用JavaBean要放在包中,不要使用裸体类
基本用法:<jsp:useBean id="beanName" scope="page|request|session|application"
class="package.BeanClass" type="typeName"/>
<jsp:useBean....>
<jsp:setProperty...>
<jsp:getProperty...>
</jsp:useBean>

jsp:useBean各项参数含义:
id:对象实例名称
scope:Bean作用的范围,默认为page,对整个jsp页面有效
class:Bean类名称
type:Bean实例类型,可以是本类或者其父类,或实现的接口,默认为本类
scope中各项参数的含义
page:仅涵盖使用JavaBean的页面
request:有效范围仅限于使用JavaBean的请求
session:有效范围在用户整个连接过程中(整个会话阶段均有效)
application:有效范围涵盖整个应用程序,也就是对整个网站均有效

jsp:include用来动态包含jsp程序或HTML文件等,除非这个指令被执行到,否则它是不会被tomcat
等JSP Engine编译
格式:<jsp:include page="URLSpec"flush="true"/>
     <jsp:include page="URLSpec"flush="true"><jsp:param name="paramName" value="paramValue"/>
     </jsp:include>
其中,jsp:param用来设定include文件时的参数和对应的值
jsp:include和编译指令的区别:include编译指令是在JSP程序的转换时期就将file属性所指定的程序内容
嵌入,然后再编译执行;而jsp:include指令在转换时期是不会被编译的,只有在客户端请求时如果被执行到
才会被动态的编译载入;此外include编译指令不能传递参数,但是jsp:include可以

jsp:forward用于将一个jsp的内容传送到page所指定的jsp程序或者servlet中处理(也就是指定的URL)
格式:<jsp:forword page="URLSpec" flush="true"/>
     <jsp:forword  page="URLSpec">
<jsp:param name="paramName" value="paramValue"/>
     </jsp:forword >
其中,jsp:param用来设定include文件时的参数和对应的值  Forward的页面和forforward的页面用的
c282
同一个request
<jsp:forward>使用同一个request ,response.sendRedirect是不同的request

jsp:plugin
g、JSP常用的内置对象及其方法
out内置对象是一个缓冲的输出流,用来给客户端返回信息
常用方法:pringln()向客户输出各种数据类型
newLine()输出一个换行符
close()关闭输出流
flush()输出缓冲区里的数据
clearBuffer()清除缓冲区里的数据,同时把数据输出到客户端
clear()清除缓冲区的数据,但不把数据输出到客户端
getBufferSize():返回缓冲区的大小
request内置对象表示的是调用JSP页面的请求,是javax.servletHttp.HttpServletRequest接口的一个实例,
常用request.getParameter("paramName")可以获得Form提交的参数值
常用此对象去的请求的Header。信息、请求的方式、请求的参数名称、参数值、客户端的主机名称等
常用方法:
getMethod():返回客户端向服务器传送数据的方法
getParameter(String paramName):返回客户端向服务器端传送的参数值,该参数由paramName指定
getParameterNames()获得客户端传送给客户端的所有参数的名字,结果是一个枚举类型数据(Enumeration)
getParameterValues(String name)获得指定参数的所有值,由name指定
getRequestURL():获得发出请求字符串的客户端地址
getRemoteAddr():获得客户端的IP地址
getRemoteHost():获得客户端的机器名称
getServerName():获得服务器的名字
getServletName():客户端所请求的脚本文件路径
getServerPort():获得服务器的端口
response内置对象是返回给客户端的响应,是javax.servletHttp.HttpServletResponse接口的一个实例,
常用于设置HTTP标题、添加Cookie、设置响应内容额类型和状态、发送Http重定向和编码URL
常用方法:
addCookie(Cookie cookie):添加一个Cookie对象,用于在客户端保存特定的信息
addHeader(String name, String value):添加HTTp头信息,并发送该信息到客户端
sendError(int ):向客户端发送错误消息,例如404是找不着了,500是服务器内部错误
sendRedirect(String url):重定向JSP文件,通过客户端发次二次申请,不同的request对象,而Jsp:forward是同一个request在服务器内部转发
setContentType(String contentType):设置MIME类型与编码方式

cookie: 保存到客户端的一个文本文件,与特定客户相关,以名—值对的形式保存数据,通过getName和getValue的方式得到相应的名字和值

exception
session
application常用方法:setAttribute和getAttribute
pageContent
page
config(后面三个不常用)

2、JSTL
3、JSF
4、其他taglib,例如Struts
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息