发表于: 2017-06-16 19:21:52
3 1052
【说明】今天试着在简书上面写了文章,看看效果怎么样,今天主要做了任务八
一:今日完成
⒈ task1—1 : spring rmi 远程访问
⑴ 技能点 1 :什么是 rmi
自己总结:之前做的项目 各个 模块都是 放在 一块的,比如 持久层,业务层,控制层,在真实 的项目中 不是 这样的,需要做到分布式部署,指的是 把 系统的 各个模块部署在不同的机器上,项目之间访问 需要能够调用,这就需要指定 访问地址和端口,以及约定好 通信协议。
远程访问有好多种,对于纯 java 应用而言,rmi 方式是比较方便的。
⑵ 技能点 2 : 如何在 spring 体系中 使用
配置 服务端和客户端。
谁是服务端?谁又是客户端呢?
对于 mvc 模式而言,明显的 service 层需要提供服务,因此可以 将 service 服务作为 服务端,通过 register Port 提供服务(暴露接口),servicePort 传输数据。
对于配置文件 serverRMI.xml 而言,采用 bean 的配置模式,交给 spring 管理。
⑶ 技能点 3 :需要注意的点
客户端访问时候指定的端口是 服务端提供的 注册端口。
⒉ task1—2 : 部署两个 service 和 两个 web
⑴ 技能点 1 :service
两个 service 提供的服务是一模一样的 就是 业务拆分而已,当时提供的访问端口也是不一样的。
如果是 maven 管理的话 需要 指定父模块和 子模块,service1 和 service2 都是子模块。
service 需要依赖 dao 层,所以需要 定义 dao 层的接口,和 映射文件。
⑵ 技能点 2 :web
对于 web 服务而言也是同样的,业务处理 特别是 controller 层的实现 都是一样的。
web 里面 是可以通过配置文件 指定两个 service,甚至可以 通过判断 sevice 的状态,切换访问,一个 service 不能正常提供服务的话就指定另一个。
反过来,两个 web 也是给用户 提供的 ,通过在 nginx 里面配置负载均衡,可以使用户 的访问 按照想要的分配 方式 分配给不同的 web。
多次运行之后:我用的是随机数访问,没有用 nginx 做 负载均衡
⑶ 技能点 3 : nginx 配置 负载均衡
因为编辑器的原因,图片被自动转成 链接的形式。
⒊ task1—3 :知识点总结
⑴ 技能点 1 :long 和 Long 的区别
long 是 基本数据类型;Long 是包装数据类型
long 没有自己的方法和属性;Long 有自己的方法和属性。
long 只能创建引用;Long 创建的是对象、
集合类不能放 long ,只能放 Long。
long 存放在栈 中,速度快可以共享;Long 存放在 堆中,速度没有 long 快。
⑵ 技能点 2 : eclipse 和 tomcat 的包养关系。
eclipse 默认是把发布的 web 应用放在自己的 目录里面
. metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps \
如果不做更改的话,就会发布到上面的路径里面。
并且 eclipse 生成 tomcat 的时候,会保持一份自己的 server 配置文件 ,这是默认的,会和 tomcat 目录下面的 配置文件保持同步,更改的话,需要更改 eclipse 里面的。
⑶ 技能点 3 :maven 多模块依赖
今天在运行 spring rmi 项目的时候,发现虽然自己最开始在 service 和 web 里面依赖的 core 也就是 model 层的代码 是有问题的,我以为依赖的是 install 到本地里面的 jar 包,结果发现不是,而是 eclipse compile ,也是 本地工程依赖,而不是本地仓库 / 远程仓库。
那该怎么办呢? 关闭 core 子项目,然后 maven 就会去本地仓库里面找。
(4) 技能点 4 :java ee 指的是什么
先说 java se :包括 java 语言规范,java 类库,java 工具类,java 虚拟机。
jdk 默认包含 java 虚拟机,而虚拟机还有其它的,比如 JRocket 等等。
java ee 呢,需要有分布式协调,跨网络通信。一个是 javaEE server ,比如 web container 和 EJB container。还有 java EE api
(5) 技能点 5:javaee.jar 都有什么
为什么说这个问题呢?因为今天在代码里面使用到了一段代码,
WebApplicationContext wac = WebApplicationContextUtils
.getRequiredWebApplicationContext(ServletActionContext
.getServletContext());
这个用到了 javaee.jar,然后自己就想知道为什么。
发现这是开发 javaee 应用的必备包,就像 servlet.jar 一样。
(6) 技能点 6 :EL 表达式的使用
基本的 语法结构就是 ${} , 可以通过 [] 和 . 两种运算符来存取数据。
如果属性包含 特殊字符 或者是动态取值 ,就需要用到 [] .
el 表达式的取值范围有四个级别 page ,request,session,application。
el 表达式 可以操作 变量,常量和隐式对象(比如 param 和 paramValues)
取值:
去 session 取值:
可以用常规方法 sesion.getAttribute("username");
也可以用 ${session.username}
取得输入参数:
常规方法 request.getParameter(String name)
el 表达式 ${param.name}
pageContext:
${pageContext.request.queryString} 取得请求的参数字符串
${pageContext.sesion.id} 取得用户的 session ID
(7) 技能点 7:页面传值 & 前后端传值
form 表单的的形式:
前端 input 给后端,后端 request.getParameter("name") 取得值。
后端再通过 request.setAttribute("name",name); 返回给前端
前端 ${name} 取得值
javaBean 传值的方式(需要有 setter 和 getter 方法):
前端传给后端:
1, 通过 ajax:
传输格式是 json 字符串,ajax 用到了 Jquery,所以需要加入引用。
js 传值:
function test(){
var users=[{name : '张三'} , {name:'李四'} ];
$.ajax({type: 'piost' ,data: json.strinfify ( users) ,contentType:'json' url: 'user/saveJsonUser.do' sucess: function(data) { alert("ok" ); } error("errror") ;) ];
后端进行处理:
需要用到注解 @requestBody 将 请求正文 转为 HttpMessageConverter 对象。
} 得到值之后
需要 Map result = newHashMap(); result.put("success","123"); return result ;
springMVC 前后端传值:
@PathVarible String name ---- /name
@PathParam("name") String name ------- ?name=123
@RequestParam("name") String classifyId ------?name=123
@requestBody json xml 格式的
@RequestHeader ("host") String hostAddr
Spring 自动封装:
后端有对象,前端传的参数里面包含 对象的属性,那么 User user 参数将自动封装
二:明日计划
明天因为时间充足(or 有限),打算完成
①任务九应该完成
②前后端传值需要复习巩固一下
③数据存储方式需要了解一下,比如 hashMap
三:疑难问题
四:思考总结
Ⅰ 对自己今天的进度满意吗
------------------ 还好了,没有哪一块卡的时间特别长
Ⅱ 那些困扰自己的问题所在
------------------json 通过 jsp 显示后,一下子全部显示出来,即使我指定了属性还不行
Ⅲ 暗示自己为明天加油打劲
------------------ 胡靖说他们公司有一个应届生学的特别快,我也要努力
评论