web后台部分面试题

目录

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

​2.JSP 的常用指令

3.JSP 中动态 INCLUDE 与静态 INCLUDEE 的区别

4.四种会话跟踪技术作用域

5.HTTP 请求的 GET 与 POST 方式的区别

6.解释一下什么是 servlet

7.说一说 Servlet 的生命周期

8.Servlet 的基本架构

9.什么情况下调用 doGet()和 doPost()

10.Request 对象的主要方法

11.forward 和 redirect 的区别

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

13.web.xml 文件中可以配置哪些内容

14.session 和cookie 有什么区别?

15.讲一下什么是 Spring

16.Spring 的 IOC 和 AOP 机制

17.依赖注入的方式有几种,各是什么

18.解释 Spring 支持的几种 bean 的作用域

19.Spring 框架中都用到了哪些设计模式


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

2.JSP 的常用指令

(1)page 指令: 属性最多的指令(实际开发中 page 指令默认),属性最多的一个指令,根据不同的属性,指导整个页面特性 格式:<%@ page 属性名 1= "属性值 1" 属性名 2= "属性值 2" ...%>

常用属性如下:

language:jsp 脚本中可以嵌入的语言种类,这个没用,写与不写一样的;

pageEncoding:当前 jsp 文件的本身编码---内部可以包含 contentType

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

import:导入 java 的包 errorPage:当前页面出错后跳转到哪个页面

isErrorPage:当前页面是一个处理错误的页面

(2)include 指令: 页面包含(静态包含)指令,可以将一个 jsp 页面包含到另一个 jsp 页面中

格式: <%@  include file="被包含的文件地址"%>

(3)taglib 指令: 在 jsp 页面中引入标签库(jstl 标签库、struts2 标签库)

格式:<%@ taglib uri="标签库地址" prefix=前缀">

3.JSP 中动态 INCLUDE 与静态 INCLUDEE 的区别

   动态 INCLUDE 用 jsp:include 动作实现, <jsp:include page="included.jsp" flush="true"/>它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数
        静态 INCLUDE 用 include 伪码实现,不会检查所含文件的变化,适用于包含静态页面 <%@ include file="included.html" %>

4.四种会话跟踪技术作用域

(1)page:一个页面

(2)request::一次请求

(3)session:一次会话

(4)application:服务器从启动到停止

5.HTTP 请求的 GET 与 POST 方式的区别

1. get 是从服务器上获取数据,post 是向服务器传送数据。

2. 请求的时候参数的位置有区别:get 的参数是拼接在 url 后面,用户在浏览器地址栏可以看到;post 是放在 http 包的包体中

3. 能提交的数据有区别,get 方式能提交的数据只能是文本,且大小不超过 1024 个字节,而 post 不仅可以提交文本还有二进制文件。 所以说想上传文件的话,那我们就需要使用 post 请求方式

4. get 安全性非常低,post 安全性较高;比如说用户注册,不能把用户提交的注册信息用 get 的方式,会把用户的注册信息都显示在 Url 上,是不安全的。

6.解释一下什么是 servlet

Servlet 是服务器端的程序,动态生成 html 页面发送到客户端,但是这样程序里会有很多 out.println(),java 与 html 语言混在一起很
乱,所以后来 sun 公司推出了 JSP.其实 JSP 就是 Servlet,每次运行的时候 JSP 都首先被编译成 servlet 文件,然后再被编译成.class 文件运行。有了 jsp,在 MVC 项目中 servlet 不再负责动态生成页面,转而去负责控制程序逻辑的作用,控制 jsp 与 javabean 之间的流转。
 

7.说一说 Servlet 的生命周期

1.初始化:Web 容器加载 servlet,调用 init()方法

2.处理请求:当请求到达时,运行其 service()方法。service()自动派遣运行与请求相对应的 doXXX(doGet 或者 doPost)方法。

 3.销毁:服务结束,web 容器会调用 servlet 的 distroy()方法销毁 servlet。
 

8.Servlet 的基本架构

public class ServletName extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ 
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 }
}

9.什么情况下调用 doGet()和 doPost()

Jsp 页面中的 FORM 标签里的 method 属性为 get 时调用 doGet(),为 post 时调用 doPost()。

10.Request 对象的主要方法

        setAttribute(String name,Object):设置名字为 name 的 request 的参数值
        getAttribute(String name):返回由 name 指定的属性值
        getAttributeNames():返回 request 对象所有属性的名字集合,结果是一个枚举的实例
        getCookies():返回客户端的所有 Cookie 对象,结果是一个 Cookie 数组
        getCharacterEncoding():返回请求中的字符编码方式
        getContentLength():返回请求的 Body 的长度
        getHeader(String name):获得 HTTP 协议定义的文件头信息
        getHeaders(String name):返回指定名字的 request Header 的所有值,结果是一个枚举的实例
        getHeaderNames():返回所以 request Header 的名字,结果是一个枚举的实例
        getInputStream():返回请求的输入流,用于获得请求中的数据
        getMethod():获得客户端向服务器端传送数据的方法
        getParameter(String name):获得客户端传送给服务器端的有 name 指定的参数值
        getParametervalues(String name):获得有 name 指定的参数的所有值
        getRequestURI():获取发出请求字符串的客户端地址
        getRemoteAddr():获取客户端的 IP 地址
        getSession([Boolean create]):返回和请求相关 Session
        getServerName():获取服务器的名字
 

11.forward 和 redirect 的区别

转发与重定向
(1)从地址栏显示来说
         forward 是服务器请求资源,服务器直接访问目标地址的 URL,把那个 URL 的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址;
         redirect 是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的 URL.

(2)从数据共享来说
 forward:转发页面和转发到的页面可以共享 request 里面的数据.
 redirect:不能共享数据.

(3)从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.

(4)从效率来说
forward:高.
 redirect:低
 

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

MVC 是 Model-View-Controller 的简写。

Model 代表的是应用的业务逻辑(通过 JavaBean,EJB 组件实现)

View 是应用的表示面(由 JSP 页面产生)

Controller 是提供应用的处理过程控制(一般是一个 Servlet)

通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现,这些组件可以进行交互和重用。

13.web.xml 文件中可以配置哪些内容

web.xml 用于配置 Web 应用的相关信息,如:监听器(listener)、过滤器(filter)、 Servlet、相关参数、会话超时时间、安全验 证方式、错误页面.

14.session 和cookie 有什么区别?

1、cookie 数据存放在客户的浏览器上,session 数据放在服务器上。
2、cookie 不是很安全,别人可以分析存放在本地的 COOKIE 并进行 COOKIE 欺骗,考虑到安全应当使用 session。
3、session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用 COOKIE。
 4、单个 cookie 保存的数据不能超过 4K,很多浏览器都限制一个站点最多保存 20 个 cookie。
 

15.讲一下什么是 Spring

Spring 是一个轻量级的 IoC 和 AOP 容器框架。

是为 Java 应用程序提供基础性服务的一套框架,目的是用 于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于 XML 的 配置、基于注解的配置、基于 Java的配置。

16.Spring 的 IOC 和 AOP 机制

主要用到的设计模式有工厂模式和代理模式。

IOC 就是典型的工厂模式,通过 sessionfactory 去注入实例。

AOP 就是典型的代理模式的体现。

spring 的 IOC 容器是 spring 的核心,spring AOP 是 spring 框架的重要组成部分

IOC:控制反转也叫依赖注入。利用了工厂模式

AOP:面向切面编程。

17.依赖注入的方式有几种,各是什么

1.构造器注入

2.setter方法注入 

3.接口注入(侵入性太强,不建议使用)

18.解释 Spring 支持的几种 bean 的作用域

Spring 容器中的 bean 可以分为 5 个范围:

(1) singleton:默认,每个容器中只有一个 bean 的实例,单例的模式由 BeanFactory 自身来维护。
(2) prototype:为每一个 bean 请求提供一个实例。
(3) request:为每一个网络请求创建一个实例,在请求完成以后,bean 会失效并被垃圾回收器回收。
(4) session:与 request 范围类似,确保每个 session 中有一个 bean 的实例,在 session 过期后,bean 会随之失效。
(5) global-session:全局作用域,global-session 和 Portlet 应用相关。当你的应用部署在 Portlet 容器中工作时,它包含很多 portlet。如果你想要声明让所有的 portlet 共用全局的存储变量的话,那么这全局变量需要存储在 global-session 中。全局作用域与 Servlet 中的 session 作用域效果相同
 

19.Spring 框架中都用到了哪些设计模式

(1)工厂模式:BeanFactory 就是简单工厂模式的体现,用来创建对象的实例;
(2)单例模式:Bean 默认为单例模式。
(3)代理模式:Spring 的 AOP 功能用到了 JDK 的动态代理和 CGLIB 字节码生成技术;
(4)模板方法:用来解决代码重复的问题。比如. RestTemplate, JmsTemplate, JpaTemplate。
(5)观察者模式:定义对象键一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知被制动更新,如 Spring 中 listener 的实现--ApplicationListener。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值