JavaEETutorial5概译------Chapter 3

开始复习巩固知识,拿了JavaEETutorial5来参考,1000多页怪恐怖的,也难怪没人翻译了 :D 。简要翻译一下,以供参考。前两章概览介绍忽略了,从第三章Web应用开始。

[b]Getting Started with Web Applications[/b]

[img]/upload/attachment/79399/16c06b5f-16bc-3590-9415-71f8ac43f2c4.jpg[/img]

看上图web应用的总体结构。web client向web server发送http请求,web server将http请求封装成http对象,并将http对象分派给相应的web components,web components可以和java beans或者直接和database通讯。web components接受到http对象后,可以在转发给其他web components或者组装出一个http响应返回给web client。


[img]/upload/attachment/79401/5520f2be-a388-31eb-93a4-4d843b8ccf51.jpg[/img]

这是web components的结构,可以看出,servlet是整个web components的基础。其他components都是对它的一个封装。servlet就是个java类,jsp则是被设计为类似html,xml的文本标记语言。

这些web components都运行在一个叫做web container的环境下。web container提供了类似请求分派,安全,并发和生命周期管理等服务。还有供component调用的api,比如命名服务,交互和email。

web应用的一些行为,在安装,部署期间,可以通过叫做web application deployment descriptor(简称DD) 的xml配置文件来配置。

[b]
Web Application Life Cycle[/b]

web应用生命周期如下:

1.编写web component代码

2.配置DD

3.编译components及相关类

4.打包需要部署的内容

5.部署到web容器中

6.通过URL访问web应用

[b]
Web Modules[/b]


[img]/upload/attachment/79418/2325f718-7878-3c55-ab98-d5a4990d448e.jpg[/img]

web componets以及image之类的静态文件,统称为web资源。而最小的可发布的web资源就是web模块。除了components和资源,web模块还能包括如下内容。
服务器端工具类(数据bean),客户端类(applet)。
web模块的结构如上,如果你的web模块里面没有servlet,listener或filter,那么web.xml就不是必须的。当你把web模块发布到应用服务器上的时候,需要sun-web.xml(还没接触过这个配置文件,有点寒~)文件。sun-web.xml文件包含web模块的上下文根路径(context root)信息,以及web资源到应用服务器资源之间的一个映射。

[b]Configuring Web Applications[/b]
这一节前半部分完全是一步步讲netbeans操作的,没有讲关于DD的内容,忽略。
Declaring Resource References
这里的Resource可能可平时理解的不一样,这里的Resource只的是像enterprise beans, data sources, or web services这类组件。可以使用注解来注入这些Resource。
但是有一些限制。首先,你只能对受管对象注入Resource,第二,你不能对JSP注入Resource,这是因为,注解是在部署的时候被激活的,而JSP的编译是在第一次被访问的时候。
下面的组件可以被注入Resource.

[img]/upload/attachment/79533/645b930a-4cec-33ee-bc3e-4aaa2298ca08.jpg[/img]

Declaring a Reference to a Resource
@Resource注解是定义一个到Resource的引用的,对应DD里面的resource-ref元素。@Resource可以注解类,也可以注解方法或属性。作用是将Resource的引用注入给被注解的类,方法或属性,并会映射到JNDI相应的Resource上。
下面的实例是给类注入一个DataSource。

@Resource javax.sql.DataSource catalogDS;
public getProductsByCategory() {
// get a connection and execute the query
Connection conn = catalogDS.getConnection();
..
}

如果要注入多个Resource,那么如下书写

@Resources ({
@Resource (name="myDB" type=java.sql.DataSource),
@Resource(name="myMQ" type=javax.jms.ConnectionFactory)
})


Declaring a Reference to a Web Service
@WebServiceRef注解一个到webservice的引用。
下面的例子使用@WebServiceRef注申明一个到webservice的引用,使用wsdlLocation元素确定了相应的wsdl文件的地址。

...
import javax.xml.ws.WebServiceRef;
...
public class ResponseServlet extends HTTPServlet {
@WebServiceRef(wsdlLocation=
"http://localhost:8080/helloservice/hello?wsdl")
static HelloService service;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值