民航凯亚java面试题_明航凯亚面试题

1. 下列代码的执行结果是什么:

public classTest {public static voidmain(String[] args) {

(newThreadTest()).start();

}

}class ThreadTest extendsThread{

@Overridepublic voidrun() {

System.out.println("In run");

yield();

System.out.println("leaving run.");

}

}

答案:In run 在leaving run之前被打印出来。

分析:Thread类的yield()方法的作用为线程让步,尝试释放当前线程对CPU资源的占用,并重新进入就绪状态。当其再次获取到CPU资源后会继续执行。

2. 和HttpServletResponse的sendredirect()方法的主要区别描述正确的是:

答案为:forward执行在服务器端,而sendredirect在客户端

分析: 的原理是HttpServletRequest的getRequestDispatcher的forward方法,为请求的转发,而sendredirect为页面的重定向。二者的完整区别为:

a.重定向

response.sendRedirect(你要跳转的路径)

服务器告知给客户端,让客户端去请求你要跳转的路径。

1、          跳转前和跳转后的request对象不是同一个对象了;意味着跳转后不能从request中获取到跳转前的用户请求数据;

2、          在客户端的浏览器地址栏上看到的地址是跳转后的地址。

3、          可以跳转到项目外的地址;

4、          如果跳转的路径采用根路径的话,需要携带项目的上下文路径。

根路径:   /应用上下文/资源目录/文件名

问题:如何动态的获取到应用上下文路径?

request.getContextPath()

5、          跳转后,如果客户端刷新页面,它只会刷新跳转后的页面

b.请求的转发

request.getRequestDispatcher(你要跳转的路径)

.forward(request,response);

服务器自己去请求跳转后的资源并执行,执行后将执行结果响应给客户端。

1、          跳转前和跳转后的request对象是同一个对象;意味着跳转后可以从request中获取到跳转前的用户请求数据;

2、          在客户端的浏览器地址栏上看到的地址是跳转前的地址。

3、          不可以跳转到项目外的地址;

4、          如果跳转的路径采用根路径的话,不需要携带项目的上下文路径。

根路径:  /资源目录/文件名

5、跳转后,如果客户端刷新页面,它会将跳转前和跳转后的页面都再执行一次。

6、请求的转发,他可以跳转到WEB-INF下的页面。

3. 以下语句创建了几个对象

String a,b,c;

a= "a";

b= "b";

a&

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值