Microsoft Word - 朱晔和你聊Spring系列S1E4:灵活但不算好用的SpringMVC.docx

Size: px
Start display at page:

Download "Microsoft Word - 朱晔和你聊Spring系列S1E4:灵活但不算好用的SpringMVC.docx"

Transcription

1 朱晔和你聊 Spring 系列 S1E3: 灵活但不算好用的 Spring MVC 本文会以一些例子来展现 Spring MVC 的常见功能和一些扩展点, 然后我们来讨论一下 Spring MVC 好用不好用 使用 SpringBoot 快速开始 基于之前的 parent 模块, 我们来创建一个新的模块 : <?xml version="1.0" encoding="utf-8"?> <project xmlns:xsi=" xmlns=" xsi:schemalocation=" <modelversion>4.0.0</modelversion> <groupid>me.josephzhu</groupid> <artifactid>spring101-webmvc</artifactid> <version>0.0.1-snapshot</version> <packaging>jar</packaging> <name>spring101-webmvc</name> <description></description> <parent> <groupid>me.josephzhu</groupid> <artifactid>spring101</artifactid> <version>0.0.1-snapshot</version> </parent> <dependencies> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> <dependency> <groupid>org.springframework.boot</groupid>

2 <artifactid>spring-boot-starter-thymeleaf</artifactid> </dependency> </dependencies> <build> <plugins> <plugin> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-maven-plugin</artifactid> </plugin> </plugins> </build> </project> 使用 web 来启用 Spring MVC, 使用 thymeleaf 来启用 thymeleaf 模板引擎 Thymeleaf 是一个强大的 Java 模板引擎, 可以脱离于 Web 单独使用, 本身就有非常多的可配置可扩展的点, 这里不展开讨论, 详见官网 接下去我们创建主程序 : import org.springframework.boot.springapplication; import public class Spring101WebmvcApplication { public static void main(string[] args) { SpringApplication.run(Spring101WebmvcApplication.class, args); 以及一个测试 Controller: import org.springframework.stereotype.controller; import org.springframework.web.bind.annotation.getmapping; import org.springframework.web.servlet.modelandview; import java.util.stream.collectors; import public class MyController {

3 @GetMapping("shop") public ModelAndView shop() { ModelAndView modelandview = new ModelAndView(); modelandview.setviewname("shop"); modelandview.addobject("items", IntStream.range(1, 5).mapToObj(i -> new MyItem("item" + i, i * 100)).collect(Collectors.toList())); return modelandview; 这里使用到了一个自定义的类 : import lombok.allargsconstructor; public class MyItem { private String name; private Integer price; 最后我们需要在 resources 目录下创建一个 templates 目录, 在目录下再创建一个 shop.html 模板文件 : <!DOCTYPE html SYSTEM " <html lang="en"> <head> <meta charset="utf-8"> <title>hello Shop</title> </head> <body> Hello Shop <table> <tr th:each="item : ${items"> <td th:text="${item.name">...</td> <td th:text="${item.price">...</td> </tr> </table> </body> </html> 我们看到有了 SpringBoot, 创建一个 Spring MVC 程序整个过程非常简单 :

4 1 引入 starter 2 3 创建模板文件没有任何配置工作, 一切都是 starter 自动配置 快速配置 ViewController 几乎所有 Spring MVC 的扩展点都集成在了接口中, 要进行扩展很简单, 实现这个接口, 注解, 实现需要的方法即可 我们先用它来快速配置一些 ViewController: import org.springframework.context.annotation.configuration; import org.springframework.format.formatterregistry; import org.springframework.http.httpstatus; import org.springframework.web.method.support.handlermethodargumentresolver; import org.springframework.web.servlet.config.annotation.*; import org.springframework.web.servlet.resource.gzipresourceresolver; import org.springframework.web.servlet.resource.versionresourceresolver; public class WebConfig implements WebMvcConfigurer { public void addviewcontrollers(viewcontrollerregistry registry) { registry.addviewcontroller("/hello").setviewname("helloworld"); registry.addredirectviewcontroller("/", "/hello"); registry.addstatuscontroller("/user", HttpStatus.BAD_REQUEST); 代码中多贴了一些后面会用到的 import 在这里可以忽略 这里我们配置了三套策略 : 1 访问 / 会跳转到 /hello 2 访问 /hello 会访问 helloworld 这个 view 3 访问 /user 会给出 400 的错误代码这里我们在 templats 目录再添加一个空白的 helloworld.html:

5 <!DOCTYPE html SYSTEM " <html lang="en"> <head> <meta charset="utf-8"> <title>hello World</title> </head> <body> Hello World </body> </html> 这种配置方式可以省一些代码量, 但是我个人认为在这里做配置可读性一般 定制路径匹配 我们还可以实现路径匹配策略的定制 : public void configurepathmatch(pathmatchconfigurer configurer) { configurer.setusetrailingslashmatch(false); 比如这样就关闭了结尾为 / 的匹配 ( 默认开启 ) 试着访问 得到如下错误 : :58: WARN [nio-8080-exec-1] o.s.web.servlet.pagenotfound : No mapping found for HTTP request with URI [/shop/] in DispatcherServlet with name 'dispatcherservlet' 这个方法可以针对路径匹配进行相当多的配置, 具体请参见文档, 这里只列出了其中的一 个功能 配置静态资源 在配置类加上下面的代码 : public void addresourcehandlers(resourcehandlerregistry registry) { registry.addresourcehandler("/static/**").addresourcelocations("classpath:/static/").resourcechain(true).addresolver(new GzipResourceResolver()).addResolver(new VersionResourceResolver().addFixedVersionStrategy("1.0.0", "/**"));

6 这就实现了静态资源路由到 static 目录, 并且为静态资源启用了 Gzip 压缩和基于版本号的缓存 配置后我们在 resources 目录下创建一个 static 目录, 然后随便创建一个 a.html 文件, 试试访问这个文件, 测试可以发现 : 和 都可以访问到这个文件 解析自定义的参数 HandlerMethodArgumentResolver 接口这是一个非常非常重要常用的扩展点 通过这个接口, 我们可以实现通用方法来装配 HandlerMethod 上的自定义参数, 我们现在来定义一个 MyDevice 类型, 然后我们希望框架可以在所有出现 MyDevice 参数的时候自动为我们从 Header 里获取相应的设备信息构成 MyDevice 对象 ( 如果我们 API 的使用者是客户端应用程序, 这是不是一个挺常见的需求 ) import public class MyDevice { private String type; private String version; private String screen; 然后是自定义的 HandlerMethodArgumentResolver 实现 : import org.springframework.core.methodparameter; import org.springframework.web.bind.support.webdatabinderfactory; import org.springframework.web.context.request.nativewebrequest; import org.springframework.web.method.support.handlermethodargumentresolver; import org.springframework.web.method.support.modelandviewcontainer; public class DeviceHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver { public boolean supportsparameter(methodparameter methodparameter) { return methodparameter.getparametertype().equals(mydevice.class); public Object resolveargument(methodparameter methodparameter, ModelAndViewContainer modelandviewcontainer, NativeWebRequest nativewebrequest,

7 WebDataBinderFactory webdatabinderfactory) throws Exception { MyDevice mydevice = new MyDevice(); mydevice.settype(nativewebrequest.getheader("device.type")); mydevice.setversion(nativewebrequest.getheader("device.version")); mydevice.setscreen(nativewebrequest.getheader("device.screen")); return mydevice; 实现分两部分, 第一部分告诉框架, 我们这个 ArgumentResolver 支持解析怎么样的参数 这里我们的实现是根据参数类型, 还有很多时候可以通过检查是否参数上有额外的自定义注解来实现 ( 后面也会有例子 ) 第二部分就是真正的实现了, 实现非常简单, 从请求头里获取相应的信息构成我们的 MyDevice 对象 要让这个 Resolver 被 MVC 框架识别到, 我们需要继续扩展刚才的 WebConfig 类, 加入下面的代码 : public void addargumentresolvers(list<handlermethodargumentresolver> resolvers) { resolvers.add(new DeviceHandlerMethodArgumentResolver()); 然后, 我们写一个例子来测试一下 : import lombok.extern.slf4j.slf4j; import org.springframework.web.bind.annotation.*; import java.util.arraylist; import java.util.list; import java.util.stream.collectors; @RequestMapping("api") public class MyRestController = "items", method = RequestMethod.GET) public List<MyItem> getitems(mydevice device) { log.debug("device : " + device); List<MyItem> myitems = new ArrayList<>(); myitems.add(new MyItem("aa", 10)); myitems.add(new MyItem("bb", 20)); return myitems;

8 这里因为用了 debug, 所以需要在配置文件中打开 debug 日志级别 : logging.level.me.josephzhu.spring101webmvc=debug 测试一下 : curl -X GET \ \ -H 'device.screen: 1280*800' \ -H 'device.type: android' \ -H 'device.version: 1.1' 可以在控制台看到这样的日志 : :10: DEBUG [nio-8080-exec-9] m.j.spring101webmvc.myrestcontroller : Device : MyDevice(type=android, version=1.1, screen=1280*800) 可以证明我们方法中定义的 MyDevice 的确是从请求中获取到了正确的结果 大家可以发挥一下想象,ArgumentResolver 不但可以做类似参数自动装配 ( 从各个地方获取必要的数据 ) 的工作, 而且还可以做验证工作 大家可以仔细看一下 resolveargument 方法的参数, 是不是相当于要啥有啥了 ( 当前参数定义 当前请求 Model 容器以及绑定工厂 ) 自定义 ResponseBody 后处理 在刚才的实现中, 我们直接返回了 List<MyItem> 数据, 对于 API 来说, 我们一般会定义一套 API 的结果对象, 包含 API 的数据 成功与否结果 错误消息 签名等等内容, 这样客户端可以做签名验证, 然后是根据成功与否来决定是要解析数据还是直接提示错误, 比如 : import lombok.allargsconstructor; public class APIResponse<T> { T data;

9 boolean success; String message; String sign; 如果我们在每个 API 方法中去返回这样的 APIResponse 当然可以实现这个效果, 还有一种通用的实现方式是使用 ResponseBodyAdvice: import org.springframework.core.methodparameter; import org.springframework.http.mediatype; import org.springframework.http.converter.httpmessageconverter; import org.springframework.http.server.serverhttprequest; import org.springframework.http.server.serverhttpresponse; import org.springframework.web.bind.annotation.controlleradvice; import public class APIResponseBodyAdvice implements ResponseBodyAdvice<Object> { public boolean supports(methodparameter returntype, Class<? extends HttpMessageConverter<?>> convertertype) { return!returntype.getparametertype().equals(apiresponse.class); public Object beforebodywrite(object body, MethodParameter returntype, MediaType selectedcontenttype, Class<? extends HttpMessageConverter<?>> selectedconvertertype, ServerHttpRequest request, ServerHttpResponse response) { String sign = ""; Sign signannotation = returntype.getmethod().getannotation(sign.class); if (signannotation!= null) sign = "abcd"; return new APIResponse(body, true, "", sign); 注解来启用这个 Advice 在实现上也是两部分, 第一部分告诉框架我们这个 Advice 支持的是非 APIResponse 类型 ( 如果返回的对象已经是 APIResponse 了, 我们当然就不需要再包装一次了 ) 第二部分是实现, 这里的实现很简单, 我们先检查一下方法上是否有 Sign 这个注解, 如果有的话进行签名 ( 这里的逻辑是写死的签名 ), 然后把得到的 body 塞入 APIResponse 后返回 这里补上 Sign 注解的实现 :

10 import java.lang.annotation.elementtype; import java.lang.annotation.retention; import java.lang.annotation.retentionpolicy; Sign { 这是一个空注解, 没啥可以说的, 下面我们来测试一下这个 = "item/{id", method = RequestMethod.GET) public MyItem getitem(@pathvariable("id") String id) { Integer i = null; try { i = Integer.parseInt(id); catch (NumberFormatException ex) { if (i == null i < 1) throw new IllegalArgumentException(" 不合法的商品 ID"); return new MyItem("item" + id, 10); 访问 后得到如下图的结果 : 是不是很方便呢? 这个 API 包装的过程可以由框架进行, 无需每次手动来做

11 自定义异常处理 如果我们访问 会看到错误白页, 针对错误处理, 我们希望 : 1 可以使用统一的 APIResponse 方式进行错误返回 2 可以记录错误信息以便查看实现这个功能非常简单, 实现 : import lombok.extern.slf4j.slf4j; import org.springframework.web.bind.annotation.controlleradvice; import org.springframework.web.bind.annotation.exceptionhandler; import org.springframework.web.bind.annotation.responsebody; import org.springframework.web.bind.annotation.restcontroller; import org.springframework.web.method.handlermethod; import = public class public APIResponse handle(httpservletrequest req, HandlerMethod method, Exception ex) { log.error(string.format(" 访问 %s -> %s 出错了!", req.getrequesturi(), method.tostring()), ex); return new APIResponse(null, false, ex.getmessage(), ""); 注意几点 : 1 的 annotations 来关联我们需要拦截的 Controller 类型 2 handle 方法支持相当多的参数, 可谓是要啥有啥, 这里贴下官方文档说明的截图 ( 在这里我们使用了 ServletRequest 来获取请求地址, 使用了 HandlerMethod 来获取当前执行的方法 ):

12 访问地址 可以看到如下输出 : ( 注意, 处理签名的 ResponseBodyAdvice 并不会针对这个返回进行处理, 因为之前实现 的时候我们就判断了返回内容不是 APIResponse 才去处理, 在自己正式的实现中你可以实 现的更合理, 让签名的处理逻辑同时适用出现异常的情况 ) 日志中也出现了错误信息 : :48: ERROR [nio-8080-exec-6] m.j.s.myrestexceptionhandler : 访问 /api/item/sd -> public me.josephzhu.spring101webmvc.myitem me.josephzhu.spring101webmvc.myrestcontroller.getitem(java.lang.string) 出错了! java.lang.illegalargumentexception: 不合法的商品 ID at me.josephzhu.spring101webmvc.myrestcontroller.getitem(myrestcontroller.java:34) ~[classes/:na]

13 at sun.reflect.nativemethodaccessorimpl.invoke0(native Method) ~[na:1.8.0_161] at sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62) ~[na:1.8.0_161] at sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) ~[na:1.8.0_161] at java.lang.reflect.method.invoke(method.java:498) ~[na:1.8.0_161] at org.springframework.web.method.support.invocablehandlermethod.doinvoke(invocablehandlermethod.java:209) ~[spring-web release.jar:5.0.9.release] 自动处理参数类型转换 比如有这么一个需求, 我们希望可以接受自定义的枚举作为参数, 而且枚举的名字不一定 需要和请求的参数完全大小写匹配, 这个时候我们需要实现自己的转换器 : import org.springframework.core.convert.converter.converter; import org.springframework.core.convert.converter.converterfactory; import java.util.arrays; public class MyConverterFactory implements ConverterFactory<String, Enum> { public <T extends Enum> Converter<String, T> getconverter(class<t> targettype) { return new String2EnumConverter(targetType); class String2EnumConverter<T extends Enum<T>> implements Converter<String, T> { private Class<T> enumtype; private String2EnumConverter(Class<T> enumtype) { this.enumtype = enumtype; public T convert(string source) { return Arrays.stream(enumType.getEnumConstants()).filter(e -> e.name().equalsignorecase(source)).findany().orelse(null);

14 这里实现了一个从字符串到自定义枚举的转换, 在搜索枚举名字的时候我们忽略了大小写 接下去我们通过 WebConfig 来注册这个转换器工厂 : public void addformatters(formatterregistry registry) { registry.addconverterfactory(new MyConverterFactory()); 来写一段代码测试一下 public List<MyItem> search(@requestparam("type") ItemTypeEnum itemtypeenum) { return IntStream.range(1, 5).mapToObj(i -> new MyItem(itemTypeEnum.name() + i, i * 100)).collect(Collectors.toList()); 这是一个 Get 请求的 API, 接受一个 type 参数, 参数是一个自定义枚举 : public enum ItemTypeEnum { BOOK, TOY, TOOL 很明显枚举的名字都是大写的, 我们来访问一下地址 测试一下程序是否可以正确匹配 :

15 TOy 的搜索参数匹配到了 TOY 枚举, 结果符合我们的预期 自定义拦截器 最后, 我们来看看 Spring MVC 最通用的扩展点, 也就是拦截器

16 这个图清晰展现了拦截器几个重要方法事件节点 在这个例子中, 我们利用 prehandle 和 posthandle 两个方法实现可以统计请求执行耗时的拦截器 : import lombok.extern.slf4j.slf4j; import org.springframework.web.servlet.modelandview; import org.springframework.web.servlet.handler.handlerinterceptoradapter; import javax.servlet.http.httpservletrequest; import public class ExecutionTimeHandlerInterceptor extends HandlerInterceptorAdapter { private static final String START_TIME_ATTR_NAME = "starttime"; private static final String EXECUTION_TIME_ATTR_NAME = "executiontime"; public boolean prehandle(httpservletrequest request, HttpServletResponse response, Object handler) throws Exception { long starttime = System.currentTimeMillis(); request.setattribute(start_time_attr_name, starttime); return true; public void aftercompletion(httpservletrequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

17 public void posthandle(httpservletrequest request, HttpServletResponse response, Object handler, ModelAndView modelandview) throws Exception { long starttime = (Long) request.getattribute(start_time_attr_name); long endtime = System.currentTimeMillis(); long executiontime = endtime - starttime; String time = "[" + handler + "] executetime : " + executiontime + "ms"; if (modelandview!= null) { modelandview.addobject(execution_time_attr_name, time); log.debug(time); 在实现的时候, 我们不仅仅把执行时间输出到了日志, 而且还通过修改 ModelAndView 对象把这个信息加入到了视图模型内, 这样页面也可以展现这个时间 要启用拦截器, 我们还需要配置 WebConfig: public void addinterceptors(interceptorregistry registry) { registry.addinterceptor(new ExecutionTimeHandlerInterceptor()); 接下去我们运行刚才那个例子, 可以看到如下的日志输出 : :58: DEBUG [nio-8080-exec-9] m.j.s.executiontimehandlerinterceptor : [public java.util.list<me.josephzhu.spring101webmvc.myitem> me.josephzhu.spring101webmvc.myrestcontroller.search(me.josephzhu.spring101webmvc.itemtypeenum)] executetime : 22ms 页面上也可以引用到我们添加进去的对象 : <!DOCTYPE html SYSTEM " <html lang="en"> <head> <meta charset="utf-8"> <title>hello World</title> </head> <body> Hello World <div th:text="${executiontime"></div>

18 </body> </html> 拦截器是非常通用的一个扩展, 可以全局实现权限控制 缓存 动态修改结果等等功能 总结和讨论 Spring MVC 本文我们通过一个一个例子展现了 Spring MVC 的一些重要扩展点 : 1 使用拦截器做执行时间统计 2 自定义 ResponseBodyAdvice 来处理 API 的包装 3 自定义 ExceptionHandler 来统计错误处理 4 自定义 ConverterFactory 来解析转换枚举 5 自定义 ArgumentResolver 来组装设备信息参数 6 快速实现静态资源 路径匹配以及 ViewController 的配置其实 Spring MVC 还有很多扩展点, 比如模型参数绑定和校验 允许我们实现动态的 RequestMapping 甚至是 DispatcherServlet 进行扩展, 你可以继续自行研究 最后, 我想说说我对 Spring MVC 的看法, 总体上我觉得 Spring MVC 实现很灵活, 扩展点很多, 几乎每一个组件都是松耦合, 允许我们自己定义和替换 但是我觉得它的实现有点过于松散 ASP.NET MVC 的实现我就挺喜欢, 相比 Spring MVC,ASP.NET MVC 的两个 ActionFilter 和 ActionResult 的实现是亮点 : 1 ActionFilter 机制 Controller 里面的每一个方法称作 Action, 我们可以在每一个 Action 上加上各种注解来启用 ActionFilter,ActionFilter 可以针对 Action 执行前 后 出异常等等情况做回调处理 ASP.NET MVC 的 ActionFilter 的 Filer 级别是方法, 粒度上比拦截器精细很多, 而且配置更直观 Spring MVC 虽然除了拦截器还有 ArgumentResolver 以及 ReturnValueHandler 可以分别进行参数处理和返回值处理, 但是这两套扩展体系也是基于框架层面的, 如果要和方法打通还需要自定义注解来实现 总觉得 Spring MVC 的这三套扩展点相互配合功能上虽然完整, 但是有种支离破碎的感觉, 如果我们真的要实现很多功能的, 话可能会在这里有相当多的 if-else, 没有 ActionFilter 来得直观 2 方法的返回值可以是 ModelAndView, 的自定义类型, 这两种输出类型的分法可以满足我们的需求, 但是总感觉很别扭 在 ASP.NET MVC 中的方法返回抽象为了 ActionResult, 可以是 ViewResult JsonResult FileContentResult RedirectResult FilePathResult JavaScriptResult 等等, 正如其名, 看到返回值我们就可以看到方法实际的输出表现, 非常直观容易理解 ASP.NET MVC 并没有大量依赖 IOC 和 AOP 来实现, 而是由框架的整体结构实现了插件机制, 本质上这和 Spring 的风格就不同, 加上 Spring MVC 从简化 Servlet 开始演化, 两者理念上的区别也决定了设计上的区别, 因此 Spring MVC 这样设计我也能理解

本章学习目标 小风 Java 实战系列教程 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc

本章学习目标 小风 Java 实战系列教程 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc 本章学习目标 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 配置视图解析器 @RequestMapping 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc 和 Struts2 都属于表现层的框架, 它是 Spring 框架的一部分, 我们可 以从 Spring 的整体结构中看得出来 :

More information

新・解きながら学ぶJava

新・解きながら学ぶJava 481! 41, 74!= 40, 270 " 4 % 23, 25 %% 121 %c 425 %d 121 %o 121 %x 121 & 199 && 48 ' 81, 425 ( ) 14, 17 ( ) 128 ( ) 183 * 23 */ 3, 390 ++ 79 ++ 80 += 93 + 22 + 23 + 279 + 14 + 124 + 7, 148, 16 -- 79 --

More information

EJB-Programming-4-cn.doc

EJB-Programming-4-cn.doc EJB (4) : (Entity Bean Value Object ) JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Session Bean J2EE Session Façade Design Pattern Session Bean Session

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

untitled

untitled 4.1AOP AOP Aspect-oriented programming AOP 來說 AOP 令 理 Cross-cutting concerns Aspect Weave 理 Spring AOP 來 AOP 念 4.1.1 理 AOP AOP 見 例 來 例 錄 Logging 錄 便 來 例 行 留 錄 import java.util.logging.*; public class HelloSpeaker

More information

Microsoft Word - 朱晔和你聊Spring系列S1E7:简单好用的Spring Boot Actuator.docx

Microsoft Word - 朱晔和你聊Spring系列S1E7:简单好用的Spring Boot Actuator.docx 朱晔和你聊 Spring 系列 S1E7: 简单好用的 Spring Boot Actuator 本文会来看一下 Spring Boot Actuator 提供给我们的监控端点 Endpoint 健康检查 Health 和打点指标 Metrics 等所谓的 Production-ready( 生产环境必要的一些 ) 功能 监控端点 我们先来新建一个模块 :

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 310-065Big5 Title : Sun Certified Programmer for the Java 2 Platform, SE 6.0 Version : Demo 1 / 14 1. 35. String #name = "Jane Doe"; 36. int

More information

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit Tomcat Web JUnit Cactus JUnit Java Cactus JUnit 26.1 JUnit Java JUnit JUnit Java JSP Servlet JUnit Java Erich Gamma Kent Beck xunit JUnit boolean JUnit Java JUnit Java JUnit Java 26.1.1 JUnit JUnit How

More information

EJB-Programming-3.PDF

EJB-Programming-3.PDF :, JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Value Object Design Pattern J2EE Design Patterns Value Object Value Object Factory J2EE EJB Test Client

More information

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 -> 目录 1 大概思路... 1 2 创建 WebAPI... 1 3 创建 CrossMainController 并编写... 1 4 Nuget 安装 microsoft.aspnet.webapi.cors... 4 5 跨域设置路由... 4 6 编写 Jquery EasyUI 界面... 5 7 运行效果... 7 8 总结... 7 1 1 大概思路 创建 WebAPI 创建 CrossMainController

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

Microsoft Word - 朱晔和你聊Spring系列S1E6:容易犯错的Spring AOP.docx

Microsoft Word - 朱晔和你聊Spring系列S1E6:容易犯错的Spring AOP.docx 朱晔和你聊 Spring 系列 S1E6: 容易犯错的 Spring AOP 标题有点标题党了, 这里说的容易犯错不是 Spring AOP 的错, 是指使用的时候容易犯错 本文会以一些例子来展开讨论 AOP 的使用以及使用过程中容易出错的点 几句话说清楚 AOP 有关必要术语 : 1. 切面 :Aspect, 有的地方也叫做方面 切面 = 切点 + 增强, 表示我们在什么点切入蛋糕, 切入蛋糕后我们以什么方式来增强这个点

More information

将 MD5 的工具类拷贝到项目中 二 微服务模块的搭建 我们将权限的查询放到一个单独的模块中, 这个模块提供接口供给消费者远程调用 (RPC), 这次范例是微服开发的雏形, 在以后你使用 springcloud 的时候会使用到今天的概念 1 使用 maven 创建新的模块 (microboot-sh

将 MD5 的工具类拷贝到项目中 二 微服务模块的搭建 我们将权限的查询放到一个单独的模块中, 这个模块提供接口供给消费者远程调用 (RPC), 这次范例是微服开发的雏形, 在以后你使用 springcloud 的时候会使用到今天的概念 1 使用 maven 创建新的模块 (microboot-sh Shiro 的环境搭建 一 公共模块的搭建 在实际的开发中, 一个项目可能会分多个模块进行实际的开发, 但是这些模块需要使用一些公 共的操作, 那么这些公共的操作不应该在每个模块中重新定义, 而是将这些公共的操作专门定 义在一个公共的模块之后哦在模块中的 pom 文件里面引入这个公共的模块, 比如说 vo 类就是 一个公共的模块, 所以定义到公共类中 1. 定义公共模块 (microboot-shiro-api)maven

More information

获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复

获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复 获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复 获取将导致上次获取的 access_token 失效 接入方可以使用 AppID 和 AppSecret

More information

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入 100 年 特 種 考 試 地 方 政 府 公 務 人 員 考 試 試 題 等 別 : 三 等 考 試 類 科 : 資 訊 處 理 科 目 : 系 統 分 析 與 設 計 一 請 參 考 下 列 旅 館 管 理 系 統 的 使 用 案 例 圖 (Use Case Diagram) 撰 寫 預 約 房 間 的 使 用 案 例 規 格 書 (Use Case Specification), 繪 出 入

More information

untitled

untitled JavaEE+Android - 6 1.5-2 JavaEE web MIS OA ERP BOSS Android Android Google Map office HTML CSS,java Android + SQL Sever JavaWeb JavaScript/AJAX jquery Java Oracle SSH SSH EJB+JBOSS Android + 1. 2. IDE

More information

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, http://debut.cis.nctu.edu.tw/~chi Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, : POSITIVE_INFINITY NEGATIVE_INFINITY

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

2. AOP 底层技术实现 小风 Java 实战系列教程 关键词 : 代理模式 代理模型分为两种 : 1) 接口代理 (JDK 动态代理 ) 2) 子类代理 (Cglib 子类代理 ) 需求 :CustomerService 业务类, 有 save,update 方法, 希望在 save,updat

2. AOP 底层技术实现 小风 Java 实战系列教程 关键词 : 代理模式 代理模型分为两种 : 1) 接口代理 (JDK 动态代理 ) 2) 子类代理 (Cglib 子类代理 ) 需求 :CustomerService 业务类, 有 save,update 方法, 希望在 save,updat 本章学习目标 小风 Java 实战系列教程 AOP 思想概述 AOP 底层技术实现 AOP 术语介绍 SpringAOP 的 XML 方式 HelloWorld SpringAOP 的 XML 方式配置细节 SpringAOP 的注解方式 SpringAOP 的零配置方式 1. AOP 思想概述 1.1. AOP 思想简介 1.2. AOP 的作用 2. AOP 底层技术实现 小风 Java 实战系列教程

More information

使用Cassandra和Spark 2.0实现Rest API服务

使用Cassandra和Spark 2.0实现Rest API服务 使用 Cassandra 和 Spark 2.0 实现 Rest API 服务 在这篇文章中, 我将介绍如何在 Spark 中使用 Akkahttp 并结合 Cassandra 实现 REST 服务, 在这个系统中 Cassandra 用于数据的存储 我们已经见识到 Spark 的威力, 如果和 Cassandra 正确地结合可以实现更强大的系统 我们先创建一个 build.sbt 文件, 内容如下

More information

<ADB6ADB1C25EA8FAA6DB2D4D56432E706466>

<ADB6ADB1C25EA8FAA6DB2D4D56432E706466> packages 3-31 PART 3-31 03-03 ASP.NET ASP.N MVC ASP.NET ASP.N MVC 4 ASP.NET ASP.NE MVC Entity Entity Framework Code First 2 TIPS Visual Studio 20NuGetEntity NuGetEntity Framework5.0 CHAPTER 03 59 3-3-1

More information

chp6.ppt

chp6.ppt Java 软 件 设 计 基 础 6. 异 常 处 理 编 程 时 会 遇 到 如 下 三 种 错 误 : 语 法 错 误 (syntax error) 没 有 遵 循 语 言 的 规 则, 出 现 语 法 格 式 上 的 错 误, 可 被 编 译 器 发 现 并 易 于 纠 正 ; 逻 辑 错 误 (logic error) 即 我 们 常 说 的 bug, 意 指 编 写 的 代 码 在 执 行

More information

《大话设计模式》第一章

《大话设计模式》第一章 第 1 章 代 码 无 错 就 是 优? 简 单 工 厂 模 式 1.1 面 试 受 挫 小 菜 今 年 计 算 机 专 业 大 四 了, 学 了 不 少 软 件 开 发 方 面 的 东 西, 也 学 着 编 了 些 小 程 序, 踌 躇 满 志, 一 心 要 找 一 个 好 单 位 当 投 递 了 无 数 份 简 历 后, 终 于 收 到 了 一 个 单 位 的 面 试 通 知, 小 菜 欣 喜

More information

Mac Java import com.apple.mrj.*;... public class MyFirstApp extends JFrame implements ActionListener, MRJAboutHandler, MRJQuitHandler {... public MyFirstApp() {... MRJApplicationUtils.registerAboutHandler(this);

More information

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6 www.brainysoft.net 1.JasperReport ireport...4 1.1 JasperReport...4 1.2 ireport...4 2....4 2.1 JDK...4 2.1.1 JDK...4 2.1.2 JDK...5 2.1.3 JDK...5 2.2 ant...6 2.2.1 ant...6 2.2.2 ant...6 2.3 JasperReport...7

More information

09 (File Processes) (mkdir) 9-3 (createnewfile) 9-4 (write) 9-5 (read) 9-6 (deletefile) 9-7 (deletedir) (Exercises)

09 (File Processes) (mkdir) 9-3 (createnewfile) 9-4 (write) 9-5 (read) 9-6 (deletefile) 9-7 (deletedir) (Exercises) 09 (File Processes) 9-1 9-2 (mkdir) 9-3 (createnewfile) 9-4 (write) 9-5 (read) 9-6 (deletefile) 9-7 (deletedir) (Exercises) Java Servlet 9-1 Servlet (File Processes) Client Servlet Servlet Java Java (Stream)

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 70-536Chinese(C++) Title : TS:MS.NET Framework 2.0-Application Develop Foundation Version : DEMO 1 / 10 1. Exception A. Data B. Message C.

More information

基于CDIO一体化理念的课程教学大纲设计

基于CDIO一体化理念的课程教学大纲设计 Java 语 言 程 序 设 计 课 程 教 学 大 纲 Java 语 言 程 序 设 计 课 程 教 学 大 纲 一 课 程 基 本 信 息 1. 课 程 代 码 :52001CC022 2. 课 程 名 称 :Java 语 言 程 序 设 计 3. 课 程 英 文 名 称 :Java Programming 4. 课 程 类 别 : 理 论 课 ( 含 实 验 上 机 或 实 践 ) 5. 授

More information

Microsoft Word - Hibernate与Struts2和Spring组合指导.doc

Microsoft Word - Hibernate与Struts2和Spring组合指导.doc 1.1 组合 Hibernate 与 Spring 1. 在 Eclipse 中, 新建一个 Web project 2. 给该项目增加 Hibernate 开发能力, 增加 Hibernate 相关类库到当前项目的 Build Path, 同时也提供了 hibernate.cfg.xml 这个配置文件 3. 给该项目增加 Spring 开发能力, 增加 spring 相关类库到当前项目的 Build

More information

IoC容器和Dependency Injection模式.doc

IoC容器和Dependency Injection模式.doc IoC Dependency Injection /Martin Fowler / Java Inversion of Control IoC Dependency Injection Service Locator Java J2EE open source J2EE J2EE web PicoContainer Spring Java Java OO.NET service component

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes Java application Java main applet Web applet Runnable Thread CPU Thread 1 Thread 2 Thread 3 CUP Thread 1 Thread 2 Thread 3 ,,. (new) Thread (runnable) start( ) CPU (running) run ( ) blocked CPU sleep(

More information

ASP.NET MVC Visual Studio MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\M

ASP.NET MVC Visual Studio MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\M ASP.NET MVC Visual Studio 2017 1 1-4 MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\MvcExamples firstmvc MVC 1-7 ASP.NET MVC 1-9 ASP.NET

More information

在Spring中使用Kafka:Producer篇

在Spring中使用Kafka:Producer篇 在某些情况下, 我们可能会在 Spring 中将一些 WEB 上的信息发送到 Kafka 中, 这时候我们就需要在 Spring 中编写 Producer 相关的代码了 ; 不过高兴的是,Spring 本身提供了操作 Kafka 的相关类库, 我们可以直接通过 xml 文件配置然后直接在后端的代码中使用 Kafka, 非常地方便 本文将介绍如果在 Spring 中将消息发送到 Kafka 在这之前,

More information

拦截器(Interceptor)的学习

拦截器(Interceptor)的学习 二 拦截器 (Interceptor) 的学习 拦截器可以监听程序的一个或所有方法 拦截器对方法调用流提供了细粒度控制 可以在无状态会话 bean 有状态会话 bean 和消息驱动 bean 上使用它们 拦截器可以是同一 bean 类中的方法或是一个外部类 下面介绍如何在 Session Bean 类中使用外部拦截器类 @Interceptors 注释指定一个或多个在外部类中定义的拦截器 下面拦截器

More information

Microsoft Word - 朱晔和你聊Spring系列S1E5:Spring WebFlux小探.docx

Microsoft Word - 朱晔和你聊Spring系列S1E5:Spring WebFlux小探.docx 朱晔和你聊 Spring 系列 S1E5:Spring WebFlux 小探 本文会来做一些应用对比 Spring MVC 和 Spring WebFlux, 观察线程模型的区别, 然后做 一下简单的压力测试 创建一个传统的 Spring MVC 应用 先来创建一个新的 webflux-mvc 的模块 :

More information

Untitled

Untitled Spring 4.0.0 spring-framework-reference QQ 413615763 Weibo le Email not-three@foxmail.com 2013.12.16 2.2 2013.12.17 2.3 : 2013.12.18 2.3 : 2013.12.18 2.3 :- Commons Logging Spring Spring Spring IoC StrutsHibernate

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO CHAPTER 使用 Hadoop 打造自己的雲 8 8.3 測試 Hadoop 雲端系統 4 Nodes Hadoop Map Reduce Hadoop WordCount 4 Nodes Hadoop Map/Reduce $HADOOP_HOME /home/ hadoop/hadoop-0.20.2 wordcount echo $ mkdir wordcount $ cd wordcount

More information

PrintWriter s = new PrintWriter(writer); ex.printstacktrace(s); mv.addobject("exception", writer.tostring()); mv.setviewname("error"); return

PrintWriter s = new PrintWriter(writer); ex.printstacktrace(s); mv.addobject(exception, writer.tostring()); mv.setviewname(error); return 本章学习目标 小风 Java 实战系列教程 SpringMVC 异常处理 SpringMVC 文件上传 SpringMVC 处理 JSON 格式数据 SpringMVC 拦截器 SpringMVC 对 restful 风格的支持 1. SpringMVC 异常处理 1.1. @ExceptionHandler 注解处理异常 @ExceptionHandler 该注解使用在异常处理方法上面 1.1.1.

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 310-055Big5 Title : Sun Certified Programmer for the Java 2 Platform.SE 5.0 Version : Demo 1 / 22 1. 11. public static void parse(string str)

More information

untitled

untitled 1 行 行 行 行.NET 行 行 類 來 行 行 Thread 類 行 System.Threading 來 類 Thread 類 (1) public Thread(ThreadStart start ); Name 行 IsAlive 行 行狀 Start 行 行 Suspend 行 Resume 行 行 Thread 類 (2) Sleep 行 CurrentThread 行 ThreadStart

More information

國家圖書館典藏電子全文

國家圖書館典藏電子全文 EAI EAI Middleware EAI 3.1 EAI EAI Client/Server Internet,www,Jav a 3.1 EAI Message Brokers -Data Transformation Business Rule XML XML 37 3.1 XML XML XML EAI XML 1. XML XML Java Script VB Script Active

More information

CHAPTER 1

CHAPTER 1 CHAPTER 1 1-1 System Development Life Cycle; SDLC SDLC Waterfall Model Shelly 1995 1. Preliminary Investigation 2. System Analysis 3. System Design 4. System Development 5. System Implementation and Evaluation

More information

jsp

jsp JSP Allen Long Email: allen@huihoo.com http://www.huihoo.com 2004-04 Huihoo - Enterprise Open Source http://www.huihoo.com 1 JSP JSP JSP JSP MVC Huihoo - Enterprise Open Source http://www.huihoo.com 2

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

untitled

untitled 1 Outline 料 類 說 Tang, Shih-Hsuan 2006/07/26 ~ 2006/09/02 六 PM 7:00 ~ 9:30 聯 ives.net@gmail.com www.csie.ntu.edu.tw/~r93057/aspnet134 度 C# 力 度 C# Web SQL 料 DataGrid DataList 參 ASP.NET 1.0 C# 例 ASP.NET 立

More information

JavaIO.PDF

JavaIO.PDF O u t p u t S t ream j a v a. i o. O u t p u t S t r e a m w r i t e () f l u s h () c l o s e () public abstract void write(int b) throws IOException public void write(byte[] data) throws IOException

More information

Microsoft Word - PHP7Ch01.docx

Microsoft Word - PHP7Ch01.docx PHP 01 1-6 PHP PHP HTML HTML PHP CSSJavaScript PHP PHP 1-6-1 PHP HTML PHP HTML 1. Notepad++ \ch01\hello.php 01: 02: 03: 04: 05: PHP 06:

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

Microsoft PowerPoint - 05-Status-Codes-Chinese.ppt

Microsoft PowerPoint - 05-Status-Codes-Chinese.ppt 2004 Marty Hall 服务器响应的生成 : HTTP 状态代码 JSP, Servlet, & Struts Training Courses: http://courses.coreservlets.com Available in US, China, Taiwan, HK, and Worldwide 2 JSP and Servlet Books from Sun Press: http://www.coreservlets.com

More information

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6: Chapter 15. Suppressed Exception CH14 Finally Block Java SE 7 try-with-resources JVM cleanup try-with-resources JVM cleanup cleanup Java SE 7 Throwable getsuppressed Throwable[] getsuppressed() Suppressed

More information

mvc

mvc Build an application Tutor : Michael Pan Application Source codes - - Frameworks Xib files - - Resources - ( ) info.plist - UIKit Framework UIApplication Event status bar, icon... delegation [UIApplication

More information

untitled

untitled ArcGIS Server Web services Web services Application Web services Web Catalog ArcGIS Server Web services 6-2 Web services? Internet (SOAP) :, : Credit card authentication, shopping carts GIS:, locator services,

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc Java C++ Pascal C# C# if if if for while do while foreach while do while C# 3.1.1 ; 3-1 ischeck Test() While ischeck while static bool ischeck = true; public static void Test() while (ischeck) ; ischeck

More information

输入 project name 选择完成

输入 project name 选择完成 JAVA 程序访问 HighGo DB 的环境准备 山东瀚高科技有限公司版权所有仅允许不作任何修改的转载和转发 Hibernate 的配置 MyEclipse 中创建新项目 : 选择菜单栏 file---new---project 选择 web project 进行下一步 输入 project name 选择完成 4. 单击 " 添加 JAR/ 文件夹 ", 会如下图出现 JDBC 下载 Hibernate

More information

Microsoft Word - ch04三校.doc

Microsoft Word - ch04三校.doc 4-1 4-1-1 (Object) (State) (Behavior) ( ) ( ) ( method) ( properties) ( functions) 4-2 4-1-2 (Message) ( ) ( ) ( ) A B A ( ) ( ) ( YourCar) ( changegear) ( lowergear) 4-1-3 (Class) (Blueprint) 4-3 changegear

More information

基于ECO的UML模型驱动的数据库应用开发1.doc

基于ECO的UML模型驱动的数据库应用开发1.doc ECO UML () Object RDBMS Mapping.Net Framework Java C# RAD DataSetOleDbConnection DataGrod RAD Client/Server RAD RAD DataReader["Spell"].ToString() AObj.XXX bug sql UML OR Mapping RAD Lazy load round trip

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes Fortran Algol Pascal Modula-2 BCPL C Simula SmallTalk C++ Ada Java C# C Fortran 5.1 message A B 5.2 1 class Vehicle subclass Car object mycar public class Vehicle extends Object{ public int WheelNum

More information

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile.. WebSphere Studio Application Developer IBM Portal Toolkit... 1/21 WebSphere Studio Application Developer IBM Portal Toolkit Portlet Doug Phillips (dougep@us.ibm.com),, IBM Developer Technical Support Center

More information

untitled

untitled PowerBuilder Tips 利 PB11 Web Service 年度 2 PB Tips PB9 EAServer 5 web service PB9 EAServer 5 了 便 web service 來說 PB9 web service 力 9 PB11 release PB11 web service 力更 令.NET web service PB NVO 論 不 PB 來說 說

More information

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF Chapter 2 WF 2.1 WF 2.2 2. XAML 2. 2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF WF WF WF WF EDI API WF Visual Studio Designer 1 2.1 WF Windows Workflow Foundation 2 WF 1 WF Domain-Specific

More information

D C 93 2

D C 93 2 D9223468 3C 93 2 Java Java -- Java UML Java API UML MVC Eclipse API JavadocUML Omendo PSPPersonal Software Programming [6] 56 8 2587 56% Java 1 epaper(2005 ) Java C C (function) C (reusability) eat(chess1,

More information

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new ListView 自訂排版 主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new int[]{r.drawable.dog1, R.drawable.dog2,

More information

没 有 多 余 的 Contruol 或 Action 了 原 来 Domain 层 被 服 务 层 Service layer 遮 挡, 在 右 边 图 中, 则 Domain 层 直 接 暴 露 给 前 台 了, 没 有 被 遮 挡, 裸 露 了 这 样 一 步 到 位 实 现 领 域 模 型

没 有 多 余 的 Contruol 或 Action 了 原 来 Domain 层 被 服 务 层 Service layer 遮 挡, 在 右 边 图 中, 则 Domain 层 直 接 暴 露 给 前 台 了, 没 有 被 遮 挡, 裸 露 了 这 样 一 步 到 位 实 现 领 域 模 型 文 章 编 号 :1007-757X(2012)1-0036-04 领 域 驱 动 模 型 的 WEB 软 件 系 统 设 计 研 究 摘 要 : J2EE 3 JDK1.7 Tomcat WEB 关 键 词 : 中 图 分 类 号 :TP311 文 献 标 志 码 :A 0 引 言 Web 软 件 系 统 的 分 层 结 构 典 型 的 J2EE 软 件 系 统 开 发 方 法 分 为 三 层 结

More information

2 Java 语 言 程 序 设 计 教 程 1.2.1 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难

2 Java 语 言 程 序 设 计 教 程 1.2.1 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难 第 1 章 Java 概 述 Java 的 诞 生 Java 的 特 点 Java 开 发 环 境 安 装 与 配 置 创 建 并 运 行 一 个 简 单 的 Java 程 序 Java 语 言 是 当 今 计 算 机 软 件 行 业 中 最 热 门 的 网 络 编 程 语 言, 以 Java 为 核 心 的 芯 片 技 术 编 译 技 术 数 据 库 连 接 技 术, 以 及 基 于 企 业 级

More information

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc References (Section 5.2) Hsuan-Tien Lin Deptartment of CSIE, NTU OOP Class, March 15-16, 2010 H.-T. Lin (NTU CSIE) References OOP 03/15-16/2010 0 / 22 Fun Time (1) What happens in memory? 1 i n t i ; 2

More information

第一章 章标题-F2 上空24,下空24

第一章 章标题-F2 上空24,下空24 Web 9 XML.NET Web Web Service Web Service Web Service Web Service Web Service ASP.NET Session Application SOAP Web Service 9.1 Web Web.NET Web Service Web SOAP Simple Object Access Protocol 9.1.1 Web Web

More information

Swing-02.pdf

Swing-02.pdf 2 J B u t t o n J T e x t F i e l d J L i s t B u t t o n T e x t F i e l d L i s t J F r a m e 21 2 2 Swing C a n v a s C o m p o n e n t J B u t t o n AWT // ToolbarFrame1.java // java.awt.button //

More information

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 Java V1.0.1 2007 4 10 1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 6.2.10 6.3..10 6.4 11 7.12 7.1

More information

epub83-1

epub83-1 C++Builder 1 C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r 1.1 1.1.1 1-1 1. 1-1 1 2. 1-1 2 A c c e s s P a r a d o x Visual FoxPro 3. / C / S 2 C + + B u i l d e r / C

More information

使用MapReduce读取XML文件

使用MapReduce读取XML文件 使用 MapReduce 读取 XML 文件 XML( 可扩展标记语言, 英语 :extensible Markup Language, 简称 : XML) 是一种标记语言, 也是行业标准数据交换交换格式, 它很适合在系统之间进行数据存储和交换 ( 话说 Hadoop H ive 等的配置文件就是 XML 格式的 ) 本文将介绍如何使用 MapReduce 来读取 XML 文件 但是 Had oop

More information

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌 语 言 程 序 设 计 郑 莉 胡 家 威 编 著 清 华 大 学 逸 夫 图 书 馆 北 京 内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌 握 语

More information

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj Message Transition 5-1 5-2 DataInputStream Class 5-3 DataOutputStream Class 5-4 PrintStream Class 5-5 (Message Transition) (Exercises) Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream

More information

關於本書 l 3 PhoneGap Appcelerator Titanium Sencha Touch (wrapper framework) Native App PhoneGap Build Native App Hybrid App Java Objective-C Android SDK

關於本書 l 3 PhoneGap Appcelerator Titanium Sencha Touch (wrapper framework) Native App PhoneGap Build Native App Hybrid App Java Objective-C Android SDK 2 l 跨裝置網頁設計 Android ios Windows 8 BlackBerry OS Android HTML 5 HTML 5 HTML 4.01 HTML 5 CSS 3 CSS 3 CSS 2.01 CSS 3 2D/3D PC JavaScript

More information

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 JAVA 程 序 设 计 ( 肆 ) 徐 东 / 数 学 系 使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 使 用 Java class 代 表 保 险 箱 public class SaveBox 类 名 类 类 体 实 现 封 装 性 使 用 class SaveBox 代 表 保

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 友乾营 报表的 SQL 植入风险 规避风险 : 让你的报表变的安全起来 SQL 植入的概念 恶意的 SQL 归根结底 : 执行了不该允许执行的 SQL 命令, 达到非法的目的 常见案例 骗过登录验证非法获取账号信息篡改 删除数据 为什么存在 SQL 植入 植入原理 如何攻击 特殊的输入参数 未处理特殊字符 -- # 数据库配置不合理 植入原理 : 案例 1, 特殊输入参数 union or 猜表名

More information

D getinitparameternames() 9 下 列 选 项 中, 属 于 Servlet API 中 提 供 的 request 对 象 的 包 装 类 的 是 ( ) A HttpServletRequestWrapper B HttpServletRequest C HttpServ

D getinitparameternames() 9 下 列 选 项 中, 属 于 Servlet API 中 提 供 的 request 对 象 的 包 装 类 的 是 ( ) A HttpServletRequestWrapper B HttpServletRequest C HttpServ 第 四 章 Filter( 过 滤 器 ) 样 题 A 卷 一 选 择 题 ( 每 小 题 2 分, 共 20 分 ) 1 下 面 选 项 中, 用 于 实 现 初 始 化 过 滤 器 的 方 法 是 ( ) A init(filterconfig filterconfig) B dofilter(servletrequest req,servletresponse resp,filterchain

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 The BitCoin Scripting Language 交易实例 交易结构 "result": { "txid": "921a dd24", "hash": "921a dd24", "version": 1, "size": 226, "locktime": 0, "vin": [ ], "vout": [ ], "blockhash": "0000000000000000002c510d

More information

RUN_PC連載_8_.doc

RUN_PC連載_8_.doc PowerBuilder 8 (8) Web DataWindow ( ) DataWindow Web DataWindow Web DataWindow Web DataWindow PowerDynamo Web DataWindow / Web DataWindow Web DataWindow Wizard Web DataWindow Web DataWindow DataWindow

More information

untitled

untitled 1 MSDN Library MSDN Library 量 例 參 列 [ 說 ] [] [ 索 ] [] 來 MSDN Library 了 類 類 利 F1 http://msdn.microsoft.com/library/ http://msdn.microsoft.com/library/cht/ Object object 參 類 都 object 參 object Boxing 參 boxing

More information

三种方法实现Hadoop(MapReduce)全局排序(1)

三种方法实现Hadoop(MapReduce)全局排序(1) 三种方法实现 Hadoop(MapReduce) 全局排序 () 三种方法实现 Hadoop(MapReduce) 全局排序 () 我们可能会有些需求要求 MapReduce 的输出全局有序, 这里说的有序是指 Key 全局有序 但是我们知道,MapReduce 默认只是保证同一个分区内的 Key 是有序的, 但是不保证全局有序 基于此, 本文提供三种方法来对 MapReduce 的输出进行全局排序

More information

untitled

untitled 1 Outline ArrayList 類 列類 串類 類 類 例 理 MSDN Library MSDN Library 量 例 參 列 [ 說 ] [] [ 索 ] [] 來 MSDN Library 了 類 類 利 F1 http://msdn.microsoft.com/library/ http://msdn.microsoft.com/library/cht/ Object object

More information

Microsoft PowerPoint - 09Future

Microsoft PowerPoint - 09Future Web 应用基础 Apache Struts http://jakarta.apache.org/struts Spring http://www.springframework.org/ HelloWorld public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World!");

More information

停止混流接口 请注意 : 该功能需要联系 ZEGO 技术支持开通 1 接口调用说明 http 请求方式 : POST/FORM, 需使用 https 正式环境地址 access_token=access_token (http

停止混流接口 请注意 : 该功能需要联系 ZEGO 技术支持开通 1 接口调用说明 http 请求方式 : POST/FORM, 需使用 https 正式环境地址   access_token=access_token (http 停止混流接口 请注意 : 该功能需要联系 ZEGO 技术支持开通 1 接口调用说明 http 请求方式 : POST/FORM, 需使用 https 正式环境地址 https://webapi.zego.im/cgi/stop-mix? access_token=access_token (https://webapi.zego.im/cgi/stop-mix? access_token=access_token)

More information

无类继承.key

无类继承.key 无类继承 JavaScript 面向对象的根基 周爱 民 / aimingoo aiming@gmail.com https://aimingoo.github.io https://github.com/aimingoo rand = new Person("Rand McKinnon",... https://docs.oracle.com/cd/e19957-01/816-6408-10/object.htm#1193255

More information

Java 1 Java String Date

Java 1 Java String Date JAVA SCJP Java 1 Java String Date 1Java 01 Java Java 1995 Java Java 21 Java Java 5 1-1 Java Java 1990 12 Patrick Naughton C++ C (Application Programming Interface API Library) Patrick Naughton NeXT Stealth

More information

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

res/layout 目录下的 main.xml 源码 : <?xml version=1.0 encoding=utf 8?> <TabHost android:layout_height=fill_parent xml 拓展训练 1- 界面布局 1. 界面布局的重要性做应用程序, 界面是最基本的 Andorid 的界面, 需要写在 res/layout 的 xml 里面, 一般情况下一个 xml 对应一个界面 Android 界面布局有点像写 html( 连注释代码的方式都一样 ), 要先给 Android 定框架, 然后再在框架里面放控件,Android 提供了几种框架,AbsoluteLayout,LinearLayout,

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 1Z0-854 Title : Java Standard Edition 5 Programmer Certified Professional Upgrade Exam Version : Demo 1 / 12 1.Given: 20. public class CreditCard

More information

TopTest_Adminstrator.doc

TopTest_Adminstrator.doc 壹 前 言... 3 貳 系 統 簡 介... 4 一 TKB multimedia Top-Test 系 統 架 構...4 1. 使 用 者 介 面 層 (Presentation tier)...5 2. 商 業 邏 輯 層 (business logic tier)...5 3. 資 料 服 務 層 (data services tier)...5 二 TKB Multimedia Top-Test

More information

chapter 2 HTML5 目錄iii HTML HTML HTML HTML HTML canvas

chapter 2 HTML5 目錄iii HTML HTML HTML HTML HTML canvas Contents 目錄 chapter 1 1-1... 1-2 1-2... 1-3 HTML5... 1-3... 1-5 1-3... 1-9 Web Storage... 1-9... 1-10 1-4 HTML5... 1-14... 1-14... 1-15 HTML5... 1-15... 1-15... 1-16 1-5... 1-18 Apps... 1-18 HTML5 Cache

More information

1. 2. Flex Adobe 3.

1. 2. Flex Adobe 3. 1. 2. Flex Adobe 3. Flex Adobe Flex Flex Web Flex Flex Flex Adobe Flash Player 9 /rich Internet applications/ria Flex 1. 2. 3. 4. 5. 6. SWF Flash Player Flex 1. Flex framework Adobe Flex 2 framework RIA

More information

untitled

untitled 1 Outline 類别 欄 (1) 類 類 狀 更 易 類 理 若 類 利 來 利 using 來 namespace 類 ; (2) namespace IBM class Notebook namespace Compaq class Notebook 類别 類 來 類 列 欄 (field) (property) (method) (event) 類 例 立 來 車 類 類 立 車 欄 料

More information

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工 Shenzhen WitSoft Information Technology Co., Ltd. 主 办 券 商 二 〇 一 六 年 二 月 声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本

More information

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 專題進度 老師 : 趙啟時老師 學生 : 陳建廷 2013/10/13 用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 程式碼 : package com.example.phone; import java.util.arraylist;

More information

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

Microsoft Word - 2012级第二专业学士学位培养计划.doc

Microsoft Word - 2012级第二专业学士学位培养计划.doc 上 海 理 工 大 学 第 二 专 业 学 士 学 位 培 养 计 划 (2012 级 ) 上 海 理 工 大 学 教 务 处 二 一 二 年 五 月 目 录 光 电 信 息 与 计 算 机 工 程 学 院 计 算 机 科 学 与 技 术...1 管 理 学 院 金 融 学...3 管 理 科 学 ( 金 融 分 析 )...5 工 商 管 理 ( 创 业 管 理 )...7 会 计 学...9 外

More information

untitled

untitled -JAVA 1. Java IDC 20 20% 5 2005 42.5 JAVA IDC JAVA 60% 70% JAVA 3 5 10 JAVA JAVA JAVA J2EE J2SE J2ME 70% JAVA JAVA 20 1 51 2. JAVA SUN JAVA J2EE J2EE 3. 1. CSTP CSTP 2 51 2. 3. CSTP IT CSTP IT IT CSTP

More information

9, : Java 19., [4 ]. 3 Apla2Java Apla PAR,Apla2Java Apla Java.,Apla,,, 1. 1 Apla Apla A[J ] Get elem (set A) A J A B Intersection(set A,set B) A B A B

9, : Java 19., [4 ]. 3 Apla2Java Apla PAR,Apla2Java Apla Java.,Apla,,, 1. 1 Apla Apla A[J ] Get elem (set A) A J A B Intersection(set A,set B) A B A B 25 9 2008 9 M ICROEL ECTRON ICS & COMPU TER Vol. 25 No. 9 September 2008 J ava 1,2, 1,2, 1,2 (1, 330022 ; 2, 330022) :,. Apla - Java,,.. : PAR ;Apla - Java ; ;CMP ; : TP311 : A : 1000-7180 (2008) 09-0018

More information