[转帖]J2EE技术规范-篇四-JSP_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
2
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4156 | 回复: 1   主题: [转帖]J2EE技术规范-篇四-JSP        下一篇 
ulee@land
注册用户
等级:上尉
经验:769
发帖:55
精华:1
注册:2012-12-17
状态:离线
发送短消息息给ulee@land 加好友    发送短消息息给ulee@land 发消息
发表于: IP:您无权察看 2012-12-24 14:57:33 | [全部帖] [楼主帖] 楼主

五、JSP Actions
(1)Action是在请求时执行的JSP命令
(2)下表列出扩展JSP功能的六个Action标签

使用useBean action实例化一个JavaBean的示例:

[java]view plaincopyprint?
1. <jsp:useBean id="shoppingCart" class="com.bea.Shoopingcart"/>
2. <% shoppingCart.addItem(new CD("U2"));%>
3. <%=shoppingCart.getCount()%>

<jsp:useBean id="shoppingCart" class="com.bea.Shoopingcart"/>
<% shoppingCart.addItem(new CD("U2"));%>
<%=shoppingCart.getCount()%>


六、JSP Directives
(1)Directives是在编译时执行的JSP命令
(2)下面这三个directives能够改变JSP的行为

Directives使用的示例:

[java]view plaincopyprint?
1. <%@page import="mypackge.myClassA"%> 引用一个类
2. <%@page errorPage="myErrowPage.jsp"%> 当异常时调用该JSP页


3. <%page extends="myJSPSuperclass"%> 所要继承的类
4. <%@include file="myHeaderFile.html"%>包含一个头文件
5. <%@taglib uri=myCustomTags.tld prefix=custom%> 加载自己定制的标签

<%@page import="mypackge.myClassA"%> 引用一个类
<%@page errorPage="myErrowPage.jsp"%> 当异常时调用该JSP页
<%page extends="myJSPSuperclass"%> 所要继承的类
<%@include file="myHeaderFile.html"%>包含一个头文件
<%@taglib uri=myCustomTags.tld prefix=custom%> 加载自己定制的标签


(3)八个内置对象:

a、Request 对象封装了客户端到服务器的数据。这些数据有客户提交的数据,也有客户端的一些配置信息。比如客户的IP,主机名等。通过getAttribute方法和setAttribute方法页面获得服务器的数据和向request添加数据。可以利用getParameter查看请求参数。也可以查看请求类型,请求的HTTP头等。
b、Respose 对象从服务器到客户端的响应封装。用来将服务器的内容写入客户端。常用的是getWriter方法。在客户端打印数据。
c、Out 对象 用来向客户端打印数据。它就像是response的一支笔。执行具体的打印动作。
d、Session 对象提供服务器和客户端的会话。一个session就像是一次对话。对话的内容是用户的状态和一些认证信息。
e、Application 对象。就是一个公用的会话。与session相对。session是每个用户独有的。Application 是这些用户共享的一些数据。
f、Config 提供servlet的一些配置信息。仅在当前页有效。
g、pageContext 提供存取所有关于JSP程序执行时所需的属性和方法。如session application config out。有效范围为当前页。这个就像是这些对象的一个大容器。
h、Page 相当于java类中的this。用处不大。表示当前页面。
(4)使用内置对象

 a、HttpServletRequest
[java]view plaincopyprint?
1. <% String account=request.getParameter("accountNumber");%>
2. Your account number is<%=account%>

<% String account=request.getParameter("accountNumber");%>
Your account number is<%=account%>

b、ServletContext
[java]view plaincopyprint?
1. <% String table=application.getInitParameter(tableName);
2. String sql="SELECT * FROM"+tableName;
3. ResultSet rs=Statement.executeQuery(sql);%>

<% String table=application.getInitParameter(tableName);
   String sql="SELECT * FROM"+tableName;
   ResultSet rs=Statement.executeQuery(sql);%>

c、ServletConfig
[java]view plaincopyprint?
1. <p> This Web Application requires Version
2. <%=config.getInitParameter("WLS-Version")%>
3. To run correctly.<p>

<p> This Web Application requires Version
<%=config.getInitParameter("WLS-Version")%>
To run correctly.<p>


(5)对象作用范围
a、pageContext,request,session和application对象都提供了方法,用于在其作用范围内存储对象。
b、范围定义了它们的存货周期和JSPs之间的访问性
对象
生存周期
在哪可访问

 pageContext


到将response返回到用户或将request传递到一个新页面为止
当前页面

 request


到将response返回到用户为止
当前页面和所有被包含或被传递的页面

 session


与用户的会话相同
当前请求和任何来自浏览器后续请求(在session生存时间内)

 application


Web应用生存周期
当前和所有后续向同一个Web应用发出的请求
(6)在作用范围内存取对象
A、在对象作用范围内提供以下方法存取对象:
a、setAttribute(String,Object)将一个对象关联到一个字符串,之后可以读取
b、Object getAttribute(String)通过名字读取该对象
c、Enumeration getAttributeNames()取得在作用范围中所有对象的名字
d、void removeAttribute(String)删除一个属性
(7) 在JSP页之间共享request
A、几个JSP页能通过使用request对象在JSP页之间共享对象,从而处理一个请求。

在request上下文中存储对象的示例jsp1.jsp:

[java]view plaincopyprint?
1. <% Employee employee1=new Employee();
2. employee1.setName("John Doe");
3. request.setAttribute("John",employee);%>
4. <jsp:forward page="jsp2.jsp"/>

<% Employee employee1=new Employee();
       employee1.setName("John Doe");
       request.setAttribute("John",employee);%>
  <jsp:forward page="jsp2.jsp"/>


从request上下文中取回对象的示例jsp2.jsp:

[java]view plaincopyprint?
1. <%=((Employee)request.getAttribute("John").getName())%>

<%=((Employee)request.getAttribute("John").getName())%>


(8)、在JSP中使用JavaBeans
A、在业务逻辑或模型数据能够在JSP之外以JavaBean实现
B、JavaBeans遵循以下这些规则
a、一个无变量的构造方法
b、每个属性都有ser和get方法
c、应该可序列化
构造Employee的JavaBean简单示例:

[java]view plaincopyprint?
1. public class EmployeeJavaBean implements
2. Serializable{
      3. String name;double salary;
4. public EmployeeJavaBean(){name=null;salary=0.0}
5. public void setName(String n){name=n;}
6. public String getName(){return name;}
7. public void setSalary(double s){salary=s;}
8. public double getSalary(){return salary;}
9. }

public class EmployeeJavaBean implements
 Serializable{
 String name;double salary;
 public EmployeeJavaBean(){name=null;salary=0.0}
 public void setName(String n){name=n;}
 public String getName(){return name;}
 public void setSalary(double s){salary=s;}
 public double getSalary(){return salary;} 
}


C、在JSP中使用useBean创建JavaBean实例
D、通过使用serProperty和getProperty访问JavaBean的变量:
实例化,初始化和使用JavaBean标签的示例:

[java]view plaincopyprint?
1. <jsp:useBean id="employee"
2. class="mypack.EmployeeJavaBean">
3. <jsp:setProperty name="employee" property="name"
4. value="John Doe"/>
5. </jsp:useBean>
6. <jsp:setProperty name="employee" property="salary"
7. value="20000"/>
8. Employee:<jsp:getProperty name="employee"
9. property="name">

<jsp:useBean id="employee"
  class="mypack.EmployeeJavaBean">
 <jsp:setProperty name="employee" property="name"
  value="John Doe"/>
</jsp:useBean>
<jsp:setProperty name="employee" property="salary"
  value="20000"/>
Employee:<jsp:getProperty name="employee"
  property="name">


也可以像下面这样使用get和set方法:

[java]view plaincopyprint?
1. <% employee.setSalary(employee.getSalary()+10000);%>
2. salary<%=employee.getSalary()%>

<% employee.setSalary(employee.getSalary()+10000);%>
salary<%=employee.getSalary()%>


E、在默认情况下,你的JavaBean在page作用范围内存放
F、可以使用scope属性设置它的范围为page,request,session或application
存储对象在request上下文中的示例jsp1.jsp:

[java]view plaincopyprint?
1. <jsp:useBean id="employee"
2. class="myPack.EmployeeJavaBean"
3. scope="request"/>
4. <jsp:forward page="jsp2.jsp"/>

<jsp:useBean id="employee"
  class="myPack.EmployeeJavaBean"
  scope="request"/>
<jsp:forward page="jsp2.jsp"/>


从request上下文中取回对象的示例jsp2.jsp:

[java]view plaincopyprint?
1. <jsp:useBean id="employee"
2. class="mypack.EmployeeJavaBean"
3. scope="request"/>




赞(0)    操作        顶端 
ilikeorcl
注册用户
等级:中尉
经验:431
发帖:32
精华:1
注册:2012-12-17
状态:离线
发送短消息息给ilikeorcl 加好友    发送短消息息给ilikeorcl 发消息
发表于: IP:您无权察看 2012-12-24 16:26:19 | [全部帖] [楼主帖] 2  楼

J2EE北京联动北方科技有限公司北京联动北方科技有限公司

Java Platform Enterprise Edition   Java平台企业版

J2EE又称为JEE,不可念成J二EE

JEE的作用

用于解决企业级应用开发中所遇到的问题

JEE的本质:(集合)

1.       JEE是一个规范集

2.       JEE是一个技术集

3.       JEE是一个框架集和API集

Java的发展方向

JCP  JAVA社区(定义JAVA的标准)控制JAVA的技术发展

JSR  JAVA服务规范

什么是企业级应用

企业级应用即大规模应用,不要单纯的从字面上理解这个名称

企业级应用的特点

1.       用户较多

2.       生命周期长

3.       稳定性高

4.       跨平台

5.       可维护(可修改BUG)

6.       可扩展(可以增加功能)

7.       可重用

8.       事务管理

9.       安全管理

10.   线程管理

11.   等等

J2EE的技术分布

表现层:Servlet  Jsp  JavaBean(jdk5.0更新JSF)  taglib

逻辑层:EJB(sessionBean)

表现层与逻辑层之间进行通信靠RMI+JNDI/IIOP(后面介绍如何通信)

数据层:JDBC(jdk6时JDBC4出台)  EJB(EntityBean)

服务层:JTA  JTS  JAAS

其他技术:JMS  JavaMail  JMX  JCA  JPA等等

Servlet           运行在服务器端的小应用程序

JSP                JAVA  SERVET  PAGE  运行在服务器端的页面
JavaBean        Java封装数据的体系结构

taglib            标签库

JSF                JAVA服务器端界面(界面制作)

EJB               企业JavaBean       一种企业级开发的组件体系结构

RMI               远程调用

JNDI             Java命名与目录接口

JDBC             Java数据库连接

JTA               Java事务架构(主流)

JTS                Java事务服务

JAAS             Java授权与验证服务(用于安全处理)

JMS              Java消息服务

JavaMail        Java邮件系统(POP3 收邮件           SMTP(简单消息传输协议)发邮件)

JMX              Java微内核结构

JCA               Java连接器架构(用于不同系统间集成)

JPA               Java存储架构



赞(0)    操作        顶端 
总帖数
2
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论