Web程序设计(期末测试练习题)

一、单选题

1、下列选项不是动态网站开发技术的是(C)。

A. ASP   B. PHP   C. CSS   D. JSP

注:CSS(层叠样式表)是一种用于定义网页样式的标记语言,它主要负责网页的样式设计,如字体、颜色、布局等。

2、在一个动态网站项目中,可以放置一些外部类库的地方是(B)。

A. /WEB-INF/Iib 放置已经编译的类文件
B. /WEB-INF/lib 放置 jar 文件
C. /META-INF/lib 放置 jar 文件
D. /classes 放置已经编译的类文件

3、关于JavaBean,下列的叙述哪一项是不正确的?(A)。

A. JavaBean和Servlet一样,使用之前必质在项目的web.xml中注册
B. JavaBean的类必须是具体的和公共的,并且具有无参数的构造器
C. JavaBean属性和表单控件名称能很好地耦合,得到表单提交的参数
D. JavaBean的类属性是私有的,要遇过公共方法进行访问

注:JavaBean的使用不需要在web.xml中进行注册,而是通过在代码中实例化和使用。

4、下面的哪个选项不能实现页面的跳转(C)。

A. <jsp:forward page="testurl" />
B. <c:redirect url="testurl"/>
C. <jsp:redirect url=" testurl"/>
D. <%response.sendRedirect (testurl");%>

注:在JSP中,jsp:redirect 标签是不存在的,因此选项 C 是不能实现页面的跳转的。

5、关于Struts 2框架的说法正确的是(C)。

A. 不同的Action其返回值类型不会相同
B. 只要导入Struts2的核心包,不同做任何配置便可直接使用
C. Struts 2框架的核心是Action
D. Struts 2框架不能实规MVC模式

6、MySQL数据库默认的内置管理账户是(A)。

A、root   B、Guest   C、Admin   D、User

7、以下那一个是 HttpSession 的方法,并能实现在 session 中存放数据?(D

A. putAttribute(String name. Object value)
B. put(String name. Object value)
C. set(String name. Object value)
D. setAttribute(String name. Object value)

8、<c:foreach>标签中使用(A)属性表示集合中的一个元素。

A. var
B. collection
C. varStatus
D. items

注:不太懂的可以看这里

9、下列的变量声明在(C)范围内有效。
<%!Date dateTime;  int countNum;%>

A. 从定义开始处有效,客户之间不共享
B. 在整个页面内有效,客户之间不共享
C. 在整个页面内有效,被多个客户共享
D. 从定义开始处有效,被多个客户共享

注:<%!”和“ %>”之间声明的变量在整个jsp页面内部有效

10、Ajax异步请求主要是通过以下JavaScript哪个对象实现的?(D)

A. Request
B. RequestScope
C. httpRequest
D. XMLHttpRequest

11、关于Ajax异步请求的说法错误的是(C)。

A. 异步请求可以通过JQuery方式卖观
B. 异步请求可以通过编写JavaScript脚本代码实现
C. 异步请求的触发事件只能是表单中type值为submit的<button>按钮
D. 异步请求的响应结果可以是JSON或者xml格式

12、Servlet 3.0中要实现对文件上传的支持,必须添加哪个注解?(B)。

A. @RequestMapping
B. @MultipartConfig
C. @WebFileter
D. @WebinitParam

注:

  • @RequestMapping 用于映射请求URL和处理方法。
  • @MultipartConfig 用于配置Servlet的文件上传功能。
  • @WebFilter 用于定义Servlet过滤器。
  • @WebInitParam 用于配置Servlet的初始化参数。

13、以下方法中,哪个选项中的方法可使session无效?(B

A. session.removeAttribute(String key)
B. session.invalidate()
C. session.setAttribute(String key)
D. session.getAttribute (String key)

14、下列(B)内置对象经常用来制作网页计数器。

A. Request
B. Applicantion
C. Session
D. Response

15、在客户端浏览器的源代码中可以看到(B)。                

A. JSP注释
B. HTML注释
C. JAVA注释
D. JSP注释和HTML注释

注: <!-- HTML注释 --> 可以看到
        <%-- JSP注释 --> 看不到
        /* */ // java注释更加看不到

16、在传统的HTML页面中加入( B )就构成了一个JSP页面文件。

A. 用“<%”、“%>”标记符号括起来的程序
B. JAVA程序片和JSP标签
C. JSP标签
D. JAVA程序片

17、当多个用户请求同一个JSP页面时,Tomcat服务器为每个客户启动一个( C )

A. 程序
B. 服务
C. 线程
D. 进程

18、对于ServletRequest接口获取请求参数的方法的描述正确的是( B )。 

A. getParameter方法只用于接收POST请求参数,接收GET请求参数需要使用getQueryString方法。
B. 如果一个参数key有多个值,那么getParameterValues(key)方法会返回一个包含所有值的字符串数组。
C. getParameter方法返回Object对象,使用前要强制类型转换。
D. 如果一个参数key有多个值,那么getParameter(key)方法会返回null。

19、以下关于JavaBeans的说法中,错误的是( D )。

A. JavaBean是一种特殊的Java类。
B. JavaBean是基于JAVA语言的。
C. JavaBean是一个可重复使用的软件组件。
D. JavaBean是JSP的内置对象之一。

注:

20、在JSP技术的Web开发中,关于Excel操作错误的是?(   )。 

A. 导入Excel模板文件中的数据到数据库属于Excel的读操作。
B. POI操作Excel只能操作2007年以前的版本。
C. 检索出来的结果集导出为Excel文件属于Excel的写操作。
D. 操作Excel可以使用Apache基金会的POI子项目完成。

注:Apache POI是一个开源的Java库,用于操作Microsoft Office格式的文件,包括Excel。POI提供了对Excel文件的读取和写入功能,并且支持操作2007年以前的版本(.xls格式)和2007年及以后的版本(.xlsx格式)的Excel文件。

21、以下关于Servlet的说法正确的是(  B )

A. Servlet不能对文件进行读写操作
B. Servlet可以获取用户的session会话
C. Servlet不能获取用户的session会话
D. Servlet不能对数据库表进行操作

22、在最新版本的Eclipse中,在创建的Web项目的目录结构中,一般把jsp和html文件放在( D )下。

A. src/main/java目录下
B. /WEB-INF/lib 目录下
C. /META-INF目录下
D. webapp目录下

23、在一个动态网站工程项目中,可以放置一些外部类库的地方是(  D  )。

A. /WEB-INF/lib 放置已经编译的类文件
B. /classes 放置已经编译的类文件
C. /META-INF/lib 放置 jar 文件
D. /WEB-INF/lib 放置 jar 文件

24、能在浏览器的地址栏中看到提交数据的表单提交方式的是( D )。      

A. submit
B. post
C. out
D. get

注:当表单使用GET方法提交时,表单数据会附加在URL的查询字符串中,以键值对的形式显示在地址栏中。

25、用来在网页中显示图形的html标记为( A )。                        

A. <img src=”文件名”>
B. <picture src=”文件名”>
C. <center src=”文件名” >
D. <image src=”文件名”>

26、给出了如下的SQL语句字符串String SQL="insert table values(?,?,?,?)";下列哪个接口适合执行该SQL语句(  B )。                            

A. CallableStatement
B. PrepareStatement
C. Statement
D. 均不能执行

27、关于过滤器和监听器下列说法错误的是( A )。

A、过滤器通过继承Filter类实现
B、一个Web系统可以有多个过滤器
C、Web系统可以没有过滤器
D、监听器可以监视Web系统的执行状况

注:在Java Web开发中,过滤器是通过实现javax.servlet.Filter接口来创建的。Filter接口定义了过滤器的生命周期方法和过滤请求的方法,开发者需要实现这些方法来编写自己的过滤器逻辑。

28、用来在浏览器标题栏中显示标题的html标记为(  D  )。

A. <body></body>
B. <head ></head>
C. <div></div>
D. <title></title>

29、以下脚本元素中有语法错误的是(  D  )                          

A. <% int i=0;%>
B. <%! int i=0;%>
C. <%i++;%>
D. <%=i;%>

注:A和C是脚本小程序
       B是声明(一般情况下,声明的对象只在当前页面中起作用)
       D是表达式(<%=这3个字符之间不能有空格,表达式后不能有分号)

30、给出如下的SQL语句字符串String SQL="insert table values(?,?,?,?)";下列哪个接口适合执行该SQL语句( B )

A. CallableStatement
B. PrepareStatement
C. Statement
D. 均不能执行

注:如果在sql语句中有使用占位符的话,则需要预先处理。

二、填空题

1、input表单域表示一个文件选择框时,它的type属性应该赋值为 file

2、在一个Web系统设计中,如果要实现页面转发和页面重定向使用方法分别是 forward() sendRedirect()  。

3、部署Servlet的两种方法分别是在 web.xml中部署 基于注解的方式 

4、input表单项表示一个表单提交按钮时,它的type属性应该赋值为 submit

5、要想在JSP页面中使用Bean,必须首先使用 <jsp:useBean> 动作标记在页面中定义一个 JavaBean 的实例。

6、表单属性中对表单提交后处理方法进行指定和对提交方式进行指定的属性分别是 actionmethod 方法。

7、程序描述:现需要在表单中输入用户名和密码,提交到Servlet中,在Servlet中获取从表单得到的数据,然后封装到Bean对象中,再调用业务处理类,完成登录验证判断,请根据代码上下文关系补全横线处的代码,答案直写在横线上。
1、表单代码补全:

<form action="loginCheckServlet" method="post">   
    <input type="text"  name="name" />
    <input type="password"  name="password" />                
</form>

2、Servlet代码补全:

@WebServlet("/loginCheckServlet")
public class LoginCheckServlet extends HttpServlet {
protected void  doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        HttpSession session=request.getSession();
        PrintWriter out=response. getWriter();
        String name=request.getParameter("name");
        String pwd=request.getParameter("password");


        Admin_User au1=new Admin_User();
        au1.setAdmin_name(name);
        au1.setAdmin_pwd(pwd);
        UserCheck uc=new  UserCheck();
        if(uc.validate( au1 )) {
                session.setAttribute("adminName", name);
                request.setAttribute("au1", au1);
                RequestDisPatcher dis=request.getRequestDispatcher("index.jsp");
                dis.forward(request, response);
        }
        else {
                out.print("<script language='javascript'>alert('对不起,用户名或密码错误,请重新输入!');

                window.location.href='login.jsp';</script>");
        }
}

8、Ajax异步请求返回处理结果的两种形式分别是 Xml text

9、Servlet在一个生命周期中调用的三个方法分别是 init()service() destroy()

10、JavaBean的4中作用域中,在整个会话期间有效的作用域是 session,在一次请求期间有效的作用域是 request

11、Struts 2和SpringMVC框架的核心分别是 actionDisPatcherServlet 主控制器。

12、在JSP中,为内置对象定义的四个作用域范围分别是 pageScope sessionScope requestScope ApplicationScope

13、在进行异步请求时,只有当xmiHttpRequest对象的readyState属性值为 4,status值为 200 时才能获得正确的请求信息。          

14、Web应用中的B/S具体是指 客户端浏览器 和 服务器端 两个层面

15、MySQL数据库安装时默认的端口号是 3306,当要连接MySQL数据库时,Class.forName()中需要填写的类名字符串是 "com.mysql.jdbc.Driver"

16、编写3个JSP页面login_1.jsp、server.jsp和loginSuccess.jsp。在页面login_1.jsp中输入用户名和密码,单击“提交”按钮将输入的信息提交给页面server.jsp。在server.jsp页面中进行登录验证:如果输入正确(用户名“zhangsan”,密码“123”),提示“成功登录,3秒钟后进入loginSuccess.jsp页面”,如果输入不正确,重新定向到login_1.jsp页面。请阅读如下代码,补全横线处的代码。
1、参考表单代码如下:

<form action="server.jsp" method="post">
        姓名:<input type="text" name="userName"/><br>
        密码:<input type="password" name="pwd"/><br>
        <input type="submit" value="提交"/>
</form>

2、server.jsp代码如下:

<%
        String name=request.getParameter("userName") ;
        String password=request.getParameter("pwd");


        if("zhangsan".equals(name) && "123".equals(password)){
                out.print("成功登录,3秒钟后进入loginSuccess.jsp页面");
                response.setHeader("refresh", "3;url=loginSuccess.jsp"");
                return;
        }else{
                response.sendRedirect("login_1.jsp");
        }
%>

三、判断题

1、动态网站就是网页中含有动画和动图的网站。   ×

2、应用程序分页显示记录集时,不宜在每页都重新连接和打开数据库。  √

3、使用框架需要配置,配置成功后框架能显著提高Web系统的开发效率。  √

4、使用数据库连接池需要烦琐的配置,一般不宜使用。  ×

5、JSP的局部刷新是通过Javascript的内置对象实现的。  √

6、一个JSP文件本质上就是一个Servlet。  √

7、不可以用一个page指令指定多个属性的取值。     ×

8、session对象是HttpSession接口类的实例,由客户端负责创建和销毁,所以不同客户的session对象不同。   √

9、JavaBean的属性必须声明为private,方法必须声明为public访问类型。    √

10、一般用JSP来实现业务逻辑,用Servlet来处理页面显示。  ×

11、在“<%”和“%>”标记之间声明的Java的方法在整个页面内有效。    ×

12、网页中只要使用gb2312编码就不会出现中文乱码。   √

13、doGet()和doPost()方法分别处理客户端GET和POST方式发送的请求。   √

14、从服务器端给客户端发送消息应用Request对象,从客户端给服务器端提交请求应用Response对象。    ×

15、EL表达式和JSTL就是用来替换html代码的。     ×

16、转发的功能是将用户对当前JSP页面或Servlet的请求转发给另一个JSP页面或Servlet。     √

17、session对象可以用来保存用户会话期间需要保存的数据信息。    √

18、绝对路径是文件名的完整路径;相对路径是指相对当前网页文件名的路径。    √

19、导出查询的结果集到Excel文件,属于Excel的读操作。    ×

20、Tomcat和JDK都不是开源的项目。   ×

四、简答题

1、简要回答一个jsp页面主要由哪几个部分组成?

  1. HTML页面标签:这是用来构建页面结构的HTML代码。
  2. 指令:指令是用来定义整个页面的相关信息,例如页面的字符集编码等。指令格式为<%@指令名 属性名=”值”%>
  3. 表达式:表达式是用于在JSP页面中进行数据绑定和计算的,例如获取请求参数、数据库查询结果等。表达式的格式为 <%=表达式%>
  4. 代码片段:代码片段是在JSP页面中嵌入的Java代码,可以用来处理复杂的业务逻辑。代码片段的格式为 <%java代码%>
  5. 声明:声明是定义类成员的地方,其格式为 <%! 类成员 %>
  6. 注释:注释是用来解释代码或者提供其他信息的一种方式,其格式为 <%-- jsp注释内容 --%>
  7. 动作:动作是JSP页面中执行特定任务的标签,如包含其他文件、导入Java包等。动作的格式为 <jsp:动作名></jsp:动作名>

2、简要回答常用的会话跟踪技术有哪些?各自的特点是什么?

  1. URL重写:这种方法是在URL结尾添加一个附加数据来标识该会话,把会话id通过URL的信息传递过去,以便在服务端进行识别不同的用户。
  2. 隐藏表单域:这种方式将会话id添加到HTML中提交到服务器,此表单不在客户端显示。
  3. Cookie:Cookie是Web服务器发送给客户端的信息,客户请求时可以读取该信息发送到服务器端,从而进行用户的识别。对于客户端的每次请求,服务器都会将cookie发送到客户端,在客户端可以进行保存,以便下次使用。
  4. Session:Session是一种在服务器端存储用户信息的机制,可以将用户信息存储在服务器端的数据库或文件中。当用户访问服务器时,服务器会根据SessionID来获取用户信息。

各种跟踪技术各有特点。

        例如,URL重写 技术易于实现,但可能影响用户体验

                   隐藏表单域 不会影响用户体验,但可能对SEO不友好

                   Cookie 大小和数量的限制可能会影响其存储和使用

                   Session 依赖于服务器资源,可能会影响服务器性能

注:SEO指的是搜索引擎优化(Search Engine Optimization)。它是通过优化网站的内容、结构和其他因素,以提高网站在搜索引擎中的排名和可见性的过程。通过SEO的技术和策略,可以使网站在搜索引擎结果页面(SERP)中获得更多的有机(非付费)流量。

在上述提到的跟踪技术中,隐藏表单域被认为可能对SEO不友好,是因为隐藏表单域是在网页中嵌入的不可见的表单域,搜索引擎爬虫可能无法识别和处理这些隐藏的数据。而搜索引擎通常会根据网页的内容和结构来确定网页的相关性和排名,因此隐藏表单域可能无法被搜索引擎正确解析和评估,从而可能影响网站的SEO效果。

3、简要回答Cookie技术的局限性主要包括哪些方面?

  1. 首先,Cookie可能被用户禁用或者删除。当用户禁用了Cookie时,网站将无法读取到存储在客户端的信息,这可能导致某些功能的失效。同时,用户也可能会手动删除Cookie,导致网站无法跟踪用户的状态。
  2. 其次,Cookie与浏览器相关,不同的浏览器之间不能互相访问。也就是说,如果用户更换了浏览器,之前保存在旧浏览器中的Cookie将无法被新浏览器读取。
  3. 另外,Cookie的安全性问题不能忽视。虽然Cookie中的数据可以被加密,但如果黑客获取到了用户的Cookie信息,他们可以模拟用户的身份进行操作,给用户带来安全风险。
  4. 最后,每个特定的域名下最多生成20个Cookie,并且存储空间很小(只有4–10KB左右)。这意味着它只能存储有限的信息,对于需要存储大量数据的应用来说并不适合。

4、简要说明一个Ajax应用的实现一般需要几个步骤?

  1. 创建XMLHttpRequest对象:这是实现Ajax的基础,用于与服务器建立连接和交换数据。
  2. 创建HTTP请求:设置请求的类型(GET或POST)和URL,以及是否异步处理请求。
  3. 设置响应HTTP请求状态变化的函数:当服务器的响应到来时,这个函数会被调用,通常用来更新页面的部分内容。
  4. 设置获取服务器返回数据的语句:从服务器返回的数据通常会被放在这个函数中进行处理。
  5. 发送HTTP请求:通过XMLHttpRequest对象的send()方法,向服务器发送请求。
  6. 局部更新:在收到服务器响应后,使用JavaScript操作DOM来局部更新网页内容,提高用户体验。

5、简述JSP页面的工作原理?

JSP(JavaServer Pages)是一种用于开发动态Web应用程序的技术。它允许将Java代码嵌入到HTML页面中,以生成动态内容。

JSP页面的工作原理如下:

        1. 客户端发送请求:当用户在浏览器中请求一个JSP页面时,客户端会发送HTTP请求到服务器。

        2. 服务器接收请求:Web服务器(如Apache Tomcat)接收到客户端发送的HTTP请求。

        3. JSP编译:服务器将JSP页面翻译成Java Servlet。这个过程只发生一次,当JSP页面第一次被请求时。

        4. Servlet执行:服务器将编译后的Servlet加载到内存中,并创建一个实例。每个请求都会创建一个新的线程来处理。

        5. 请求处理:Servlet根据请求的类型(GET或POST)执行相应的方法(doGet或doPost)。

        6. 动态内容生成:在Servlet中,JSP页面中的Java代码会被执行,动态生成HTML内容。Java代码可以访问数据库、执行业务逻辑等。

        7. 响应生成:Servlet生成响应,将动态生成的HTML内容发送回客户端。

        8. 客户端渲染:客户端浏览器接收到响应后,根据HTML内容进行渲染,最终呈现给用户。

        

需要注意的是,JSP页面的工作原理中,JSP页面首次请求时需要进行编译,而后续的请求可以直接执行已编译的Servlet,提高了性能。 此外,JSP页面还可以使用标签库(Tag Library)和EL表达式(Expression Language)等特性,使开发更加方便和灵活。

6、在Servlet3.0中要实现文件上传功能,需要做哪些准备工作?

  1. 首先,确保你的开发环境已经安装了JDK1.8、Maven3.6.1和Tomcat10。

  2. 使用@MultipartConfig注解标注你的servlet,表明该servlet可以处理Multipart方式提交的数据,从而支持文件上传。这个注解有几个重要的属性需要注意,如maxFileSize(最大文件大小)、maxRequestSize(最大请求大小)以及fileSizeThreshold(文件大小阈值)。

  3. 在你的HTML表单中设置enctype="multipart/form-data"属性,以标识这个表单用于文件上传。同时,需要为每个文件项设定一个

  4. 在servlet中使用Part对象来接收上传的文件数据。这是因为在文件上传中,无论是普通数据还是文件数据,都被视作部分(part)对象进行处理。

  5. 最后一步是将接收到的文件数据保存到你希望的位置。你可以使用Java I/O流将文件写入到硬盘上的指定位置。

7、列举5种JSP中常用的动作标记,并简要说明其功能?

  1. jsp:include:此标记用于在页面被请求时引入一个文件,这个文件可以是动态文件也可以是静态文件。

  2. jsp:forward:该标记用于将请求转发到另一个资源(例如另一个JSP页面、HTML页面或Servlet)。

  3. jsp:useBean:它是用来寻找或者实例化一个JavaBean的,JavaBean是一种可重用的组件。

  4. jsp:setProperty:此标记用于设置JavaBean的属性值。

  5. jsp:getProperty:它的作用是输出某个JavaBean的属性值。

  6. jsp:fallback:当插件不能被加载时,可以使用此标记定义一个备用的行为。

8、简述编写一个标准的JavaBean类必须遵循的基本规则是什么?

  1. JavaBean类必须是一个公共类,将其访问属性设置为public。例如:public class user{…}

  2. JavaBean类必须有一个空的构造函数,即类中必须包含一个不带参数的公用构造器。例如:public User () {…}

  3. 一个JavaBean类不应有公共实例变量,所有的成员变量都应以private修饰,通过getter和setter方法进行访问和修改。这样可以保证类的封装性和安全性。

  • 31
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值