java-web复习阶段

 

 

JSP中的重点知识
一、经典面试题!!!:
 <%! int a = 0;%>
<% int b= 0; %>
<%
a++;
b++;
out.write(a+"<br/>");
out.write(b+"<br/>");
%>
 第一次访问时,a,b的值分别是多少
 第二次访问时,a,b的值分别是多少
二、静态引入和动态引入的区别
三、九大隐式对象~~~
四、四个做用域~~~
page域:参考(3)
request域:一次请求响应
session域:一次会话
application域:从web项目启动以后,一直到项目关闭。java

五、pageContext对象
(1)做为入口对象获取其余八个对象
(2)做为入口对象获取其余域中的数据
六、EL表达式~~~
获取数据、执行运算、获取经常使用的开发对象、调用java的方法
 获取数组中的数据:能够经过 ${数组名[下标]}获取数组中的内容。
 ~~~获取集合中的数据:能够经过 ${集合名[下标]}获取集合中的内容
    c:forEach items="${list}" var = "obj"
       ${obj.属性名}web

 ~~~获取Map集合中的数据:能够经过 [键]  或  .键 来获取Map中数据
    c:forEach items="${map}" var="entry"
         ${entry.key.属性}   ${entry.value}
 ~~~获取javaBean对象的属性值:${对象名.属性名}
EL表达式调用javaBean中的方法~
六、JSTL
重点掌握 c  和fmt处理日期
核心标签 c
一、c:out  ~~
输出,能够指定默认值,能够设置是否转义
二、c:set  ~~
标签用于把某一个对象(基本数据类型或String)存在指定的域范围内;
或设置Web域中的java.util.Map类型的属性对象或JavaBean类型的属性对象的属性值
三、c:remove~
标签用于删除各类Web域中的属性
<c:remove var="varName" [scope="{page|request|session|application}"] />
若是没有指定哪一个域,则所有删除。
四、c:if~~~   if 或  if --else
test=“boolean表达式”  若是为true,显示<c:if>内容</c:if>
                   若是为false,不显示<c:if>内容</c:if>
五、<c:catch>~~
标签用于捕获嵌套在标签体中的内容抛出的异常,其语法格式以下:
<c:catch var="e">
   <%=1/0 %>
   </c:catch>
   ${e.message}
六、<c:choose>,<c:when>和<c:otherwise>   if-else if -...-else
七、c:forEach~~~~
标签用于对一个集合对象中的元素进行循环迭代操做,
或者按指定的次数重复迭代执行标签体中的内容。   面试

~~~varStatus:实现单双行变色
  index,count数据库

自定义标签的执行过程~:
  一、当jsp页面执行到自定义标签时,首先建立出自定义标签处理类对象,建立出来后
 会当即调用setJspContext方法将当前页面的PageContext传入
  二、若是当前标签有父标签,则将调用setParent()方法,将父标签传入。若是没有父标签,这该方法不执行。
  三、若是当前标签有标签体,则调用setJspBody方法,将封装了标签体信息的JspFragment jspBody传入,
若是没有标签体,则该方法不调用。
  四、若是具备属性,则调用属性的setXxx()方法将属性值传入。
  五、最后调用doTag方法执行自定义标签的处理逻辑。设计模式

六、MVC~~~             版本管理器—(SVN、CVS) EasyMall
Servlet+JSP+JavaBean(模式:Model-2,也被称为MVC设计模式)
C(Control)---Servlet:接收参数,控制跳转
V(View)---JSP:负责显示
M(Model)--JavaBean:处理业务逻辑,操做数据库
七、耦合与解耦
改造EasyMall--软件分层--耦合->解耦  
工厂类+接口+配置文件  管理不能避免的耦合。数组

耦合:在软件分层中咱们但愿各个层应该是对立的,修改替换某一个层应该不影响到其余层,
可是若是乱传递属于某一个层特有的对象,形成层与层之间关系过于紧密,当修改某一个层的时候,
不得不修改其余的关联层,这和最初的设计思想违背。这种有害的过于紧密的层与层之间的关系被
称为耦合。缓存

解耦:解除耦合的过程
   首先要保证只属于某一个层的对象不乱传递。
   对于没法比较的耦合,能够经过“工厂类+接口+配置文件的方式”将耦合提取到配置文件中
 进行管理。session

八、泛型~~~
Java5开始提供的新特性,表示不肯定类型
注意:泛型是提供给编译器(javac)使用的,它用于限定集合的输入类型,让编译器在源代码级别上,
挡住向集合中加入非法数据。
  但在编译器编译完带有泛型的java程序后,生成.class文件中将不在带有泛型,使程序的运行效率不收到
影响。这个过程被称为"擦除"app

自定义泛型
3.2.一、方法上的泛型~~~
泛型须要先定义再使用,方法上的泛型须要定义在方法返回值类型的前面,一般是使用一个大写的英文
字母(sun公司推荐T),也能够是任意的字符;可是不要使用java中的关键字或经常使用类(eg:String)
定义在方法上泛型的做用范围是当前方法的内部。
3.2.二、类上的泛型~~~
  定义在类型的泛型的做用范围是当前类的内部。
  泛型须要先定义再使用,类上泛型须要定义在类名以后,一般使用大写字母。
  类型定义的泛型,须要在建立对象/引用时须要明确指定泛型的具体类型。
若是在建立对象时,没有明确的指定泛型的具体类型,则默认为泛型的“上边界”。
  在类上定义的泛型不能在静态方法上使用;若是想在静态方法上使用,须要本身定义。jsp

public interface List<E> extends Collection<E>
List上的泛型也是定义在类上的泛型。

八、过滤器Filter~~~
8.一、过滤器概述
 Servlet的技术规范中定义了Servlet、Filter、Listener三门技术。
 过滤器能够拦截对资源的访问,一个资源能够被多个过滤器所拦截,一个过滤器也能够拦截多个资源。

 拦截下来后控制是否容许访问资源(权限控制),
 或者在访问资源执行以前或以后作一些其余的操做(全站处理乱码、禁止jsp页面缓存、权限控制)。
8.二、过滤器的开发


九、MD5加密

十、监听器~~~

相关文章
相关标签/搜索