大家能给我这些问题的答案吗?面试考过的,大家都来讨论下!1. 罗列JSP的隐含对象,sendRedirect(),forward(),include()的区别?2. Web页面中,如何弹出窗口,刷新父窗口,如何避免父窗口表单重复提交;如何避免重复惦记提交按钮,多次提交表单?3. <jsp:useBean <jsp:setProperty 原理?自己实现该怎么做?4. 为什么使用文件上传的表单时,不能像正常的Form一样获取Parameter属性值?怎么处理?5. Servlet配置时,如何配置?<url-pattern/>的规则是什么?6. 如何用Java向URL发送POST请求?如何在两个请求间维持会话信息?7. Java中怎样实现定时执行任务的功能?8. 如何使用线程?线程中,实现Runnable接口和继承Thread类,有什么区别?9. 什么是抽象类,什么是接口?如果抽象类中没有实现的方法,它与接口有什么区别?

解决方案 »

  1.   

    1. JSP的隐含对象就不多说了, sendRedirect()与forward()的区别,前者请求重定向,后者只是分发请求,所以前者的URL会变,而后者的URL不会变。include(),包含,有动态和静态之分。2. 这个是基本的JS代码,我用得太多了,呵呵
       刷新父窗口:parent.window.location.reload(), 弹出窗口就不说了,避免重复提交可参考Struts里相关知识,还有很多方法可以避免Form重复提交的3. 写自定义标签库就可以解决,标签库的内容很简单,功能却比较强大,如果你懒得在JSP页面中写Java代码,就自己写一套标签库吧,什么显示都能做,当然也可以参考Struts里的标签源代码(比较经典)4. 没操作过,不便解答...
      

  2.   

    5. 请参考Web.xml的DTD文档,里面有详细的规则说明6. 问题不甚明白,不好意思7. 这个如果结合Windows系统的话就很好做了, Java程序可以打成JAR包,可以生成EXE文件,但都需要JDK环境才能运行,如果生成了EXE,那楼主只要在计划与任务里做做手脚就可以了,另外,像SQL Server之类的大型数据库也可以执行排程的, 排程执行时间最小单位为分钟,如果是秒的话,别问我, 我也写不出来,呵呵!8. "如何使用线程"不太好说, Runnable比Thread更灵活,而且在并发处理中应用得更广泛,说到他们的区别嘛, 其实就是一种设计模式的应用, 实现Runnable的类(假设为RunThread)要new Thread(new RunThread()).start()启动线程,继承Thread的类(ExtendThread)用new ExtendThread().start()启动线程9. 这个问题网上的答案铺天盖地,我就不多罗嗦了
      

  3.   

    我们可以通过两种方法实现线程体。  (一)定义一个线程类,它继承线程类Thread并重写其中的方法 run(),这时在初始化这个类的实例时,目标target可为null,表示由这个实例对来执行线程体。由于Java只支持单重继承,用这种方法定义的类不能再继承其它父类。  (二)提供一个实现接口Runnable的类作为一个线程的目标对象,在初始化一个Thread类或者Thread子类的线程对象时,把目标对象传递给这个线程实例,由该目标对象提供线程体 run()。这时,实现接口Runnable的类仍然可以继承其它父类。  每个线程都是通过某个特定Thread对象的方法run( )来完成其操作的,方法run( )称为线程体。
      

  4.   

    1. 抽象类
      java语言中,用abstract 关键字来修饰一个类时,这个类叫做抽象类,用abstract 关键字来修饰一个方法时,这个方法叫做抽象方法。格式如下:
      abstract class abstractClass{ …} //抽象类
      abstract returnType abstractMethod([paramlist]) //抽象方法
      抽象类必须被继承,抽象方法必须被重写。抽象方法只需声明,无需实现;抽象类不能被实例化,抽象类不一定要包含抽象方法。若类中包含了抽象方法,则该类必须被定义为抽象类。
     2. 接口
      接口是抽象类的一种,只包含常量和方法的定义,而没有变量和方法的实现,且其方法都是抽象方法。它的用处体现在下面几个方面:
      ◇ 通过接口实现不相关类的相同行为,而无需考虑这些类之间的关系。
      ◇ 通过接口指明多个类需要实现的方法。
      ◇ 通过接口了解对象的交互界面,而无需了解对象所对应的类。
      1)接口的定义
      接口的定义包括接口声明和接口体。
      接口声明的格式如下:
      [public] interface interfaceName[extends listOfSuperInterface] { … }
       extends 子句与类声明的extends子句基本相同,不同的是一个接口可有多个父接口,用逗号隔开,而一个类只能有一个父类。
      接口体包括常量定义和方法定义
      常量定义格式为:type NAME=value; 该常量被实现该接口的多个类共享; 具有public ,final, static的属性。
      方法体定义格式为:(具有 public和abstract属性)
      returnType methodName([paramlist]);  2)接口的实现
      在类的声明中用implements子句来表示一个类使用某个接口,在类体中可以使用接口中定义的常量,而且必须实现接口中定义的所有方法。一个类可以实现多个接口,在implements子句中用逗号分开。  3) 接口类型的使用
      接口作为一种引用类型来使用。任何实现该接口的类的实例都可以存储在该接口类型的变量中,通过这些变量可以访问类所实现的接口中的方法。 
      

  5.   

    4. 为什么使用文件上传的表单时,不能像正常的Form一样获取Parameter属性值?怎么处理?
    -----文件上传的时候是在页面内嵌入的子页面上传,然后把参数返回来吧?可以加一个input,在子页面或者js里处理上传后的字符串。