【面试准备】JavaWeb部分

getServerName():获取服务器的名字

getServletPath():获取客户端所请求的脚本文件的路径

getServerPort():获取服务器的端口号

removeAttribute(String name):删除请求中的一个属性

9. JSP 的常用指令

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可以共享该对象和属性

request:代表与某个请求相关的对象和属性。

session:代表与某个用户相关的对象和属性。

application:代表与整个web应用程序相关的对象和属性。

31. jsp的4种过滤器

request,forward,include,error

32. jsp中执行浏览器cache

response.setHeader(“Expires”, 0);

response.setHeader(“Cache-Control”, “no-cache”);

response.setHeader(“Pragma”, “no-cache”);

33. jsp中设置cookie

Cookie c = new Cookie(“name”, “tomzhang”);

response.addCookie©;

34. jsp中删除cookie

c.setMaxAge(0);

35. jsp中如何停止jsp的执行

<%

if(条件表达式){

//do something

}else{

return;

}

%>

36. 当使用一个结果集时,如何防止字段为"null"显示在html文本域中?

<%!

String blanknull(String s){

if(s == null or s.equals(“”)){ s = “”;}

return s;

}

%>

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

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

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

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

终极手撕架构师的学习笔记:分布式+微服务+开源框架+性能优化

image

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

终极手撕架构师的学习笔记:分布式+微服务+开源框架+性能优化

[外链图片转存中…(img-VpLRd6BW-1713556668712)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值