JSP379定律------jsp九大内置对象,七大动作,三大指令

1—jsp九大内置对象:

1>out对象:

向客户端输出数据,字节流.如out.print(" dgaweyr");

2>request对象:

接收客户端的http请求.
String getParameter(String name):得到表单参数名name的值.
String[] getParameterValues(String name):(得到String[]复选框时常用).
setAttribute(String name,Object obj):设置属性名为name,属性值为obj.
getAttribute(String name);得到属性值.

3>response对象:

封装jsp产生的回应,然后发送到客户端以响应客户的请求.重定向跳转任意界面.(服务器跳转)
addCookie(Cookie cookie):
sendRedirect("/wel.jsp"):跳转到指定页面

4>session对象:

用于保存用户信息,跟踪用户行为,当前打开的浏览器内,多个页面共享数据. session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止.它是HttpSession类的实例.
setAttribute(String name,Object obj):设置属性名为name,属性值为obj.
getAttribute(String name):得到属性值.

5>application对象:

实现了用户间数据的共享,可存放全局变量.它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问.服务器的启动和关闭决定了application对象的生命.它是ServletContext类的实例.

session,application,request的区别:
一个项目中session尽量少用几个,因为过多的session会影响程序的执行效率.它主要用于保存登录信息(用户信息,权限,资源)即频繁使用的信息.
application: 用于多个浏览器之间共享数据,多个用户共享该对象,可以做计数器.它的用法与session完全一样.
数据范围:
application(服务器关闭时失效)>session(浏览器关闭时失效)>request(只能用于两个跳转页面之间)

6>page对象

代表jsp这个实体本身,即当前页面有效.相当于Java中的this.
数据范围:page<session<application

7>exception:

代表运行时的异常.
在会发生异常的页面加入指令:<%@ page errorPage=“处理错误的页面.jsp”%>
在处理异常的页面写入:<%@ page isErrorPage=“true”%>

8>pageContext对象

pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pageContext.

9>config

jsp对应的servlet的配置,可以得到web.xml中的初使化参数.

2—jsp七大动作:

一:include 动态包含(分别编译):

用jsp:include动作实现<jsp: include page=“included.jsp” flush=“true” />
它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。flush属性: 用true ,表示页面可刷新。默认为false;

二:useBean动作(jsp页面使用javaBean的第二种方式):

<jsp:useBean id=“对象名” class=“包名.类名” scope=“作用范围(request/page/application/session)”/>
作用域默认为page(本页面有效).

三:getProperty动作(name为useBean动作中的id).

从对象中取出属性值:<jsp:getProperty name=“javaBean对象” property=“javaBean对象属性名” />

四:setProperty动作(name为useBean动作中的id):

为对象设置属性值:<jsp:setProperty name=“javaBean对象” property=“javaBean对象属性名” value=http://www.hake.cc/kf/201109/“值”/>
为对象设置属性值:<jsp:setProperty property=“javaBean对象属性名” name=“javaBean对象” param=“username”/>
(param=“username” 相当于 value=http://www.hake.cc/kf/201109/<%=request.getParameter(“username”)%>)

五:param动作(传递参数)):

到达跳转页面可以通过 request.getParameter(“参数名”)方式取出参数值
<jsp:include page=“转向页面的url” >
<jsp:param name=“参数名1” value=http://www.hake.cc/kf/201109/“参数值1”>

<jsp:param name=“参数名2” value=http://www.hake.cc/kf/201109/“参数值2”>

</jsp:include>
或:
<jsp:forward page=“转向页面的url” >
<jsp:param name=“参数名1” value=http://www.hake.cc/kf/201109/“参数值1”>
<jsp:param name=“参数名2” value=http://www.hake.cc/kf/201109/“参数值2”>

</jsp:forward>

六:forward动作:

跳转页面:<jsp:forward page=“login.jsp” />

七:plugin动作:

jsp:plugin:用于指定在客户端运行的插件

3–JSP三大指令

一:page指令:

1.指定页面编码.例:
<%@ page language=“java” contentType=“text/html;charset=gbk” pageEncoding=“gbk” %>
2.导入包,例:
<%@ page import=“java.util.,java.text.” %>.

二:include 指令

静态包含(统一编译):<%@ include file=“included.jsp”%>

三:taglib

为什么要用Taglib,Taglib到底有什么好处? 问题的提出,为什么要用Taglib(标签库)?

在学jsp第三章jsp基础时,我们接触过脚本元素(Scripting Element)。

马克-to-win:问题一,
这些脚本元素会把java代码和html混合在一起,从而使得代码的调试和维护非常困难。

马克-to-win:问题二,
脚本元素不能重用,对于稍微变一变参数的情况,include指令和动作也解决不了问题,比如脚本1输出1,脚本2输出2。include只能解决完全一样的问题。工程师们只能靠着在各个不同jsp之间复制黏贴脚本元素代码的方法解决问题不能重用的问题。需求一改动,非常容易忘记改某个jsp的脚本元素,造成错误。

问题的解决
马克-to-win:这些问题反馈回Sun公司。于是Sun公司就推出了taglib(标签库)技术。一句话概括taglib技术:jsp中的一个标签儿对应着一段纯java代码,像过去一样,放在一个纯java文件当中,绝对不是html和java混在一起,难以调试。这样一来,上述两个问题都解决了。

taglib推出以后的巨大变革
马克-to-win:taglib技术的推出,使得很多大软件公司都推出自己的标签儿库,比如sun 公司推出自己的jstl(javastandard标准标签库),Apache推出Struts架构。你在jsp中引入他们的一个标签儿,再按照他们的语法配置,被你引入的那个标签儿,就能够调用他们编写的类。
马克-to-win:他们所编写的标签和类,都是一些各个项目都有可能用到的特性,比如上传,国际化等

原文出处:http://www.mark-to-win.com/index.html?content=Jsp/jspUrl.html&chapter=Jsp/jsp5_web.html#WhyTaglib

4Jsp中的静态包含与动态包含

动态include(<jsp: include page=“included.jsp”/>)
静态include(<%@ include file=“included.jsp”%>)

1.静态include的结果是把其他jsp引入当前jsp,两者合为一体,可以达到数据的共享即可以说是统一编译的,而
动态include的结构是两者独立的,直到输出时才合并即为分别编译的.

2.动态include的jsp文件独立性很强,是一个单独的jsp文件,需要使用的对象,页面设置,都由自己创建,而静态include纯粹是把代码写在外面的一种共享方法,所有的变量都是可以和include它的主文件共享,两者高度紧密结合,不能 有变量同名的冲突.而页面设置也可以借用主文件的.

3.动态包含总是检查被包含页面的变化,静态包含不一定检查被包含页面的变化.

4.动态包含可带参数,静态包含不能带参数.如(<jsp: include page=“included.jsp”>放入参数</jsp:include>);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值