1、东莞城市学院(本科)试卷(A卷) 2017 -2018学年第一学期 开课单位:计算机与信息科学系,考试形式:机试(闭)卷,允许带入场 科目:Web开发技术(jsp)班级:15软工 班,姓名: 学号: 题序 一 二 三 总分 得分 0 评卷人 一、单项选择题(本大题共5小题,每小题2分,共10分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写下表中,注意,不准修改答案颜色。 题号 1 2 3 4 5 总分 答案 B B C D C 得分
2、 0 1、以下方法,哪个可使session无效?(B) A、session.removeAttribute(String key) B、session.invalidate() C、session.setAttribute(String key) D、session.getAttribute(String key) 2、对于“<%!”、“%>”之间声明的变量,以下说法正确的是:(B) A、不是JSP页面的成员变量 B、多个用户同时访问该页面时,任何一个用户对这些变量的操作,都会影响到其他用户 C、多个用户同时访问该页面时,每个用户对这些变量的操作都是互相
3、独立的,不会互相影响 D、是JSP页面的局部变量 3、当(C)时,JSP引擎产生一个session对象。 A、web应用服务器启动时 B、当web应用服务器启动后,第一个客户来访时 C、当每个客户首次访问服务器上的一个JSP页面时 D、当每个客户首次访问服务器上的一个JSP或HTML页面时 4、以下哪种方法不是Servlet的方法?(D) A、init B、service C、destroy D、post 5、在Servlet过滤器的生命周期方法中,每当传递请求或响应时,web容器会调用(C)方法。 A、 init B、
4、service
C、 doFilter D、 destroy
二、 (得分:)简单题(每题5分,共10分)
1、jsp有哪些动作?作用分别是什么?
5、来设置JavaBean的属性
6、关闭当前的页面结束 Application 作用表示应用程序的上下文,允许JSP页面的任何WEB主件共享信息,从服务器打开开始,到服务器关闭结束 三、(得分:)编程题(本大题共3小题,第1小题20分,第2小题30分,第3小题30分,共80分)请将代码粘贴在题后的代码框内,将结果窗口截图放在题后的结果框内,尽量不要跨页。 注意:所有程序页面中应包含个人信息,具体位置、内容可自行安排。 1、(20分,得分:)采用jsp+javaBean方式,实现数据传输,要求: (1)编写网页exam1_学号后3位.jsp页面,建立个人信息表单,表单信息项包含学号、姓名、年龄、性别、职业,并含
7、有提交、清除按钮。表单中填写个人真实学号,姓名全拼,年龄,性别、职业信息后,提交到网页stuInf学号后3位.jsp。(10分) (2)在stuInf学号后3位.jsp页面中采用JavaBean的方式获取表单输入的值,并获取JavaBean中封装的表单数据,在页面中显示用户添加的信息。(10分) //第1题代码,设置字体:Time New Roman ,大小为:5号,行间距:单倍行距,段前、段后:0行 JavaBean: package ; public class Exam1Bean { private String sno; private String name
8、 private String age; private String sex; private String zhiye; public String getSno() { return sno; } public void setSno(String sno) { this.sno = sno; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String
9、getAge() { return age; } public void setAge(String age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getZhiye() { return zhiye; } public void setZhiye(String zhiye) { this.zhiye = zhi
10、ye; } } 表单: <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
13、"tata" property="*" />
14、
15、 2、(30分,得分:)采用MVC思想,按以下要求实现用户登录程序,要求: (1)exam2_学号后3位.jsp用户登录页面,包含用户名、密码表单项,及登录按钮。(5分) (2)在登录页面中点击登录按钮,提交传输采用Servlet处理,名称为CheckServlet,在此Servlet中,获得用户提交的数据,如果用户名为个人姓名全拼,密码为个人学号,则登录成功,跳转到loginSuccess.jsp页面,否则调转到登录页面;(15分) (3) 登录成功页面loginSuccess.jsp,页面中显示“这是第几次登录成功”。(10分) //第2题代码,设置字体:T
16、ime New Roman ,大小为:5号,行间距:单倍行距,段前、段后:0行 <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
18、ata.getPwd(); String username1 = "10086"; String pwd2 = "123"; if(username.equals("10086") && pwd.equals("123")){ System.out.print("登录成功!"); request.getRequestDispatcher("loginSuccess.jsp"); }else{ System.out.print("登陆失败!"); } 结果截图: 3、(30分,得分:)实现学生成绩管理系统基本功能,要求
19、如下。 (1)采用MySQL数据库建立数据库名称为stuDb,建立学生表(student),包含四个字段分别为学号:no(char),密码:pwd(char),课程:course(char),成绩:score(int);数据表中插入任意2条记录。(3分) (2)建立系统首页exam3.jsp页面,页面中包含“新建成绩”,“查询成绩”2个链接;(2分) (3)点击“新建成绩”连接,进入scoreAdd.jsp页面,完成一条学生成绩记录的添加;(10分) (4)点击“查询成绩”按钮,查询数据库,在新页面中列出所有学生成绩信息,数据的展示要求必须采用EL、JSTL结合的方式实现。(10分)
20、 //第3题代码,设置字体:Time New Roman ,大小为:5号,行间距:单倍行距,段前、段后:0行 界面: <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
22、t=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<% request.setCharacterEncoding("UTF-8"); %>
23、harset="UTF-8">
24、 DriverManager.getConnection(url,username,password); String sql = "insert into student(sno,pwd,course,score) values(?,?,?,?)"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, tata.getSno());
25、 ps.setString(2, tata.getPwd()); ps.setString(3, tata.getCoures()); ps.setInt(4, tata.getScore()); int row = ps.executeUpdate(); if(row > 0){ out.print("成
26、功添加了 " + row + "条成绩!");
}
ps.close();
conn.close();
}catch(Exception e){
out.print("添加失败!");
e.printStackTrace();
}
%>
返回
27、 查询部分代码: protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub //response.getWriter().append("Served at: ").append(request.getContextPath()); try{ Class.forName(".mysql.jdbc.Driv
28、er"); String url="jdbc:mysql://localhost:3306/stuDb"; String username="root"; String passward="root"; Connection conn=DriverManager.getConnection(url,username,passward); Statement stmt=conn.createStatement(); String sql="select * from stuDb.student";
29、 ResultSet rs=stmt.executeQuery(sql); List< Exam3Bean> list=new ArrayList<>(); while(rs.next()){ Exam3Bean tata=new Exam3Bean(); /* tata.setSno(rs.getString("sno")); tata.setPwd(rs.getString("pwd")); tata.setCoures(rs.getString
30、"coures")); tata.setScore(rs.getString("score")); */ //${=} list.add(tata); } request.setAttribute("list", list); rs.close(); stmt.close(); conn.close(); if(con
31、n!=null){ System.out.print("连接成功!"); conn.close(); }else{ System.out.print("连接失败!"); } }catch(ClassNotFoundException e){ e.printStackTrace(); }catch(SQLException e){ e.printStackTrace(); } request.getRequestDispatcher("还没写.jsp").forw
32、ard(request, response);
}
跳转回写好的 表单.JSP ,循环list输出查询。