【面试准备】JavaWeb部分,最新手淘Android高级面试题及答案

isErrorPage(是否能使用 Exception 对象),isELIgnored(是否忽略表达式)

10. request.getAttribute()和 request.getParameter()有何区别?

getParameter 得到的都是 String 类型的。或者是 http://a.jsp?id=123 中的 123,或者是某个表单提交过去的数据。 getAttribute 则可以是对象。

11. jsp 有哪些内置对象?作用分别是什么?分别有什么方法?

JSP 共有以下9个内置的对象:

Page: JSP 网页本身,表示从该页面产生的一个 servlet 实例

Exception: 针对错误网页,未捕捉的例外

Request: 表示 HttpServletRequest 对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取 cookie, header,和 session 数据的有用的方法。

Response: 表示 HttpServletResponse 对象,并提供了几个用于设置送回浏览器的响应的方法(如 cookies,头信息等)

Out: 对象是 javax.jsp.JspWriter 的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。

pageContext: 表示一个 javax.servlet.jsp.PageContext 对象。它是用于方便存取各种范围的名字空间、servlet 相关的对象的 API,并且包装了通用的 servlet 相关功能的方法。

Session: 表示一个请求的 javax.servlet.http.HttpSession 对象。Session 可以存贮用户的

Applicaton: 表示一个 javax.servle.ServletContext 对象。这有助于查找有关 servlet 引擎和 servlet 环境的信息

Config: 表示一个 javax.servlet.ServletConfig 对象。该对象用于存取 servlet 实例的初始化参数。

12. jsp 有哪些动作?作用分别是什么?

JSP 共有以下6种基本动作

jsp:include:在页面被请求的时候引入一个文件。

jsp:useBean:寻找或者实例化一个 JavaBean。

jsp:setProperty:设置 JavaBean 的属性。

jsp:getProperty:输出某个 JavaBean 的属性。

jsp:forward:把请求转到一个新的页面。

jsp:plugin:根据浏览器类型为 Java 插件生成 OBJECT 或 EMBED 标记

13. 页面间对象传递的方法

request,session,application,cookie 等

14. 两种跳转方式分别是什么?有什么区别?

有两种,分别为:

<jsp:include page=included.jsp flush=true>

<jsp:forward page= nextpage.jsp/>

前者页面不会转向 include 所指的页面,只是显示该页的结果,主页面还是原来的页面。执行完后还会回来,相当于函数调用。并且可以带参数.后者完全转向新页面,不会再回来。

15.JSP 和 Servlet 有哪些相同点和不同点,他们之间的联系是什么?

JSP 是 Servlet 技术的扩展,本质上是 Servlet 的简易方式,更强调应用的外表表达。JSP

编译后是"类 servlet"。JSP的优点是擅长于网页制作,生成动态页面比较直观,缺点是不容易跟踪与排错。

Servlet是纯Java语言,擅长于处理流程和业务逻辑,缺点是生成动态网页不直观。

Servlet 和 JSP 最主要的不同点在于,Servlet 的应用逻辑是在 Java文件中,并且完全从表示层中的 HTML 里分离开来。而 JSP 的情况是 Java 和 HTML 可以组合成一个扩展名为.jsp 的文件。JSP 侧重于视图,Servlet 主要用于控制逻辑。

16. MVC 的各个部分都有那些技术来实现?如何实现?

MVC 是 Model-View-Controller 的简写。Model 代表的是应用的业务逻辑(通过JavaBean,EJB 组件实现),View 是应用的表示面(由 JSP 页面产生),Controller 是提供应用的处理过程控制(一般是一个 Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。

17. 我们在 web 应用开发过程中经常遇到输出某种编码的字符,如 iso8859-1等,如何输出一个某种编码的字符串?

Public String translate(String str) {

String tempStr =“”;

try {

tempStr=newString(str.getBytes(“ISO-8859-1”), “GBK”);

tempStr=tempStr.trim();

}

catch (Exception e) {

System.err.println(e.getMessage());

}

return tempStr;

}

18. servlet的jar包是?编写servlet需要继承什么类?

servlet-api.jar

HttpServlet

19.编写servlet通常要实现的方法?

doGet, doPost, init, destroy方法

20. doGet方法和doPost方法中的2个参数是什么?

httpServletRequest

httpServletResponse

21. 如何获取参数

request.getParameter–获取单值

request.getParameterValues–获取多值

21. forward,sendRedirect在Servlet中对应的方法?

RequestDispatcher rd = request.getRequestDispatcher(“目标文件”);

rd.forward(request, response);

response.sendRedirect(“目标文件”);

22.servlet在哪个文件中进行配置?

web.xml–web部署描述文件。WEB-INF\web.xml

23. 谈谈servlet过滤器的作用?

servlet过滤器是特殊的servlet,能够对特定的请求路径进行过滤,在访问这个路径之前,先执行过滤器,过滤器进行预处理,然后再进行后续的处理。

24. 谈谈servlet监听器的作用?

servlet监听器对特定的事件进行监听,当发生这些事件的时候,就会执行监听器的代码。

25. servlet API的2个主要包?

javax.servlet._;

javax.servlet.http._;

26.要给用户响应信息,如何完成?

response.setContentType(“text/html, charset=“GBK””);

PrintWriter out = response.getWriter();

out.println(“…”);

27.编译好的servlet类放在什么位置?

放在web应用WEB-INF下面的classes文件夹中。

28. 什么是web容器?

实现J2EE规范中web协议的应用。该协议定义了web程序的运行时环境,包括:并发性,安全性,生命周期管理等等。

29. jsp的执行过程?

1)客户端发出request请求

2)jsp容器将jsp转译成servlet的源代码

3)将产生的servlet的源代码经过编译后,加载到内存中

4)把结果response响应到客户端

30. 4种作用域

page:代表与一个页面相关的对象和属性。静态include可以共享该对象和属性

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

尾声

评论里面有些同学有疑问关于如何学习material design控件,我的建议是去GitHub搜,有很多同行给的例子,这些栗子足够入门。

有朋友说要是动真格的话,需要NDK以及JVM等的知识,首现**NDK并不是神秘的东西,**你跟着官方的步骤走一遍就知道什么回事了,无非就是一些代码格式以及原生/JAVA内存交互,进阶一点的有原生/JAVA线程交互,线程交互确实有点蛋疼,但平常避免用就好了,再说对于初学者来说关心NDK干嘛,据鄙人以前的经历,只在音视频通信和一个嵌入式信号处理(离线)的两个项目中用过,嵌入式信号处理是JAVA->NDK->.SO->MATLAB这样调用的我原来MATLAB的代码,其他的大多就用在游戏上了吧,一般的互联网公司会有人给你公司的SO包的。
至于JVM,该掌握的那部分,相信我,你会掌握的,不该你掌握的,有那些专门研究JVM的人来做,不如省省心有空看看计算机系统,编译原理。

一句话,平常多写多练,这是最基本的程序员的素质,尽量挤时间,读理论基础书籍,JVM不是未来30年唯一的虚拟机,JAVA也不一定再风靡未来30年工业界,其他的系统和语言也会雨后春笋冒出来,但你理论扎实会让你很快理解学会一个语言或者框架,你平常写的多会让你很快熟练的将新学的东西应用到实际中。
初学者,一句话,多练。

目中用过,嵌入式信号处理是JAVA->NDK->.SO->MATLAB这样调用的我原来MATLAB的代码,其他的大多就用在游戏上了吧,一般的互联网公司会有人给你公司的SO包的。**
至于JVM,该掌握的那部分,相信我,你会掌握的,不该你掌握的,有那些专门研究JVM的人来做,不如省省心有空看看计算机系统,编译原理。

一句话,平常多写多练,这是最基本的程序员的素质,尽量挤时间,读理论基础书籍,JVM不是未来30年唯一的虚拟机,JAVA也不一定再风靡未来30年工业界,其他的系统和语言也会雨后春笋冒出来,但你理论扎实会让你很快理解学会一个语言或者框架,你平常写的多会让你很快熟练的将新学的东西应用到实际中。
初学者,一句话,多练。

由于文章篇幅问题复制链接查看详细文章以及获取学习笔记链接:前往我的GitHub

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值