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”)的角色。