JSP企业面试题整理(4)
5-1. 简述Servlet和JSP的关系。

JSP是以另外一种方式实现的Servlet,Servlet是JSP的早期版本,在JSP中,更加注重页面的表现,而在Servlet中则更注重业务逻辑的实现。

因此,当编写的页面显示效果比较复杂时,首选是JSP。或者在开发过程中,HTML代码经常发生变化,而Java代码则相对比较固定时,可以选择JSP。而我们在处理业务逻辑时,首选则是Servlet。

同时,JSP只能处理浏览器的请求,而Servlet则可以处理一个客户端的应用程序请求。因此,Servlet加强了Web服务器的功能。

 

5-2. 简述Servlet的生命周期。(企业笔试题)

Servlet运行机制和Applet类似,Servlet是载服务器端运行的,但是Applet是在客户端运行的。Servlet是javax.servlet包中HttpServlet类的子类,由服务器完成该子类的创建和初始化。

Servlet的生命周期主要由3个过程组成。

1、init()方法:服务器初始化Servlet。

2、service()方法:初始化完毕,Servlet对象调用该方法相应客户的请求。

3、destroy()方法:调用该方法消灭Servlet对象。

其中,init()方法只在Servlet第一次被请求加载的时候被调用一次,当有客户再请求Servlet服务时,Web服务器将启动一个新的线程,在该线程中,调用service方法相应客户的请求。

 

5-3. 简述HttpSession接口的功能和使用方法。(企业笔试题)

这是一个java.servelt.http包中的接口,它封装了会话的概念。定义为:“public interface HttpSession”,可以使用HttpServletRequest对象的getSession()方法来得到这种类型的对象,语法为:“HttpSession session = request.getSession();”。

 

5-5. 编写一个HTML文件,利用Servelt的doPost方法实现Form表单内容的读取。(上机完成)(企业笔试题)

案例名称:使用doGet和doPost方法

程序名称:j5_02.htm

 

<HTML> 
       <BODY> 
       <FORM ACTION="/doget" METHOD="get"> 
       请输入姓名: 
       <INPUT TYPE="TEXT" NAME="myname"><br> 
       您的兴趣: 
       <SELECT NAME="love"> 
       <OPTION value="Sleep">Sleep</OPTION> 
       <OPTION value="Dance">Dance</OPTION> 
       <OPTION value="Travel">Travel</OPTION> 
       </SELECT><br> 
       <INPUT TYPE="SUBMIT" NAME="mysubmit"><br> 
       <INPUT TYPE="RESET" VALUE="重新来过"><br> 
       </FORM> 
       </BODY> 
</HTML> 
  
import java.io.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 
public class j5_03 extends HttpServlet 
{ 
       //重写doPost方法 
       public void doPost(HttpServletRequest req, HttpServletResponse res) 
             throws ServletException, IOException 
       { 
                //首先设置头信息 
                res.setContentType("text/html"); 
                //用 writer方法返回响应数据 
                PrintWriter out = res.getWriter(); 
                out.println("<html><head></head><body>"); 
                out.println("name: " + req.getParameter("myname")); 
                out.println("<br>"); 
                out.println("love: " + req.getParameter("love")); 
                out.println("</body></html>"); 
                out.close(); 
       } 
       public void doGet(HttpServletRequest req, HttpServletResponse res) 
                throws ServletException,IOException{ 
                doPost(req,res); 
       } 
}

6-1 什么是组件?使用组件有什么优点?

现在软件开发都已经转向了基于组件的开发,目前具备代表性的组件技术有微软的COM、COM+,有Sun的JavaBean和EJB(Enterprise Java Bean),另外还有CORBA(Common Object Request Broker Architecture,公共对象请求代理结构)

JavaBean规范将“软件组件”的概念引入到Java编程的领域。组件是自包含的、可重用的软件单元;而JavaBean组件,则可以使用可视的应用程序开发工具,可视地将它们编写到Java程序中。JavaBean规范为Java开发人员提供了一种“组件化”其Java类的方法

 

6-2 编写JavaBean的时候,要注意哪些?

1、如果类的成员变量的名字是xxx,那么为了更改或获取成员变量的值,在类中使用两个方法:

getXxx(),用来获取属性xxx。

setXxx(),用来修改属性xxx。

2、对于boolean类型的成员变量,允许使用is代替get和set。

3、类中方法的访问属性必须是public的。

4、类中如果有构造方法,那么这个构造方法也是public的,并且是无参数的。

6-3 简述JSP的设计模式。(企业笔试题)

JSP设计模式包括两个:(1)Model1,JSP+JavaBean设计模式。(2)Model2,MVC设计模式。

在这种模式中,JSP页面独自响应请求并将处理结果返回客户,所有的数据库操作通过JavaBean来实现。大量地使用这种模式,常会导致在JSP页面中嵌入大量的Java代码,当需要处理的商业逻辑非常复杂时,这种情况就会变得很糟糕。大量的Java代码使得JSP页面变得非常臃肿。前端的页面设计人员稍有不慎,就有可能破坏关系到商业逻辑的代码。

 “MVC”模式即是:“Model-View-Controller”模式。在这种模式中,通过JSP技术来表现页面,通过Servlet技术来完成大量的事务处理工作,实现用户的商业逻辑。

在这种模式中,Servlet用来处理请求的事务,充当了控制器(Controller即“C”)的角色,Servlet负责响应客户对业务逻辑的请求并根据用户的请求行为,决定将哪个JSP页面发送给客户。JSP页面处于表现层,也就是视图(View即“V”)的角色。JavaBean则负责数据的处理,也就是模型(Model即“M”)的角色。