1. 网页是由块级元素和行内元素堆叠成的,块级元素的实质是行内元素的首尾增加了一个换行符,所以块级元素的默认
布局是从上到下排序的;而行内元素是从左到右的默认排序,默认的元素之间的排列是有间隙的,可以通过的设置元
素的内边距和外边距为0消除元素之间的距离。要改变块级元素的默认布局,可以用现在的流行的浮动布局,改变文档
流的流向,从而达到像行内元素一样的布局效果。
2. 判断使用行内元素还是块级元素的标准是看元素里是否有子元素,没有子元素的话就用行内元素,有的就用块级元素。
一般的规则就是文本内容嵌入行内元素,小块元素嵌入大块元素,经过好的布局组成一个好看的网页。
3. 对于Java Web的项目的开发,前端网页的存放位置,可以放在WEB-INF下,也可以放在WebRoot下,这两者的区别是
外部浏览器是否可以直接输入静态地址访问资源文件,不过网页资源文件放在WebRoot下,可以通过过滤器控制资源
文件的请求访问,说白了就是在WEB-INF目录下的资源文件是受到保护的,是不可以随便外部请求访问的,但是可以
通过控制器servlet,Action(动作)转发或者是重定向访问该文件夹下的内部网页资源文件。
4. 表格元素是块级元素,表格的组成实质就是单元格加上换行符,单元格我觉得就是(inline-block)行内-区块元素,
其中的表格头〈thead〉表格主体〈tbody〉表格尾〈tfoot〉这三个标签元素的作用就是控制表格中内容是否是渲染到
此单元格是加载元素内容,还是渲染完成整个文档之后再加载表格元素内容,提高文档内容的加载效率。
5. 项目开发中的资源的更新*及时更新:插入内容马上更新,这样做的好处就是方便,代码量少,缺点就是损失系统的性能,不断地插入,
删除更新会增加系统服务器的负担。 *定时更新:每个自定的时间,定时更新系统的资源,需要用到守护线程定时器定时更新资源,代码复杂。*选择性的更新: 可以设定更新的按钮,手动的更新资源,需要手动的更新。
6. 守护线程:可以理解为一个后台的服务,是优先级别最低的一个线程,例如java虚拟机的垃圾回收器就是一个守护线
程,数据库连接池和内存管理也是守护线程。
注:*1. 线程分为,用户线程(User Thread),主线程(Main Thread),守护线程(Daemon Thread),其中在Java
编程主线程和守护线程是必须会开启的,因为主线程是函数方法的入口,守护线程是Java虚拟机的垃圾回收器。*2. 我们所熟悉的Java虚拟机中的垃圾回收器就是一个典型的守护线程,我们的程序中不会再有运行的线程时,程
序就不会产生垃圾,垃圾回收器就无事可做,所以当垃圾回收器是Java虚拟机的仅剩线程时,Java虚拟机就会
自动离开。
7. 四个域对象:*page:页面对象,作用域最小,生命周期最短,仅限于当前的页面。*request:请求对象,生命周期为一次请求响应之后,一个请求可以包含多个的页面。*session: 用户会话对象,生命周期和浏览器的生命周期一样,开一个浏览器即开启一个用户会话的对象*application: 应用程序对象,生命周期和服务器的生命周期一样,随着服务器的开启和关闭也随着关闭,原因
应用程序是部署在服务器端的。
8. 文件过滤器:作用就是用来过滤特定扩展名字的文件,返回值就是文件地址的字符串集合。*例子,例如以过滤文件扩展名字为jpeg的图片文件的地址集合,方法名字为getBankImages()*原理:
通过传入文件夹的地址路径,返回值为文件地址字符串数组,局部依赖为要过滤的文件夹地址public String[] getBankImages(String path)/新建一个目录文件
File file=new File(path);
/返回过滤指定后缀名的文件字符串地址集合,过滤方式是通过文件名字过滤器FilenameFilterreturn file.list(new FilenameFilter()/实现文件过滤器的接收方法,局部依赖文件夹和文件名字public boolean accept(File dir,String name)/如果文件名字的后缀名为jpeg,则返回为真return name.endsWith("jpeg");
);
9. 多任务(一个任务可以由多个应用程序来完成)-多进程(应用程序)-多线程(能运行的代码块):细粒度的不断提高
10. 表单的作用:表单是块级元素,是由行内元素输入框组成的,输入框是内联——区块元素,可以设置宽高,总之表
单的作用就是用POST提交大量的数据参数,提交内存大的数据比如图片等,要用编码类型属性enctype="multipart/
form-data",这个数据类型是MIME类型。与表单相反,在界面编程中,表格的作用就是显示数据,与数据库端编程中,表的作用也是显示数据一样,而在服务端数据库表就被映射成了一个由属性和访问器子程序
组成的类数据实体,经过服务器的业务逻辑处理数据之后形成数据对象或者数据对象的集合,分发到一个页面的
用表格的形式显示数据集合。
注:*用列表的形式也可以显示数据对象集合。列表本质是由列表项组成的,列表项是块级元素,这是和表格的
单元格的最大不同,因为单元格默认是从左到用的顺序排列的,而列表项是块级元素,从上到下的排列顺序。
而且列表和表格有很大的相似之处,例如:表格中可以嵌套表格,列表中可以嵌套列表,都是大区块里装着
小区块,小区块里面装着要显示的数据内容。*一般是表单里面套一个表格用于布局,控制表单的结构。*以前的网页使用表格来布局,但是灵活性很差,所以渐渐地用区块加浮动的布局(专业术语:DIV CSS).
11. 表格与列表*表格:由列名和一行一行的数据记录组成,主要的数据作用就是显示数据。*列表:本质就是用缩进空格的方式,显示数据,一般的用处就是显示父目录和子目录,或者就是只显示一行数据。
12. 标签〈label〉我觉得最主要的作用就是标签元素有个for属性,可以设置其关联表单元素的输入框的编号,从而达
到单击标签元素的区域同样选择输入复选框的目的。
13. 卖书就等于贱卖你的人格。
14. 客户端的校验是假校验(可以把校验的代码抽取掉,从而达到骗过前端数据校验),服务端的数据校验才是真的数据校
验。
15. 虚拟机:和C#的通用语言运行时一样,能运行Java字节码文件,规定的编码方式为宽字节的编码Unicode,无论什么
字符都是用2个字节表示。
16. 程序的输出端有控制台,界面,网页。
17. 编程开发中到处都是请求响应的模型*服务器端: 请求的对象为服务器,请求的语句是get方式或者post方式的url地址语句。*数据库端: 请求的对象是数据库,请求的语句是sql语句。*前端:请求的方式是通过事件的方式。*界面编程:请求的方式也是通过界面的事件响应的方式。
18. 要用到事件,基本上是离不开函数指针的回调。
19. 能用迭代处理的就不用递归,不好理解,可读性不强,递归用到的地方可以遍历文件树。
20. 时刻保持谦虚求学的心态才能不断前进。
21. 开发人员让其他人来检查你的工作是很有好处的。
22. 复查是一个很重要的机制,他可以程序员得到关于他们自己的代码的反馈。
23. 复查可以快速地将所有的开发者的水平提升到最优秀的开发者的高度。
24. 即使是无法看到显示器、使用了太小的字体等细枝末节,都可能造成问题。
1. 编程语句:* 顺序语句:顺序处理数据。* 判断语句:判断要操作的数据是否满足条件。* 循环语句:直接作用就是操作数组和数据列表集合。
2. web开发中的页面从域对象输出数据的方式有4种 *jstl(Java标准标签库): 1. $(域对象里的数据)2. <c:out value=""/
ognl(对象图导航语言):1. %(存放在映射里的数据或者是域对象(在struts2中被包装为映射:即Map的结构)里的数据)
注:这里用%取值是为了在Jsp中和jstl中的$取值符号区分2. <s:property value=""/
3. Jsp页面中的超链接:*jstl:1. 锚标记(a标签):建议写动态获取服务器地址的绝对路径,
例如:${pageContext.request.contextPath}:作用就是动态的获取服务器里的项目地址。2. <c:url var="" value="/">
<c:param name="" value=""></c:param>
</c:url>
<a hred="${}"></a>
注:这个Jstl的地址标签是自动utf-8编码参数数据的,所以不用担心传中文参数时的乱码问题
地址中的value属性是 3. 表单里的action属性:<form action=""></form>
注:这个Action请求是POST请求,也不用考虑传中文参数的乱码问题*对象图导航语言:1. <s:a action="">
<s:param name="" value=""></s:param>
</s:a>
注:这里向地址栏里传的参数也是自动utf-8编码的2. <s:form action=""></s:form>
4. 前端编程中有单标签和双标签之分,用哪个看情况而定,有的标签就是单标签,如:<img src=""/有的必须要是
双标签,如:表单元素〈form></form〉剩下的就是看代码的可读性和简洁性进行权衡选择,标签里面没有内容的可以
用单标签,简洁,当然你可以用双标签肯定是没有错的。
5. 文件的上传下载中,输入流量一般指的是资源文件流,输出流指的是输入流要输出到的文件夹。
6. 提高自己的定力,不能整天地胡思乱想。
7. 在权限设置模块,前端的设计中
权限选择功能设计要点1. 必须要有一个全选的功能。2. 单击父权限的时候,子权限也必须要全选。3. 单击子权限的时候,父权限也要被选中。4. 当子权限的勾选全部取消时,父权限也要取消勾选。
实现方案:1. 全选功能:这里要用到label标签的for属性,关联表单的输入复选框,当单击全选按钮功能的时候
所有权限的功能都要选上,实现方式就是给该标签元素实现单击事件,完成全选的功能
用的选择器使用JQuery实现的。*代码:<input type="checkbox" id="" onClick="$([name=privilegeIds]).attr(checked,this.checked);"/
2. 实现原理:剩下这三个功能的实现都是通过设置标签元素的是否选中属性是否为真,即attr(checked,true);2.1 实现第二个功能的代码:是JQuery脚本代码。
$("[name=privilegeIds]").click(function()
/1. 单击父权限时,所有的子权限也被选中
/如果当前的元素被选中/注:this表示的是当前对象,$(this)表示的是当前的选择的元素节点if(this.checked)/2. 选择子权限时,父权限也要勾选
else/否则当前的元素不被选中/3. 取消选择所有的子权限时,父级权限也被取消if()
); .
注:*这里最好要看着前端页面的元素节点继承结构来编写,要不然会犯晕的。*用到的节点选择方法有选择父亲节点,兄弟结点,过滤节点,孩子节点8. 要你去适应生活,而不是让生活去适应你。
9. 返回上一级的Java脚本代码:<a href="javascript:history.go(-1)"></a>
10. 前端编程中的死链接,有三种方式1. <a href="###"></a>
注:一个#表示的是连接到页面的top锚点,并不是死链接。2. <a href=":;"></a>
3. <a href="javascript:void(0)"></a>
11. Js中的闭包(closure):简单地理解就像Java类中的全局依赖,只不过在Js中是方法中的一个局部依赖,父方法中嵌套
的子方法操作该依赖的对象。
注:*在Js中函数是可以嵌套函数的,在Java中是不可以这样的。*不能滥用闭包,会增加内存开销,因为函数中的依赖变量本质是不属于该函数的(可以理解为是全局依赖变量的
替代),即使函数执行完了,垃圾回收器也不会回收该依赖的变量。
12. 创建接口的一般步骤就是:1. 创建接口Service2. 创建接口的实现类3. 配置Service4. 在Action声明Service,其实就是创建一个Action的依赖Service
13. 创建Action的一般步骤:1. 创建Action类2. 创建各个要控制数据的方法3. 创建Action中方法相对应页面UI4. 配置Action
14. Java Web 开发的步骤1. 需求分析,生成需求文档,用户确认。(需求分析师)2. 项目设计,生成项目设计文档。(项目设计师)3. 功能界面的设计。(美工,网站策划师,实现-〉前端工程师)4. 系统架构,接口的设计(项目经理)5. 实体设计或者是数据库表的设计.(数据库端程序员)6. Action创建(6.7.8服务端开发工程师)7. Service创建8. Jsp页面9. 项目测试(测试工程师)
15. 生无所息,奋斗不止。
16. 朋友是你一生的财富。
17. 每一天都要珍惜着过,要对得起遇见的每一个人。
18. 过度使用闭包会导致性能下降,函数里面放匿名函数,则会产生闭包。闭包的实质就是延长局部依赖的变量的生命
周期,使之达到和全局依赖的变量效果是一样的。Js语言的特点就是函数里面可以嵌套函数,从而有了闭包这一替换
全局变量的特性,就是子函数访问父函数的局部变量,延长了局部变量的生命周期。闭包就是一个代替全局变量的局
不依赖变量。
19. if you can't explain it to a six-year-old,you really don't understand it yourself.
20. 分层是为了解耦,依赖是为了通信。
21. 依赖分为全局依赖和局部依赖,全局依赖就是指类的私有(private)变量或者是保护(protected)的变量,局部依赖一
般指定而是方法的参数或者是方法中的局部变量。
1. 人应该活得简单点,不能想太多。
2. DOM元素的节点继承树window->document-〉块级元素-〉行内元素。
3. 技术的东西是死的,人是活的,所以说技术性的东西好学,非技术性的东西才真正的是个大难题。
4. 到最后你才会发现人才是一个很难懂的很难学的学问,因为他是活的,你控制不了,也很难抵掌握的了。