资源描述
东莞城市学院(本科)试卷(A卷)
2017 -2018学年第一学期
开课单位:计算机与信息科学系,考试形式:机试(闭)卷,允许带入场
科目:Web开发技术(jsp)班级:15软工 班,姓名: 学号:
题序
一
二
三
总分
得分
0
评卷人
一、单项选择题(本大题共5小题,每小题2分,共10分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写下表中,注意,不准修改答案颜色。
题号
1
2
3
4
5
总分
答案
B
B
C
D
C
得分
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、多个用户同时访问该页面时,每个用户对这些变量的操作都是互相独立的,不会互相影响
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、 service
C、 doFilter D、 destroy
二、 (得分:)简单题(每题5分,共10分)
1、jsp有哪些动作?作用分别是什么?
<jsp:param> 作用:以“名,值”形式,为其他标签提供附加信息
<jsp:forword> 作用:将请求转发到另一个JSP页面或者servlet或者静态资源
<jsp:include> 作用:请求现成的其他的JSP页面或者servlet或者静态资源在该页面显示
<jsp:usebean> 作用:创建一个JavaBean实例并指定他的名字以及作用
<jsp:setproperty> 作用:和setBean一起,来设置JavaBean的属性
<jsp:getproperty> 作用:对setproperty的补充,来访问javabean
<jsp:plugin> 作用:产生特殊标签,可以用它插入applet还有javabean
2、简述JSP主要内置对象的作用范围。
Request 作用:提供http请求数据,提供页面上下文使用,可以拿来获得数据
Response 作用:用来访问httpservletresponse,同时将客户端数据传输
Session 作用:用来管理上下文最多的对话,从会话开始产生,到删除或者会话结束
Page 作用:表示页面对应的servlet实例,关闭当前的页面结束
Application 作用表示应用程序的上下文,允许JSP页面的任何WEB主件共享信息,从服务器打开开始,到服务器关闭结束
三、(得分:)编程题(本大题共3小题,第1小题20分,第2小题30分,第3小题30分,共80分)请将代码粘贴在题后的代码框内,将结果窗口截图放在题后的结果框内,尽量不要跨页。
注意:所有程序页面中应包含个人信息,具体位置、内容可自行安排。
1、(20分,得分:)采用jsp+javaBean方式,实现数据传输,要求:
(1)编写网页exam1_学号后3位.jsp页面,建立个人信息表单,表单信息项包含学号、姓名、年龄、性别、职业,并含有提交、清除按钮。表单中填写个人真实学号,姓名全拼,年龄,性别、职业信息后,提交到网页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;
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 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 = zhiye;
}
}
表单:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>个人信息表</title>
</head>
<body>
<form method="post" action="stuInf10086.jsp">
<ul>
<li>学号:<input type="text" name="sno"></li>
<li>姓名:<input type="text" name="name"></li>
<li>性别:<input type="text" name="sex"></li>
<li>年龄:<input type="text" name="age"></li>
<li>职业:<input type="text" name="zhiye"></li>
<li><input type="submit" value="提交"></li>
<li><input type="reset" value="清除"></li>
</ul>
</form>
</body>
</html>
处理获取页面:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%request.setCharacterEncoding("UTF-8"); %>
<jsp:useBean id="tata" class=".Exam1Bean" scope="page">
<jsp:setProperty name="tata" property="*" />
</jsp:useBean>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>在此处插入标题</title>
</head>
<body>
</head>
<body>
<%request.setCharacterEncoding("UTF-8"); %>
<ul>
<li>学号:<jsp:getProperty property="sno" name="tata"/></li>
<li>姓名:<jsp:getProperty property="name" name="tata"/></li>
<li>性别:<jsp:getProperty property="sex" name="tata"/></li>
<li>年龄:<jsp:getProperty property="age" name="tata"/></li>
<li>职业:<jsp:getProperty property="zhiye" name="tata"/></li>
</ul>
</body>
</html>
结果截图:
2、(30分,得分:)采用MVC思想,按以下要求实现用户登录程序,要求:
(1)exam2_学号后3位.jsp用户登录页面,包含用户名、密码表单项,及登录按钮。(5分)
(2)在登录页面中点击登录按钮,提交传输采用Servlet处理,名称为CheckServlet,在此Servlet中,获得用户提交的数据,如果用户名为个人姓名全拼,密码为个人学号,则登录成功,跳转到loginSuccess.jsp页面,否则调转到登录页面;(15分)
(3) 登录成功页面loginSuccess.jsp,页面中显示“这是第几次登录成功”。(10分)
//第2题代码,设置字体:Time New Roman ,大小为:5号,行间距:单倍行距,段前、段后:0行
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>登录界面</title>
</head>
<body>
<form method="post" action="CheckServlet">
<ul>
<li>用户名:<input type="text" name="username"></li>
<li>密码:<input type="password" name="pwd"></li>
<li><input type="submit" value="登录"></li>
</ul>
</form>
</body>
</html>
Exam2Bean tata = new Exam2Bean();
String username = tata.getUsername();
String pwd = tata.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分,得分:)实现学生成绩管理系统基本功能,要求如下。
(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分)
//第3题代码,设置字体:Time New Roman ,大小为:5号,行间距:单倍行距,段前、段后:0行
界面:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>在此处插入标题</title>
</head>
<body>
<form method="post" action="scoreAdd2.jsp">
<ul>
<li>学号:<input type="text" name="sno"></li>
<li>密码:<input type="text" name="pwd"></li>
<li>课程:<input type="text" name="course"></li>
<li>成绩:<input type="text" name="score"></li>
<li><input type="submit" value="添加"></li>
</ul>
</form>
</body>
</html>
添加:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<% request.setCharacterEncoding("UTF-8"); %>
<jsp:useBean id="tata" class=".Exam3Bean" ></jsp:useBean>
<jsp:setProperty property="*" name="tata"/>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<%
try{
Class.forName(".mysql.jdbc.Driver");
String url = "jdbc:mysql://127.0.0.1/stuDb";
String username = "root";
String password = "root";
Connection conn = 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());
ps.setString(2, tata.getPwd());
ps.setString(3, tata.getCoures());
ps.setInt(4, tata.getScore());
int row = ps.executeUpdate();
if(row > 0){
out.print("成功添加了 " + row + "条成绩!");
}
ps.close();
conn.close();
}catch(Exception e){
out.print("添加失败!");
e.printStackTrace();
}
%>
<br>
<a href="scoreAdd.jsp">返回</a>
</body>
</html>
查询部分代码:
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.Driver");
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";
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("coures"));
tata.setScore(rs.getString("score"));
*/
//${=}
list.add(tata);
}
request.setAttribute("list", list);
rs.close();
stmt.close();
conn.close();
if(conn!=null){
System.out.print("连接成功!");
conn.close();
}else{
System.out.print("连接失败!");
}
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
}
request.getRequestDispatcher("还没写.jsp").forward(request, response);
}
跳转回写好的 表单.JSP ,循环list输出查询。<c:while> ${=setsno} ${=setpwd}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ page import=".Exam3Bean"%>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>10086</title>
<style type="text/css">
</head>
<body>
<div width="98%" align="center">
</div>
<table >
<tr>
<th bgcolor="#FFFFFF">学号</th>
<th bgcolor="#FFFFFF">密码</th>
<th bgcolor="#FFFFFF">课程</th>
<th bgcolor="#FFFFFF">成绩</th>
</tr>
<%
List<Exam3Bean> list = (List<Exam3Bean>) request.getAttribute("list");
if (list == null || list.size() < 1) {
out.print("<tr><td bgcolor='#FFFFFF' colspan='4'>没有信息!</td></tr>");
} else {
for (Exam3Bean tata : list) {
%>
<tr align="center">
<td bgcolor="#FFFFFF" >${=tata.}</td>
<td bgcolor="#FFFFFF">${=tata.}<%=%></td>
<td bgcolor="#FFFFFF">${=tata.}<%=%></td>
<td bgcolor="#FFFFFF">${=tata.}<%=%></td>
</form></td>
</tr>
<%
}
}
%>
</table>
</body>
</html>
结果截图:
没时间调试语句了
展开阅读全文