JAVA企业面试题精选 Servlet和JSP 11-20

来源:互联网 发布:JavaScript post 编辑:程序博客网 时间:2024/06/04 20:33

2.11.简述GET和POST的区别

参考答案:

  GET和POST的区别如下:
  1.从提交的数据量上来说,get方式会将请求参数及参数值放在请求资源路劲里面,携带的数据大小有限制,不适合提交大量的数据;post方式会将请求参数及参数值放在实体内容里面,理论上没有限制,适合大量数据的提交.
  2.从安全上来讲,post方式相对安全(因为请求参数及值存放在实体内容里面,而get方式会将请求参数及值显示在浏览器地址栏).但是要注意,post方式并没有将数据加密.

2.12.简述什么是重定向

参考答案:

  服务器向浏览器发送一个302状态码及一个Location消息头(该消息头的值是一个地址,称之为重定向地址),浏览器收到后会立即向重定向地址发出请求.

2.13.Servlet是否线程安全的,如何解决?

参考答案:

  Servlet存在线程安全问题.容器收到请求之后,会启动一个线程来来进行相应的处理.
  默认情况下,容器只会为某个Servlet创建一个实例,如果同时有多个请求同时访问某个Servlet则肯定会有多个线程访问同一个Servlet实例.如果这些线程要修改Servlet实例的某个属性,就有可能发生线程安全问题.
  可以使用synchronized对代码加锁来解决Servlet的安全问题.

2.14.简述转发和重定向有什么区别

参考答案:

  转发和重定向的区别有以下几点:
  1.重定向是浏览器发送请求并收到响应以后再次向一个新地址发请求,转发是服务器收到请求后为了完成响应转到一个新的地址.
  2.重定向中有两次请求,不同享数据,转发只产生一次请求,且在组件间共享数据.
  3.重定向后地址栏地址改变,而转发不会.
  4.重定向的新地址可以是任意地址,转发到的新地址必须是同一个应用内的某地址.

2.15.简述什么是转发以及如何实现转发

参考答案:

  转发是一个Web组件(Servlet/JSP)将未完成的处理通过容器转交给另外一个Web组件继续完成.
  可以按照以下三个步骤来实现转发:
  1.绑定数据到request对象,代码如下:

request.setAttribute(String name,Object obj);

  2.获得转发器,代码如下:

RequestDispatcher rd = request.getRequestDispatcher(String uri);

  3.转发,代码如下:

rd.forward(request,response);

2.16.指出/images/123.jpg与images/123.jpg两种写法的区别

参考答案:

  ”/images/123.jpg”是绝对地址,根目录下的images子目录下的123.jpg文件;
  ”images/123.jpg”是相对地址,位置是相对于当前目录而言,指当前目录下images子目录下的123.jpg文件.

2.17.Tomcat服务器的默认端口是什么?怎样修改Tomcat的端口为8009?

参考答案:

  Tomcat服务器的默认端口是8080.修改Tomcat端口的方法如下:
 &esmp;首先,在Tomcat安装根目录下的子文件夹conf中找到文件server.xml;
  然后,将其用无格式的文本编辑器打开,找到下列配置代码:

 <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

  将以上配置代码中的8080更改为8009,即修改了Tomcat的端口为8009.

2.18.以Tomcat为例,描述一个jsp数据请求,到数据返回的过程,该过程中Tomcat内部机制如何实现

参考答案:

  Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选.Tomcat处理一个http请求的过程,假设来自客户的请求为:

http://localhost:8080/wsota/wsota_index.jsp

  对上述请求的执行步骤如下:
  1)请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得;
 &esmp;2)Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应;
  3)Engine获得请求localhost/wsota/wsota_index.jsp,匹配它所拥有的所有虚拟主机Host;
  4)Engine匹配到位名localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机);
  5)localhost Host获得请求/wsota/wsota_index.jsp,匹配它所拥有的所有Context;
&emp; 6)Host匹配到路径为/wsota的Context(如果匹配不到就把该请求交给路径名为”“的Context去处理);
  7)path=”/wsota”的Context获得请求/wsota_index.jsp,在它的mapping table中寻找对应的Servlet;
  8)Context匹配到URL PATTERN为*.jsp的Servlet,对应JSPServlet类;
  9)构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JSPServlet的doGet或doPost方法;
  10)Context把执行完了之后的HttpServletResponse对象返回给Host;
  11)Host把HttpServletResponse对象返回给Engine;
  12)Engine把HttpServletResponse对象返回给Connector;
  13)Connector把HttpServletResponse对象返回给客户浏览器.

2.19.熟悉Tomcat吗?你知道在Tomcat server.xml文件中都配置了哪些内容?

参考答案:

  server.xml文件描述了如何启动Tomcat Server.文件格式如下:

<Server>    <Listener />    <GlobaNamingResources>    </GlobaNamingResources    <Service>        <Connector />        <Engine>            <Logger />            <Realm />               <host>                   <Logger />                   <Context />               </host>        </Engine>    </Service></Server>

  1.<Server>元素:它代表整个容器,是Tomcat实例的顶层元素.由org.apache.catalina.Server接口来定义.它包含一个<Service>元素.并且它不能做为任何元素的子元素.

  2.<Service>元素:一个”Service”是一个或多个公用一个单独”Container”(容器)的”Connectors”组合(因此,应用程序在容器中可见).通常,这个容器是一个”Engine”(引擎),但这不是必须的.该元素由org.apache.catalina.Service接口定义,它包含一个元素,以及一个或多个<Connector>,这些Connector元素共享用同一个Engine元素

  3.<Connector>元素:由Connector接口定义.<Connector>元素代表与客户程序实际交互的给件,它负责接收客户请求,以及向客户返回响应结果. 请看下列配置代码:

<Connector port="8080" maxThread="50" minSpareThreads="25" maxSpareThread="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" /><Connection port="8009" enableLookups="false" redirectPort="8443" debug="0" protocol="AJP/1.3" />

  上述代码中,第一个Connector元素定义了一个HTTP Connector,它通过8080端口接收HTTP请求;第二个Connector元素定义了一个JD Connector,它通过8009端口接收由其它服务器转发过来的请求.

  4.<Engine>元素:每个Service元素只能有一个Engine元素.处理在同一个中所有元素接收到的客户请求.由org.apahce.catalina.Engine接口定义.
  一个“Engine”(引擎)代表处理每个请求的入口点(在Catalina内)。这个Tomcat的标准独立引擎实现分析包含在请求中的HTTP头信息,并将请求传送到适当的主机或虚拟主机上.

  5<Host>元素:它由Host接口定义.一个Engine元素可以包含多个<Host>元素.每个<Host>的元素定义了一个虚拟主机.它包含了一个或多个Web应用.

  6<Context>元素:它由Context接口定义.是使用最频繁的元素.每个<Context>元素代表了运行在虚拟主机上的单个Web应用.一个<Host>可以包含多个<Context>元素.每个web应用有唯一的一个相对应的Context代表web应用自身.servlet容器为第一个web应用创建一个 Context,对应于一个Web App.

2.20.CORBA是什么?用途是什么?

参考答案:

  CORBA标准是公共对象请求代理结构(Common Object Request BrokerArchitecture),由对象管理组织(Object Management Group,缩写为OMG)标准化.它的组成是接口定义语言(IDL)语言标定(binding:也译为联编)和允许应用程序间互操作的协议.其目的为:用不同的程序设计预言书写在不同的进程中运行,为不同的操作系统开发.

原创粉丝点击