J2EE复习题

第一章

1、请介绍一下Tomcat服务器。     

       Tomcat是Apache基金会下的一个开源项目,是轻量级的Web应用服务器

       它开源、免费,被许多中小型企业布署并发量不高的一些应用场景。

       它支持的协议比较多,主要实现了Web的容器

       Tomcat对静态资源解析效率不如Apache,一般tomcat服务器会和Apache或nginx进行搭配,Tomcat负责动态资源的解析,Apache或nginx负责静态资源的解析。

2、Tomcat服务器目录构成及作用

       bin:指令目录,用来保存tomcat的指令

       conf:配置目录,用来保存tomcat的一些配置文件。

       lib:库文件目录,用来保存.jar的一些库。

       logs:用来保存tomcat在运行过程中产生的一些日志文件。

       webapps:Web工程发布目录。

      

3、Tomcat安装过程

       需要指定jre路径,这个路径主要指定了jdk运行库,这个库有编译器和解释器。

       指定Tomcat服务名称和端口号、管理员账号

4、如何修改Tomcat的默认端口?

       在conf目录的server.xml文件中,找到<Connector>元素的port属性,修改属性值为自己想要的端口号,然后保存文件,重启tomcat即可。

5、Tomcat集成Idea过程

       首先在Idea中创建tomcat服务器。

       指定tomcat的home目录。

       在employment选项卡中发布Web工程至tomcat。

6、说说B/S架构特点

       B/S架构是基于浏览器和服务器的架构,客户端通过浏览器依托网络来访问服务器端。

       特点:Web应用布署在服务器端,客户端不需要布署任何应用程序,B/S架构面向互联网用户。采用集中式部署

       该架构的优势是可以服务于更多的互联网用户,维护布署只需要布署服务器端即可

       不足是对网络依赖较大,对服务器的要求高容易受到网络安全等因素的影响

7、说说C/S架构特点

       C/S架构是基于客户端和服务器端的架构。

       特点:C/S架构需要单独的客户端软件,客户端主要负责业务逻辑的处理,大部分业务主要布署在客户端,服务器端需要做数据的存盘。

              C/S架构面向的群体比较固定,对客户端的主机性能有最低要求,数据传输安全,受网络影响较小。C/S架构升级的时候需要同时升级客户端和服务器端

      

8、说说什么是JSP

       JSP(Java Server Page)是运行在服务器端的一种动态网页技术,有独立的语法,依赖于Tomcat等Web服务器的运行环境。

      

9、描述一下JSP运行的过程

       .jsp->Web容器编译->.java源文件->JVM编译->.class文件->JVM解释器->.html文件

10、说说JSP运行过程中常见的错误,你的解决方法。

       404:请求的资源不存在。检查访问的资源在服务器上是否存在

       500:服务器异常,检查业务代码是否编写错误。

       503:服务器访问异常,检查服务器运行内存。

11、Web项目发布的格式是什么

       .war

12、webapps目录的作用是什么

       .war发布至webapps目录下,webapps目录:布署项目的目录

13、Tomcat默认的端口号是多少,如果修改成80是否可以,说明原因

       Tomcat默认端口号是8080

       不能修改成80,原因:浏览器的默认端口是80,80端口号已经被浏览器所占用,同一服务器中不能端口重叠,端口重叠会有冲突。

第二章

1、页面元素有哪些,如何使用一个表达式。

       <%!%>

       <%%>

       <%=%>

使用一个表达式:

       <%=a%>

       <%=a+b%>

       <%=getName()%>

2、如何在页面引入后台Java类,并调用Java类中的方法,分别有哪些步骤。

       <%@page import=””%>

       <% 创建类的实例 new%>

       <% 实例名称.方法 %>

3、如何设置JSP页面的编码。

       <%@ page contentType = "text/html;charset=UTF-8"%>

4、page指令中有哪些常用的属性,分别有什么含义?

       contentType:用来设置页面的内容格式和编码方式

       import:用来在当前页面中导入指定的包

       language:指定当前页面所使用的脚本语言

       session=true:在当前页面启用session

       extends:表示当前页面可以继承哪些类、含有什么包

5、<%@include>指令中有哪些属性

       file= "URL",指定当前页面所包含的资源路径

6、静态引入一段代码在当前页面中如何实现。

       在需要引入的位置通过<%@ include file="URL"%>指令,URL指定被包含资源的路径。

7、说说<jsp:forward>如何实现页面跳转。

       在当前跳转页面使用<jsp:forward page="URL">实现,URL表示要跳转的页面路径。

8、<jsp:param>含义是什么,如何使用?

       动作指令的参数指令,一般和另外两个指令forward和include一起用,主要是在不同页面之间传递参数。

9、<jsp:include>与<%include %>有什么区别

       区别:

              <jsp:include>动作指令,用来进行动态内容包含,被包含的页面有更新会通知当前Servlet进行动态加载。更多包含完整的页面,生成多个Servlet,可以传递参数

              <%include %>元素指令,静态包含,被包含的内容主要重用不会更新,一般用来包含程序片段代码标签、重用的文本内容等,生成一个Servlet,不能传递参数

第三章

1、介绍一下request对象。

       request对象表示的是一个请求对象,由tomcat服务器来生成。

       该对象主要封装了客户端的信息,该信息主要分为请求行、请求头和请求体。

2、介绍一下response对象。

       response主要表示响应对象。是服务器用来响应客户端的对象,由服务器来创建。该响应对象的信息包含有

       响应行、响应头和响应体。

3、request对象中的常用方法有哪些,说出5个。       

       request.getMethod() ; 返回请求提交的方式

       request.getAttribute();返回请求对象中属性所对应的值。

       request.setAttribute();设置请求对象中的属性

request.getHeader():返回请求头所对应的值。

       request.getCookies();返回所有的Cookie

       request.getParameter();返回指定参数名称的参数值。

request.getSession();返回当前session对象。

request.getHostName();返回主机名称

      

4、说说Http协议的作用

Http协议又称超文本传输协议,主要是服务器端和客户端进行数据传输的一种通讯协议。该协议的特点主要有:

无状态、明文传输、快速、灵活

【了解】

https安全超文本协议

增加了SSL安全套接字,需要CA认证,在传输层增加了加密、身份验证,防截获和篡改。

加密

身份认证,服务器出示官方颁发人数字证书,客户端验证真伪防止冒充

保证数据完整性,通过消息认证码(MAC)来保护数据完整性,防篡改。

5、请求行、请求头、请求体中分别包含哪些数据。

       请求行:包含有请求的提交方式、所使用的协议的版本、服务器的url路径、GET HTTP1.2 服务器资源

       请求头:主要是客户端的信息,含客户端的编码方式、浏览器的类型、浏览器所使用的语言库、连接的状态、浏览器是否支持缓存

       请求体:用户表单数据

6、请求get方法与post方法有什么区别?

       参数:get在请求行提交,post参数是在请求体

       安全性:get方法会暴露提交的数据,post方法不会,所以一般对敏感数据的提交用post方式。

       数据大小:GET有数据大小有限制4KB,POST参数在请求体中,理论没有限制。

       缓存:GET浏览器会缓存,POST浏览器不会缓存

       发送次数:GET 1次,POST分2次发。

7、说说session对象的使用

       创建在服务器上的对象,表示客户端的会话对象,是服务器端用来记录客户端的信息的。

每个Session对象,都与唯一的一个客户端对应。一般通过Session来记录当前客户端的信息,实现服务器与客户端的通讯机制。

              session.setAttribute(String atrr,Object value);

              session.getAttribute(String atrr);获取session中指定属性所对应的对象。

8、request.setAttribute()方法有什么作用?如何使用?

       用来在request请求周期内共享数据。先通过request.setAttribute("artt",值)设置request对象的属性,

       然后通过request.getAttribute("artt");返回request对象中属性所对应的值。

9、response响应行、响应头、响应体主要包含哪些数据

       响应行包含有响应状态码、状态码的描述以及响应状态说明

       响应头主要包含有连接的状态、响应的格式编码、响应的时间

       响应体主要包含响应的内容(主要是静态标签)。

10、response对象如何设置响应的格式。

              response.setContentType("text/html;charset=UTF-8");

11、request实现转发如何实现?

    request.getRequestDispatcher("success.jsp").forward(requeset,response);

12、request.getReqeustDispatcher("success.jsp").forward(request,response)与response.sendRedirect("success.jsp")的区别

前者表示请求的连续转发,是一个请求;后者是响应的重新定向,是两式请求。

前者转发时地址栏不会变化,后者重新定向时,地址栏会改成重新定向的地址。

前者可以在请求对象中共享数据,后者因为是两式请求,不能在请求对象中共享数据。

第四章

1、会话跟踪有哪几种方式可以实现。

       URL重写

       隐藏表单域

       cookie

       session

      

2、从数据安全、数据长度介绍一下Cookie对象 

       数据安全:cookie数据以文本的形式保存在本地,是一个非安全性的会话跟踪方式。会存在数据泄密的可能。

       数据长度:cookie的存储的数据有数量的长度限制,每个cookie存储的数据长度为4kb

3、Cookie如何实现数据保存,Cookie保存的数据格式是什么?

       3.1、 Cookie c = new Cookie(cname,cvalue)

       3.2、通过response对象,将cookie写入至客户端磁盘。

              response.addCookie(c);

       格式是:以文本的形式保存在客户端。

4、Cookie是否有存活周期,如何设置存活时间。

       有存活周期,默认的存活周期与session相同。

       如何设置:cookie.setMaxAge()           (单位是秒)

5、说说Session的作用

       创建在服务器上的对象,用来表示会话对象,是服务器用来记录客户端的信息,实现会话跟踪的一种机制。

6、Session与Cookie的区别

       1)、session 在服务器端、Cookie在客户端。

       2)、Cookie文本数据; session数据在服务器内存中。

       3)、Cookie数据有长度限制,Session没有限制。

       4)、Cookie会有安全性问题 ,Session没有。

       5)、Session主要占用服务资源,会存在性能开销问题 , Cookie没有。

      

7、Session是否可以手工销毁,如何销毁。

              可以。session.invalidate()

8、Session如何共享数据,Session共享数据的范围是什么? 

       通过session.setAttribute("atrr",值) 设置,通过getAttribute("atrr")来获取数据。

       同一浏览器中,不同的页面都 可以共享到Session中的数据。

9、Session的数据保存在客户端还是服务器端,说明原因?

       保存在服务器端,因为每次客户端第一次访问服务器端时,服务器端都会创建该客户端的session对象

10、session.setAttribute()方法有什么作用?与request中的.setAttribute()区别是什么?

       设置session域中的属性。区别:session的域的属性范围比request设置的属性范围要大。

第五章

1、说说什么是Servlet   

Servlet是使用java语言开发的一个服务器端的技术,具有独立于平台和协议的特性。主要用来处理并响应客户端的请求。

2、Servlet中HttpServlet的作用 

HttpServlet类是实现了Servlet接口的一个抽象类,主要可以接收并处理http协议的请求。该类是一个抽象类。一般通过从该类中派生出子类来生成Servlet类。通过该类派生的方式可以提高Servlet的开发效率,从该类中派生出子类后,一般会重写该类的doGet()或doPost()方法来处理请求。

3、Servlet的doGet方法与doPost方法的区别?

doGet()主要用来处理以get方式发送的请求

doPost()主要用来处理以post方式发送的请求

4、Service方法的作用?

是Servlet中的核心方法,主要用来处理客户端发送的请求。

5、Servlet中init方法会调用几次,什么时候调用?

被调用一次。当Servlet实例被创建后,会调用init方法对该Servlet实例进行初始化。一般在请求抵达Servlet之前被调用。

6、说说Servlet生命周期?

主要是由三个方法:

init():在Servlet实例被创建后,执行初始化的时候被调用

service():在Servlet服务周期内会被调用

destroy():当Servlet生命周期消亡时,该方法负责释放Servlet所持有的一些系统资源

7、Servlet中如何获取客户端参数

       通过request.getParameter("参数名称") 来获取客户端提交的参数,所对应的参数值。

8、Servlet如何配置和访问。

       配置:在类的上方通过@WebServlet注解属性进行配置,配置时指定name和url-patterns属性。

       访问:访问时通过请求@WebServlet注解属性中所指定url-patterns的地址。

9、Servlet中如何设置参数编码解决乱码?

       request.setCharacterEncoding("UTF-8")

      

第六章

1、JDBC访问数据库的基本步骤包括:哪五步:

       1)、注册驱动类  Class.forName()

       2)、创建连接  DriverMananger.getConnection()

       3)、创建Statement对象。connection.createStatement()

       4)、发送SQL语句,并处理结果。statement.execute(),statement.executeQuery()

       5)、关闭相关对象。    resultset.close()  , statement.close(),connection.close()

2、JDBC中,用于表示预编译的SQL语句的接口是__PreparedStatement接口______。

3、JDBC中,用于描述ResultSet的元数据(如列数、列名等)的接口是____ResultSetMetaData接口____。

4、在JDBC中,通过__connection.close()______方法来关闭数据库连接。

5、 Statement.execute()   Statement.executeQuery()   executeUpdate() 三个方法区别

       Statement.execute()可以用来发送所有的sql语句,发送查询语句时返回值为True,发送非查询时返回False。

       Statement.executeQuery()主要用来发送查询语句,该方法的返回类型为ResultSet类型

       executeUpdate()方法主要用来发送DML语句,该方法的返回值类型为int类型。

6、ResultSet中的next()方法有什么作用

     主要用来判断当前结果集中是否存在下一行数据,如果存在next()方法,则返回True;如果不存在next()方法,返回False。

7、预编译对象与Statement有什么区别

       PreparedStatement在发送语句时分两步,第一步会对sql语句进行编译,第二步再发送,预编译效率更高。

       预编译会对sql语句发送之前进行安全性检查。相较于Statment可以有效防止sql的注入

       预编译对象采用动态sql语句,支持批处理功能。

8、ResultSet如何实现按数据类型和按字段标识名称访问数据。

              ResultSet通过getXXX()  方法来访问数据,XXX表示数据类型,针对数据库表中的不同类型,XXX采用对应的类型。

              ResultSet通过getXXX(String colName) colName表示字段标识,通过标识来获取该字段的数据。 

9、PreparedStatement对象中的?表示什么 

       ?用来表示SQL语句中的占位符,用来给SQL语句赋参数。

10、ResultSet获取float类型数据应该采用______ResultSet.getFloat()________方法来获取。

第七章

1、说说MVC分别表示什么,如何协同。

       javabean和dao组成

M表示模型层,业务逻辑层,实现具体业务逻辑处理

V表示视图层,用来与用户进行交互,用来接收用户的输入和响应。

C表示控制层,用来接收并处理View层发送的请求。负责协调View层与业务逻辑层。

2、列举出View层的技术。

       JSTL、EL、html、 JSP、css、javascript

3、描述一下JavaBean的特征,说说JavaBean属于那一层。

       3.1、私有属性

       3.2、提供了公共的setter/getter方法

        属于模型层

第八章

1、EL表达式的语法  

       ${表达式}

补充:

       pageContext、request\session\application

${pageScope.}    ${requestScope.}    ${sessionScope.}    ${applicationScope.}

2、JSTL如何引入 

       2.1 、添加JSTL依赖包。

       2.2 、通过taglib指令,在当前页面引入指定的命名空间。

       2.3 、通过不同标签在页面使用

3、迭代标签如何使用

       <c:forEach items =""  var="">

              循环迭代输出体

       </c:forEach>

items :表示要迭代输出的对象。

var :表示正在迭代的对象。

第九章

1、说说过滤器的作用

       过滤器属于Web应用的三大核心之一,过滤器主要实现对请求进行前置过滤和对响应进行“后置”过滤,可以实现如权限验证、参数校验,日志生成等功能。

2、过滤器实现哪个接口

       实现了Filter接口

3、过滤器执行过滤是哪个方法

       doFilter()

4、过滤器的生命周期?

       init():初始化阶段,主要用来对过滤器进行参数初始化。

       doFilter():执行过滤阶段,主要用来实现过滤的业务逻辑。

       destroy():销毁阶段,主要用来对过滤器的资源进行释放。

5、说说FilterChain接口的作用,什么时候执行。

       主要表示过滤器链,它负责将请求从一个过滤器转移到另一个过滤器,直至抵达servlet。

       在当前过滤器中,需要对请求进行放行时,使用FilterChain.doFilter方法,将请求转移到另外一个过滤器上时执行。

6、FIlter如何配置?

       在过滤类的上方通过@WebFilter属性进行配置,并通过url-patterns属性对过滤的映射入口进行配置。

  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值