求JSP自学代码或者JAVA WEB自学笔记
发布网友
发布时间:2022-04-09 21:08
我来回答
共2个回答
热心网友
时间:2022-04-09 22:37
<%
int i = 1;
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try
{
int goal = 0;
//载入MySQL的JDBC驱动类
Class.forName("com.mysql.jdbc.Driver");
//获得数据库连接
String Sconn = "jdbc:mysql://localhost:3306/onlinetest?user=root&password =root";
conn = DriverManager.getConnection(Sconn);
//创建statement对象
stmt = conn.createStatement();
//执行SQL语句
String query = "select * from question";
rs = stmt.executeQuery(query);
%>
这一段代码作用是和数据库区的连接,然后发送一个指令:select * from question,这样表question中的内容就都查询出来了,查询结果存入rs中
然后循环取出rs中的数据:
while(!rs.isLast())
{
String s = String.valueOf(i);
rs.next();
String a = rs.getString("answer");System.out.print(a);
String re=request.getParameter(s);System.out.println(re);
if(re.equals(a))
goal+=5;
i++;
}
期间会输出标准答案(来自数据库)和回答的答案(来自页面输入)。如果两个答案相同,就加上5分,反之不加分。循环结束后,把最后的总分放入session中,跳转到show_goal页面。期间如果发生异常,就输出错误信息it's wrong!最后关闭资源(这个是使用流必须做的)。
以下为逐行解释:
<%@page contentType = "text/html;charset = gb2312" %> //设置编码格式
<%@page language = "java" import = "java.sql.*" %> //引入sql包供程序使用
<%@page import ="com.mysql.jdbc.Driver"%> //引入jdbc数据库驱动,以便练级数据库
<%
int i = 1;
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
//以上三个对象分别为连接对象(连接数据库),数据处理对象(发送sql指令)和返回结果集对象(装在返回的结果)。
try
{
int goal = 0; //设置初始分数为0
//载入MySQL的JDBC驱动类
Class.forName("com.mysql.jdbc.Driver"); //数据库驱动类型为mysql
//获得数据库连接
String Sconn = "jdbc:mysql://localhost:3306/onlinetest?user=root&password =root"; //数据库驱动的用户名,密码和url地址
conn = DriverManager.getConnection(Sconn); //取得数据库的连接,然后就可以向数据库要数据了
//创建statement对象
stmt = conn.createStatement(); //初始化一个数据处理对象
//执行SQL语句
String query = "select * from question"; //定义查询语句
rs = stmt.executeQuery(query); //执行查询语句
%>
<html>
<head>
<title>欢迎您!</title>
</head>
<body>
<form action="compute_goal.jsp" method="post"> //封装数据,提交给compute_goal.jsp
<center>
<%
//循环操作返回的数据
while(!rs.isLast()) //如果结果集中还有数据
{
String s = String.valueOf(i); //每一道题的索引位置,从1开始
rs.next(); //从第一题开始循环,以此类推
String a = rs.getString("answer");System.out.print(a); //第一题的数据库中的标准答案
String re=request.getParameter(s);System.out.println(re); //第一题的页面回答的答案
if(re.equals(a)) //如果库中的和回答的一致
goal+=5; //加五分,反之不加分
i++; //就继续判断下一道题
}
session.setAttribute("goal",goal); //最终得分放入session
response.sendRedirect("show_goal.jsp"); //跳转到show_goal.jsp页面
%>
</tr>
</form>
<%
}
catch(SQLException e)
{
System.out.println("it is wrong!!"+e); //如果期间发生异常,就输出it is wrong!!
}
finally
{
//释放数据库连接
rs.close();
stmt.close();
conn.close();
//最后,关闭所有的数据库资源。
}
%>
</table>
</center>
</form>
</body>
</html>
热心网友
时间:2022-04-09 23:55
推荐《Sevlet与JSP核心编程》