您的位置:首页 > Web前端 > JavaScript

[jsp]jsp复习重点

2012-02-09 23:57 148 查看
一 基础知识汇总

1、JSP网页动态部分包含三种元素,它们是(指令、脚本和动作)。

2、JSP的全称是JavaServer Page。

3、JSP的优点之一是可以使得界面显示和功能逻辑。

4、JSP本质上是对Java的扩展。

5、JSP技术开发的程序架构只能是C/S或B/S。

6、Web应用的三层体系架构中的三层是数据层、业务逻辑层和表示层。

7、JSP引擎和Servlet引擎是系统模块,它们随着Web服务器启动装入内存,而随着Web服务器关闭而释放。

8、客户与Web服务器通信是通过http协议来完成的。

9、Web服务器是一种请求/应答的服务器。

10、指令主要包括page指令、taglib指令和include指令。

11、使用taglib指令可以实现使用自定义的JSP标签。

12、和JavaBean密切相关的三个JSP元素是useBean、getproperty和setproperty。

13、<jsp:plugin>动作元素的主要作用是在客户端中运行一个Bean或显示一个Applet。

15、JSP内置对象共有四种Scope,它们是page、request、session、application。

16、request对象用于获取URL中参数值的方法是getparameter()。

17、表单向JSP提交数据的方式主要有GET和POST。

18、out.println()方法主要作用是向客户端输出换行。

19、实现表单中字段隐藏的方法是<input type=”hidden” name=” “ value=http://blog.soso.com/qz.q/”“>。

20、JDBC的全称是JavaDataBase Connectivity。

22、用来执行executeUpdate方法的对象被称为语句对象。

25、在JSP中使用Javabean可以通过<jsp:usebean>动作元素。

26、如果你只希望你的Javabean在当前页面有效,应该设置scope=”page”。

27、<jsp:setProperty>动作中的value属性具有提供属性值功能。

28、如果你想使用Javabean设计一个网站计数器,那么该bean的scope应当设为application。

29、从本质上讲,Servlet是Java类。

30、JavaBean是为Java语言设计的软件组件模型,具有可重复使用和跨平台的特点。

31、通过JavaBean来封装业务逻辑,进行数据库操作等。从而很好的实现业务逻辑和前后台程序的分离。

32、JavaBean必须是一个公开的类,也就是说JavaBean的类访问权限必须是public的。

33、JavaBean一般将属性设置成私有的,通过使用getXXX()方法和setXXX()方法来进行属性的取得和设置。

34、要想要JSP中调用JavaBean,就需要使用到<jsp:useBean>动作指令,其语法格式是<jsp:useBean id="对象名称" scope="储存范围" class="类名"></jsp:useBean>。

35、JavaBean实例化后的对象储存范围。范围的取值有如下四种,分别是page、request、session和application。

36、JSP中提供了一个<jsp:setProperty>动作指令来设置JavaBean属性,其有如下四种语法格式是

<jsp:setProperty name="实例化对象名"property="*"/>

<jsp:setProperty name="实例化对象名" property="属性名称"/>

<jsp:setProperty name="实例化对象名" property="属性名称" param="参数名称"/>

<jsp:setProperty name="实例化对象名" property="属性名称" value="属性值" />。

 37、Request内置对象用来获得客户端请求参数。

 38、服务器端应用request对象的方法来接受或处理这些信息。后用request对象getParameter方法获得客户端的请求参数。

39、可以通过response对象的sendRedirect方法设置页面重定向,实现页面跳转,

40、JavaBean的应用语言是Java。

41、Language属性主要用来(声明所使用的脚本语言的种类),目前暂时只能使用(Java)语言。

42、 Extends属性用来指定该JSP页面生成的(Servlet继承于哪个父类),设定时必须指定该类的命名,即(包名加类名)。

43、 import属性用来指定导入的(Java包)。

44、 session属性用来指定该JSP页面中是否(可以使用session对象),如果设置为(True),则表示该JSP页面中可以(使用session对象)。

45、使用include指令只有一个属性,只需指定其(file)属性为文件的URL地址。

46、 contentType属性用来(指定该JSP文件的MIME格式),以及(网页编码格式)。

47、JSP基本动作元素包括了6个动作元素,分别是(<jsp:include>)、(<jsp:forward>)、(<jsp:param>)、(<jsp:plugin>)、(<jsp:params>)和(<jsp:fallback>)。

 

二、简答题

1、在“<%!   %>”之间声明的变量和在“<%    %>”之间声明的变量有什么不同?

       答:“<%!”和“%>”之间声明的变量在整个JSP页面内都有效,称为JSP页面的成员变量,成员变量的有效范围与标记符号<%!、%>所在的位置无关。所有用户共享JSP页面的成员变量,因此任何一个用户对JSP页面成员变量操作的结果,都会影响到其他用户。

“<%”和“%>”之间声明的变量称为局部变量,局部变量在JSP页面后继的所有程序片以及表达式部分内都有效。运行在不同线程中的Java程序片的局部变量互不干扰,即一个用户改变Java程序片中的局部变量的值不会影响其他用户的Java程序片中的局部变量。当一个线程将Java程序片执行完毕,运行在该线程中的Java程序片的局部变量释放所占的内存。

2、简述JSP中指令标记include 和动作标记include有什么不同?

       答:include指令标记的作用是在JSP页面出现该指令的位置处,静态插入一个文件,即JSP页面和插入的文件合并成一个新的JSP页面,然后JSP引擎再将这个新的JSP页面转译成Java文件。因此,插入文件后,必须保证新合并成的JSP页面符合JSP语法规则,即能够成为一个JSP页面文件。include动作标记告诉JSP页面动态加载一个文件,不把JSP页面中动作指令include所指定的文件与原JSP页面合并一个新的JSP页面,而是告诉Java解释器,这个文件在JSP运行时(Java文件的字节码文件被加载执行)才被处理。如果包含的文件是普通的文本文件,就将文件的内容发送到客户端,由客户端负责显示;如果包含的文件是JSP文件,JSP引擎就执行这个文件,然后将执行的结果发送到客户端,并由客户端负责显示这些结果。

3、数据库连接对象在调用commit()方法进行事务处理时,只要事务中任何一个SQL语句没有生效,就抛出SQLException异常,在处理SQLException异常时,必须让连接对象调用rollback()方法,其主要作用是什么?

       答:撤销事务中成功执行过的SQL语句对数据库数据所做的更新、插入或删除操作,即撤销引起数据发生变化的SQL语句操作,将数据库中的数据恢复到commit()方法执行之前的状态。

4、编写javabean就是编写一个java的类,这个类创建的一个对象称作一个bean。为了能让使用这个bean的应用程序构建工具知道这个bean的属性和方法,应在类的方法命名上遵守一定的规则。请简述其规则。

       答:(1)必须提供两种方法 getXXX(),用来获取属性xxx的值,setXXX()方法,用来修改属性xxx的值。

(2)类中方法的访问权限都必须是public的。

(3)类中如果有构造方法,那么这个构造方法的访问权限也是public的,并且是无参数的。

5、jsp的工作原理是什么?P4图1-2

       答:当我们访问一个JSP页面的时候,这个文件首先会被JSP引擎翻译为一个Java源文件,其实就是一个Servlet,并进行编译,然后像其他Servlet一样,由Servlet引擎来处理。Servlet引擎装载这个类,处理来自客户的请求,并把结果返回给客户

6、两种数据提交方式分别是什么?有什么区别?

       Post和get

7、JavaBean的特性?

       答:(1)、是公共的类;

       (2)、构造函数没有输入参数;

       (3)、属性必须声明为private,方法必须声明为public;

       (4)、用一组set方法设置内部属性;

       (5)、用一组get方法获取内部属性;

       (6)、是一个没有主方法的类,一般的Java类默认继承自Object类,而Bean不需要这种继承。

8. <jsp:forward>与response.sendRedirect()实现页面转向有什么区别?

  <jsp:forward>转向只在服务器端进行,不显示地址。

  response.sendRedirect()重新发送请求,会显示地址。

9 Servlet的生命周期?

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

       application对象代表应用程序上下文,它允许JSP页面与包括在同一应用程序中的任何Web组件共享信息。

       Config对象允许将初始化数据传递给一个JSP页面

       Exception对象含有只能由指定的JSP“错误处理页面”访问的异常数据。

       Out对象代表提供输出流的访问

       Page对象代表JSP页面对应的Servlet类实例

       PageContext对象是Jsp页面本身的上下文,它提供唯一一组方法来管理具有不同作用域的属性

       Request对象提供对Http请求数据的访问,同时还提供用于加入特定请求数据的上下文

      Response对象允许直接访问HttpServletResponse对象

       Session对象可能是状态管理上下文中使用最多的对话

11 bean的作用域和生命周期是什么?

  Page(当前页面有效)、request(局部有效)、session(会话有效)、application(全体有效)。

12较JSP而言,Servlet有什么优点?有什么缺点?

  优点:方便、高效、可移植、简洁。

  缺点:相对复杂,不利于界面的开发。

13 <jsp:setProperty>和<jsp:getProperty>操作起什么作用?

       用<jsp:setProperty>来存储属性值,用<jsp:getProperty>提取存储的属性值。

14 Connection对象中url参数主要包括哪些内容?

  连接字符串、用户名、密码。

三:编程题

1、编写一个jsp页面计算1+2+……+100的连续和。

<html>

<head><title>计算1+2+……+100的连续和</title>

</head>

<body>

 <% int sum=0;i=1;

for(i=1;i>=100;i++){

sum=sum+i;

}

out.println(sum);

%>

</body></html>

2、要求在页面上有两个文本框,用户在文本框中输入姓名和电话号码,单击“提交”按钮后,由服务器应用程序接受并处理用户信息。例中ex8-01.html通过表单向ex8-01.jsp提交信息。

ex8-01.html  

<html>

<head><title>获取客户提交信息案例</title>

</head>

<body>

 <form action="ex8-01.jsp" method=post>

     姓名: <input type=”text”  name=RdName><br>

     电话: <input type=”text” name=PhName><br> 

    <input type="submit" value=" 提 交 " name="submit">

 </form>

</body></html>

ex8-01.jsp :

<html>

<body>

<% Stringstr1=request.getParameter("RdName");%>

<% Stringstr2=request.getParameter("PhName");%>

<% Stringstr3=request.getParameter("submit");%>

  姓名文本框信息: 

  <%=str1%><br>

  电话文本框信息:

 <%=str2%><br>

</font>

</body></html>

3 如下图所示

(1)编写用户登录的HTML文件login.htm

(2)编写进行用户登录处理的JSP文件login.jsp(使用request对象获取表单数据、使用session保存获取的数据、使用response对象进行页面的重定向等)。

(3)编写登录成功后进入的主页index.jsp,要求显示登录用户及登录次数。

(4)编写登录失败访问的错误页面error.jsp,显示错误信息。



 

 

 

1.login.htm

<html>

<head>

<title>POST方法提交数据</title>

</head>

<body>

<form method="POST"action="login.jsp">

    <p>用户名:<inputtype="text" name="user" size="18"></p>

    <p>密码:<inputtype="text" name="pass" size="20"></p>

    <p><input type="submit" value="提交" name="ok">

       <inputtype="reset"  value="重置"name="cancel"></p>

</form>

</body>

</html>

2.login.jsp

<%@ page contentType="text/html;charset=GB2312" %>

<html>

<body>

<%

       StringstrUser=request.getParameter("user");

       StringstrPass=request.getParameter("pass");

       session.setAttribute("user",strUser);

       session.setAttribute("pass",strPass);

       if(strUser.equals("admin") &&strPass.equals("admin")){

              response.sendRedirect("index.jsp");}

       else{response.sendRedirect("error.jsp");}

%>

</body>

</html>

 

3.index.jsp

<%@ page contentType="text/html;charset=GB2312"  import="java.util.Date"%>

<html>

<body>

<%

 String name=(String)session.getAttribute("user");

 out.println(name);

%>

<%

       StringstrNum = (String)application.getAttribute("num");

       intnum = 1;

       //检查是否Num变量是否可取得

       if(strNum!= null)

              num= Integer.parseInt(strNum) + 1; //将取得的值增加1

       application.setAttribute("num",String.valueOf(num)); //起始Num变量值

%>

您是本网站第:

<font color = red><%= num%></font>位访客

</body>

</html>

4.error.jsp

<%@ pagecontentType="text/html;charset=GB2312" %>

<html>

<body>

<% StringstrLogin=(String)session.getAttribute("user");

              out.println(strLogin+"您不是本网站合法用户");

              out.println("<h2>请重新登录,5秒钟后,自动跳转到登录页面!</h2>");

              response.setHeader("Refresh","5;URL=login.htm");

 %>

</body>

</html>

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息