30题前端工程开发师面试题(1)

1) 向操作系统注册:让操作系统将一个端口和服务器通讯进程绑定。这个端口就代表了这通讯进程。ServerSocket ss = new ServerSocket(port),服务端通讯进程在port端口监听。

2) Socket socket = serverSocket.accept();取出一个客户端的socket连接。如果没有客户端的连接到来,就一直等待,也就是阻塞状态

3)和服务器建立连接:Socket socket = new Socket(ip地址,port);

如果创建socket对象成功,代表连接建立。如果抛出异常,连接建 立不成功。

4)在发送方通过socket获取输出流对象,socket.getOutputStream()并执行写入操作

5)在接收放通过socket获取输入流,socket.getInputStream()并执行读取操作

14. UDP通讯的基本步骤是什么?新建一个前端学习qun438905713,在群里大多数都是零基础学习者,大家相互帮助,相互解答,并且还准备很多学习资料,欢迎零基础的小伙伴来一起交流。

创建客服端的DatagramSocket,创建时,定义客服端的监听端口

创建服务端的DatagramSocket,创建时,定义服务端的监听端口

在服务端定义DatagramPaket对象,封装待发送的数据包

服务端讲数据发送出去

客服端接收数据

15. JDBC访问数据库的基本步骤是什么(手写)?

以查询为例:

步骤一:注册并加载驱动程序

Class.forName(“oracle.jdbc.driver.OracleDriver”)

步骤二:创建连接

Connection conn = DriverManager.getConnection(url,user,password);

步骤三:创建sql语句对象

Statement st = conn.createStatement()

步骤四:提交sql语句

String sql = “select * from tablename”;

ResultSet rs = st.executeQuery(sql);

步骤五:显示结果

While(rs.next()){

}

步骤六:关闭连接

Rs.close();

St.close();

Conn.close();

16. 说说preparedStatement和Statement的区别

  1. 提高效率,数据库系统只编译一次sql语句。而通过statement的sql语句每次数据库系统都会编译。

  2. 防范sql注入攻击

17. 说说事务的概念,在JDBC编程中处理事务的步骤。

1):事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。

  1. JDBC API中使用事务处理步骤: a. 用false作为参数调用setAutoCommit方法; b. 执行一或多个关于数据库的操作; c. 调用commit方法完成改变; d. 恢复上次提交后的改变,调用rollback()方法

18. 数据库连接池的原理。为什么要使用连接池。

数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。为了解决资源的频繁分配,释放所造成的问题,提供高效率的连接分配,实现连接的高效安全避免了数据库频繁建立,关闭的开销

19. servlet和jsp有什么关系?

1;jsp从本质上讲就是一个servlet

2;Jsp通过编译后,会生成.java 文件,它extends与HttpJspBase.

20. 编写一个servlet的步骤。

public calss MyServlet extends HttpServlet(){

public void init(){};

public void destroy(){};

public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServlerException,IOException{};

}

web.xml中配置—-

</>

</>

</>

/x</>

31.HttpservletResponse的sendError方法的作用

向客户端发送一个错误的HTTP状态码

22.什么情况下使用URL重写

当cookie被禁用后,可以通过URL重写将sessionid附加在URL后发送.

好处:

1.缩短url,隐藏实际路径提高安全性

2 易于用户记忆和键入。

3 易于被搜索引擎收录

其中详细如下

1.通过URL重写,把动态地址转换成更容易被搜索引擎收录的形式-静态页面地址,是一种对搜索引擎友好的方法。google虽然可以抓取动态页面,但是对动态页面的评分一般低于静态页面。所以,对大量信息发布的网站,把网站地址改变成静态的绝对是值得的。

2.如果网站改版或目录结构更改时,很多页面的链接可能会发生变化,许多搜索引擎已索引的页面及用户的历史收藏可能会成为死链。使用URL重写技术,则由于可以构建虚拟的网站目录和结构,可有效的防止因改版而使搜索引擎已索引的页面无法访问的问题,在信息量相同的情况下,反而会增加可索引的页面数量。如:以前可能会通过http://www.xxx.com/news/detail.asp?id=2436访问某个页面,重写后该页面的网址可能会变成 http://www.xxx.com/news/detail/2436.html(甚至可以不用扩展名),以这两种形式的网址访问的真实页面仍然是 http://www.xxx.com/news/detail.asp?id=2436。

3.使用URL重写,通过URL到URL、URL到文件名,甚至文件名到文件名的转换,为网站建立了一种新的层次清晰、紧凑简洁的目录结构,隐藏了真实的目录和文件。同时服务器可根据请求中诸如浏览器类型、源IP地址等特征来决定最终提交给客户的内容,或限制某个列表中主机对WEB服务器的访问,极大地提高了网站的安全性。

4.直接生成静态页面虽然能提高访问速度,但由于该静态页面一般是在信息发布时生成的,会出现页面上的其他信息无法更新的问题,除非以后重新生成所有内容页面(重新生成应该是很耗费资源的)。而通过URL重写技术,尽管是以静态网址发出请求,但通过正则表达式匹配后,对应的仍然是动态网页,因此不存在数据更新的问题。

23.doGet和doPost在什么时候调用?区别?

方法GET和HEAD应该被所有的通用WEB服务器支持,其他所有方法的实现是可选的。GET方法取回由Request-URI标识的信息。HEAD方法也是取回由Request-URI标识的信息,只是可以在响应时,不返回消息体。POST方法可以请求服务器接收包含在请求中的实体信息,可以用于提交表单,向新闻组、BBS、邮件群组和数据库发送消息。

get和post提交的数据量是不一样的.

get好像最多只能在url后跟2K 因为get只能发送一个byte的请求

而post则没有限制

建议用Get方法提交数据时,字节大小不要超过1300,也就是1.3KB。超过这个大小就需用POST方法了

24.response对象的作用

setContentType设置内容格式 如AJAX时response.setContentType(“text/xml;charset=gbk”)

setHeader设置响应头 response.setHeader(“Cache-Control”,”no-cache”)禁用页面缓存

sendError 发送一个错误的HTTP状态码

sendRedirect 重定向

25.jsp中import指令的作用

导入需要引用的类

26 文件上传的步骤与原理

首先

表示这个表单用post提交的是 二进制文件.

这种方式提交的话,在serlvet中的request.getparamer(“”);是得不到内容的.必须用 getIntputStream()来得到字节输入流

通过字节输入流得到3部分:1,分界符.2,头(普通表单域,文件上传域).3,消息体(普通表单域的内容,文件上传域的内容).

27.ajax的步骤与原理

1,创建一个XmlHttpRequest对象.

2,调用open方法 (准备发起请求).

结尾

正式学习前端大概 3 年多了,很早就想整理这个书单了,因为常常会有朋友问,前端该如何学习,学习前端该看哪些书,我就讲讲我学习的道路中看的一些书,虽然整理的书不多,但是每一本都是那种看一本就秒不绝口的感觉。

以下大部分是我看过的,或者说身边的人推荐的书籍,每一本我都有些相关的推荐语,如果你有看到更好的书欢迎推荐呀。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

概 3 年多了,很早就想整理这个书单了,因为常常会有朋友问,前端该如何学习,学习前端该看哪些书,我就讲讲我学习的道路中看的一些书,虽然整理的书不多,但是每一本都是那种看一本就秒不绝口的感觉。

以下大部分是我看过的,或者说身边的人推荐的书籍,每一本我都有些相关的推荐语,如果你有看到更好的书欢迎推荐呀。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

前端学习书籍导图-1

  • 15
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端工程化相关面试题大全及答案如下: 1. 什么是前端工程化? 前端工程化是指利用软件工程的技术和方法,对前端开发中的流程、工具、框架、规范等方面进行优化和改进,提高前端开发效率、质量和可维护性的过程。 2. 前端开发中常用的自动化构建工具有哪些?它们有什么区别? 常用的自动化构建工具有Grunt、Gulp、Webpack和Rollup等。它们的主要区别在于构建方式、插件生态和适用场景等方面。Grunt和Gulp主要基于任务(Task)进行构建,Webpack和Rollup则更关注模块化打包和代码分割等方面。 3. 什么是模块化开发?CommonJS和ES6模块化有什么区别? 模块化开发是指将一个复杂的系统或程序按功能或特性拆分为若干个相对独立的模块进行开发和维护。CommonJS是一种模块化规范,适用于后端Node.js开发,采用同步的方式加载模块。ES6模块化则是ES6标准中新增的模块化规范,支持异步加载和静态编译优化等特性。 4. 什么是Webpack?它的主要功能是什么? Webpack是一个模块化打包工具,主要用于处理前端资源文件,如JS、CSS、图片等。它的主要功能包括模块化打包、代码分割、静态资源管理、构建优化等。 5. 什么是前端路由?它有哪些优缺点?常用的前端路由库有哪些? 前端路由是指通过改变浏览器URL地址,实现前端页面之间的跳转和切换的技术。它的优点包括减少页面刷新、提升用户体验、降低服务器压力等,缺点包括初始化较慢、SEO不友好等。常用的前端路由库包括Vue Router、React Router等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值