我要投稿 投诉建议

java面试笔试题 WEB

时间:2023-02-16 15:30:58 面试试题 我要投稿
  • 相关推荐

java面试笔试题 (WEB)

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

java面试笔试题 (WEB)

  一共有9个内置对象

  pageContext javax.servlet.jsp.pageContext

  request javax.servlet.http.HttpServletRequest

  response javax.servlet.http.HttpServletResponse

  session javax.servlet.http.HttpSession

  application javax.servlet.ServletContext àthis.getServletContext()

  config javax.serlvet.ServletConfig

  exception java.lang.Throwable

  page java.lang.Object

  out javax.servlet.jsp.JspWriter

  作用:

  1、pageContext 表示页容器 àEL表达式、 标签 、上传

  2、request 服务器端取得客户端的信息:头信息 、Cookie 、请求参数 ,最大用处在MVC设计模式上

  3、response 服务器端回应客户端信息:Cookie、重定向

  4、session 表示每一个用户,用于登录验证上

  5、application 表示整个服务器

  6、config 取得初始化参数,初始化参数在web.xml文件中配置

  7、exception 表示的是错误页的处理操作

  8、page 如同this一样,代表整个jsp页面自身

  9、out 输出 ,但是尽量使用表达式输出

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

  jsp共有以下6中基本动作

  :在页面被请求的时候包含一个文件

  :寻找或者实例化一个javaBean

  :设置javaBean的属性,通过反射调用方法

  :取得某个javaBean的属性

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

  :插入Applet程序的代码

  :用于传参数,和forward一起使用

  3. jsp 中动态INCLUDE和静态INCLUDE 的区别?

  动态INCLUDE 用动作实现:

   如果包含的是动态页,则先编译之后再进行处理,它总是会检查所包含文件中的变化,并且可以带参数

  静态INCLUDE用<%@ include %>伪码实现:

  <%@ include file=”include.jsp” %> 直接将内容先包含后处理,它不会检查所包含的文件的变化,适用于包含静态页面

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

  客户端跳转:跳转之后地址栏不改变,执行完页面后不会转向还会回来,相当于函数调用,并且可以传递request属性,实际上是对RequestDispatcher接口的封装

  服务器端跳转:response.sendRedirect(),跳转之后地址栏改变,完全转向新的页面,不会再回来,相当于go to 语句。

  5. 请总结一下WEB开发中的会话跟踪实现

  1、 Session也是最常用的一种

  2、 Cookie

  3、 地址重写

  4、 隐藏域

  6. 在Web开发中需要处理HTML标记时,应做什么样的处理,要筛选哪些字符

  (< > & “ ‘ 空格 乘号 除号 .........)

  因为以上的标记都属于HTML范畴的内容,所以必须进行转义操作

  显示效果 符号说明 实体名表示 实体编号表示

  空格符    

  < 小于号 < <

  > 大于号 > >

  & 符号& & &

  “ 双引号 " "

  C 版权符号 © &169;

  R 注册商标 ® ®

  × 乘号 × ×

  ÷ 除号 ÷ ÷

  ‘ 单引号 ´

  7. 说明Jsp中errorpage的作用域,应用范围

  表示错误页的操作,在一般的站点中,只要一个程序出现了错误,就是产生了异常,则可以统一跳转到一个页面上进行显示,那么这种操作就属于错误页的处理,但是简单的错误页基本上都是在Jsp的开发中使用的。要想进行错误页的设置,需要满足以下两个条件:

  1. 在错误能够处理的页上的page指令中,增加:isErrorpage=”true”,表示可以处理错误

  2. 在每一个页面指定errorpage,执行isErrorpage为true的页面。

  如果现在希望能够配置一种全局的错误处理的话,则可以在Web.xml文件中进行配置

  

  404

  /errors.jsp

  

  

  java.lang.NullpointerException

  /errors.jsp

  

  一旦出现错误之后,会自动跳转到指定的页面,但是这样的跳转,永远都是属于服务器端跳转

  8. 写一段JDBC连接Oracle的程序,并实现数据查询。

  package com.jdbc;

  //import java.sql.*;

  import java.sql.Connection;

  import java.sql.DriverManager;

  import java.sql.preparedStatement;

  import java.sql.ResultSet;

  import java.sql.SQLException;

  import java.sql.Statement;

  public class TestJdbc {

  public static void main(String[] args) {

  String url = "jdbc:oracle:thin:@localhost:1521:orcl";

  String username = "lanlan"; //scott

  String password = "123456"; //tiger

  String sql = "select * from users t";

  try {

  Class.forName("oracle.jdbc.driver.OracleDriver");

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

  // preparedStatement pstmt = conn.prepareStatement(sql);

  // ResultSet rs = pstmt.executeQuery();

  Statement stmt = conn.createStatement();

  ResultSet rs = stmt.executeQuery(sql);

  while (rs.next()) {

  System.out.println(rs.getInt("id"));

  System.out.println(rs.getString("username"));

  System.out.println(rs.getString("password"));

  }

  rs.close();

  stmt.close();

  // pstmt.close();

  conn.close();

  } catch (ClassNotFoundException e) {

  e.printStackTrace();

  } catch (SQLException e) {

  e.printStackTrace();

  }

  }

  }

  9. Class.forName 的作用?为什么要用?

  Class.forName(xxx.xx.xx) 返回的是一个类

  Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段

  10. 简述在JSp中是如何实现分页操作的?

  分页有两种情况:

  真分页:性能高,是基于数据库的操作,只是从数据库中取出部分的数据进行显示,所以性能高,但是可移植性低

  假分页:性能低,是将全部的结果查询出来,之后依靠算法分页,只显示部分数据,因为使用了通用的语法,所以可移植性高

  真分页实现原理:

  1.定义一系列的变量:currentpage(当前页) showResultNumber(每页显示记录数),

  并通过查询求出countResultNumber(总记录数)求出countpage(总页数)

  |- countpage=(countResultNumber-1)/showResultNumber+1

  2.然后根据currentpage 和 showResultNumber到数据库中查询数据

  |- Oracle中用rownumber MySql中用limit()

  3.然后在表单中不断地修改currentpage和showResutlNumber就可以实现分页

  11. 介绍在JSp中如何使用javaBeans

  1. javaBean的格式要求:必须有包、public calss 声明、属性封装、无参的构造函数、setter() 和getter()方法

  2. jsp中导入javaBean:

  使用import导入 如:

  <%@ page import="com.model.User" %>

  使用 导入如:

  

  12. 说一说什么是Servlet 和Servlet的生命周期?

  什么是Servlet:

  Servlet是用Java编写的服务端程序,它与协议和平台无关。Servlet运行于Java-enabled Web Server中。Servlet可以动态地扩展Server的能力,并采用 请求-响应 模式提供Web服务。

  Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。这个过程为:

  1.客户端发送请求至服务器端;

  2.服务器将请求信息发送至Servlet

  3.Servlet生成响应内容并将其传给Server。响应内容动态生成,通常取决于客户端的请求

  4.服务器将响应返回给客户端

  Servlet的生命周期:

  加载

  初始化:(由应用服务器Tomcat创建)

  正常一次,对应 init()方法,有两个 init()方法,其中一个是具有ServletConfig对象,此方法存在则无参不调用,Servlet对象是由应用服务器在第一次使用的时候创建,一个Servlet只有一个Servlet对象存在。也可以通过在web.xml文件中配置在容器启动的时候自动进行初始化操作

  服务:

  服务多次,所有的服务都由service()方法分配,包括 dopost() 和doGet(),分别处理post和get 请求

  销毁:

  正常一次,调用destroy()方法,当重新加载或者关闭应用服务器的时候应用服务器会销毁Servlet对象,如果一个Servlet长时间不使用,也会自动销毁,而当再次使用的时候就必须重新进行初始化的操作

  卸载

  13. Servlet中forward()与sendRedirect()的区别?

  forward()方法是RequestDispatcher接口定义的,而sendRedirect()是response定义的,sendRedirect()是服务器端的跳转,forward()是客户端的跳转

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

  1.面向事件驱动的(JSF)

  2.面向请求驱动的(Struts1.X,Struts2.X,WebWork)

  · MVC: Model 、View 、Controller

  |- Model(模型)JavaBean:业务处理、数据处理

  |- View(视图)JSp:最好不存在scriptlet,可以使用标签消除

  |- Controller(控制器):接受View提交的内容并调用JavaBean,并根据JavaBean的处理结果进行跳转

  ·实现原理:

  所有的JSp将内容提交给Servlet,Servlet接收这些内容并调用相对应的JavaBean进行业务及数据的处理,完成业务的操作流程。Servlet调用的只是接口,并根据这些接口的操作结果将内容交给JSp显示,在显示的时候尽量少出现scriptlet代码。

  15. 简述国际化程序的实现思路?

  ·Locale 、属性文件 、 ResourceBundle

  ·国际化程序的实现,是根据本机的操作系统的语言类型,选择不同的属性文件,所有程序的基本代码一样,但是文字显示不一样,所以将内容作为属性文件出现之后,可以只是显示属性文件中的文字

  16. 描述JSp和Servlet的区别、共同点、各自应用的范围。

  ·区别:先有的Servlet再有的JSp,Servlet是在Java中嵌入HTML代码,而JSp是在HTML代码中嵌入Java代码

  jsp是一种脚本语言,简化了java和Servlet的使用难度,同时扩展了网页动态执行的能力

  jsp仍然没有超出java和Serlvet的范围,不仅jsp页面上可以直接写java代码,而且jsp是先被编译成Servlet之后才实际运行的

  jsp在服务器上执行,将结果输出到客户端显示

  ·共同点:Jsp可以完成的功能Servlet也可以完成,但是对于过滤器、监听器只能由Servlet完成

  ·应用范围:Jsp用于显示,Servlet用于控制

  17. 简述Web.xml文件的作用

  ·属于部署描述符,在整个Java中只要是容器都会存在部署描述符,此部署描述符可以控制整个Web中各个组件的运行状态,也可以配置整个容器的状态, 主要配置程序中的一些基本信息和文件等等:

  如 :

  

  18. 什么情况下调用doGet()和dopost()方法?

  Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用dopost().

  19. 注意内容

  <%@ page language="java" import="java.util.*"

  contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

  <%

  String path = request.getContextpath();

  String basepath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerport() + path + "/";

  %>

  凡是自动生成的代码,都需要注意:

  public static void main(String [] args){}

【java面试笔试题 WEB】相关文章:

Java Web基础笔试题09-26

Java面试题01-22

java面试试题07-19

java面试简答试题09-25

web前端面试题08-08

Java框架面试题07-16

java线程面试试题09-25

java学习:Java面试题和答案07-17

2016高薪Java面试题08-05