⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myjsp.jsp

📁 基于web的动物识别系统
💻 JSP
字号:
<%@ page language="java" import="java.util.*" contentType="text/html; charset=gb2312" import="java.sql.*" errorPage="" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <body background="E:\壁纸\20081161243540.jpg" >
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <base href="<%=basePath%>">
    <meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  <form name="form1" method="post" action="index.jsp">
  <%
    try
	    {Class.forName("org.gjt.mm.mysql.Driver").newInstance(); }
	catch(ClassNotFoundException e){out.print("error");}
	try{
    int factCounter=Integer.parseInt((session.getAttribute("factCounter")).toString());
    int []factDetail=new int[factCounter];
	String[] checkbox = new String[factCounter];
	int inCounter=0;
	int count=0;
	%>您选择了如下的事实:<br /><%
	String cond1 = request.getParameter("hair");
  	if (cond1!=null)
  	{
  			checkbox[count] = "该动物有毛发";
  			factDetail[count]=1;
  			inCounter++;
  			count++;
  			%><br>该动物有毛发<%
  	}
  	String cond2 = request.getParameter("milk");
  	if (cond2!=null)
  	{
  			checkbox[count] = "该动物有奶";
  			factDetail[count]=2;
  			inCounter++;
  			count++;
  			%><br>该动物有奶<%		
  	}
  	String cond3 = request.getParameter("feather");
  	if (cond3!=null)
  	{
  			checkbox[count] = "该动物有羽毛";
  			factDetail[count]=3;
  			inCounter++;
  			count++;
  			%><br>该动物有羽毛<%		
  	}
  	String cond4 = request.getParameter("fly");
  	if (cond4!=null)
  	{
  			checkbox[count] = "该动物会飞";
  			factDetail[count]=4;
  			inCounter++;
  			count++;
  			%><br>该动物会飞<%		
  	}
  	String cond5 = request.getParameter("egg");
  	if (cond5!=null)
  	{
  			checkbox[count] = "该动物会下蛋";
  			factDetail[count]=5;
  			inCounter++;
  			count++;	
  			%><br>该动物会下蛋<%	
  	}
  	String cond6 = request.getParameter("meat");
  	if (cond6!=null)
  	{
  			checkbox[count] = "该动物吃肉";
  			factDetail[count]=6;
  			inCounter++;
  			count++;
  			%><br>该动物吃肉<%		
  	}
  	String cond7 = request.getParameter("tooth");
  	if (cond7!=null)
  	{
  			checkbox[count] = "该动物有犬齿";
  			factDetail[count]=7;
  			inCounter++;
  			count++;
  			%><br>该动物有犬齿<%		
  	}
  	String cond8 = request.getParameter("talon");
  	if (cond8!=null)
  	{
  			checkbox[count] = "该动物有爪";
  			factDetail[count]=8;
  			inCounter++;
  			count++;
  			%><br>该动物有爪<%		
  	}
  	String cond9 = request.getParameter("forward");
  	if (cond9!=null)
  	{
  			checkbox[count] = "该动物眼盯前方";
  			factDetail[count]=9;
  			inCounter++;
  			count++;
  			%><br>该动物眼盯前方<%		
  	}
  	String cond10 = request.getParameter("lactation");
  	if (cond10!=null)
  	{
  			checkbox[count] = "该动物是哺乳动物";
  			factDetail[count]=10;
  			inCounter++;
  			count++;
  			%><br>该动物是哺乳动物<%		
  	}
  	String cond11 = request.getParameter("bird");
  	if (cond11!=null)
  	{
  			checkbox[count] = "该动物是鸟";
  			factDetail[count]=11;
  			inCounter++;
  			count++;
  			%><br>该动物是鸟<%		
  	}
  	String cond12 = request.getParameter("flesh");
  	if (cond12!=null)
  	{
  			checkbox[count] = "该动物是肉食动物";
  			factDetail[count]=12;
  			inCounter++;
  			count++;
  			%><br>该动物是肉食动物<%		
  	}
  	String cond13 = request.getParameter("unguis");
  	if (cond13!=null)
  	{
  			checkbox[count] = "该动物有蹄";
  			factDetail[count]=13;
  			inCounter++;
  			count++;
  			%><br>该动物有蹄<%		
  	}
  	String cond14 = request.getParameter("hoof");
  	if (cond14!=null)
  	{
  			checkbox[count] = "该动物是有蹄类动物";
  			factDetail[count]=14;
  			inCounter++;
  			count++;
  			%><br>该动物是有蹄类动物<%		
  	}
  	String cond15 = request.getParameter("ruminant");
  	if (cond15!=null)
  	{
  			checkbox[count] = "该动物是嚼反刍动物";
  			factDetail[count]=15;
  			inCounter++;
  			count++;
  			%><br>该动物是嚼反刍动物<%		
  	}
  	String cond16 = request.getParameter("tan");
  	if (cond16!=null)
  	{
  			checkbox[count] = "该动物是黄褐色";
  			factDetail[count]=16;
  			inCounter++;
  			count++;
  			%><br>该动物是黄褐色<%		
  	}
  	String cond17 = request.getParameter("spot");
  	if (cond17!=null)
  	{
  			checkbox[count] = "该动物身上有暗斑点";
  			factDetail[count]=17;
  			inCounter++;
  			count++;
  			%><br>该动物身上有暗斑点<%		
  	}
  	String cond18 = request.getParameter("list");
  	if (cond18!=null)
  	{
  			checkbox[count] = "该动物身上有黑色条纹";
  			factDetail[count]=18;
  			inCounter++;
  			count++;
  			%><br>该动物身上有黑色条纹<%		
  	}
  	String cond19 = request.getParameter("neck");
  	if (cond19!=null)
  	{
  			checkbox[count] = "该动物有长脖子";
  			factDetail[count]=19;
  			inCounter++;
  			count++;
  			%><br>该动物有长脖子<%		
  	}
  	String cond20 = request.getParameter("leg");
  	if (cond20!=null)
  	{
  			checkbox[count] = "该动物有长腿";
  			factDetail[count]=20;
  			inCounter++;
  			count++;	
  			%><br>该动物有长腿<%	
  	}
  	String cond21 = request.getParameter("notfly");
  	if (cond21!=null)
  	{
  			checkbox[count] = "该动物不会飞";
  			factDetail[count]=21;
  			inCounter++;
  			count++;	
  			%><br>该动物不会飞<%	
  	}
  	String cond22 = request.getParameter("swim");
  	if (cond22!=null)
  	{
  			checkbox[count] = "该动物会游泳";
  			factDetail[count]=22;
  			inCounter++;
  			count++;
  			%><br>该动物会游泳<%		
  	}
  	String cond23 = request.getParameter("whiteblack");
  	if (cond23!=null)
  	{
  			checkbox[count] = "该动物有黑白二色";
  			factDetail[count]=23;
  			inCounter++;
  			count++;
  			%><br>该动物有黑白二色<%		
  	}
	if(inCounter!=0)
	{
		String url = "jdbc:mysql://localhost:3306/ai?user=root&password=";  
		Connection conn = DriverManager.getConnection(url); 
		Connection conn2 = DriverManager.getConnection(url);  
		Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
		Statement stmt2=conn2.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
		String sql="select distinct ruleid from rule;";
		ResultSet rstmp=stmt2.executeQuery(sql);
		ResultSet rs=stmt.executeQuery(sql);
		rs.last();
		int counterRule=rs.getRow();
		int [] ruleId=new int[counterRule];
		boolean [] isRuleUsed=new boolean[counterRule];
		rs.first();
		for(int i=0;i<counterRule;i++)
		{
			ruleId[i]=rs.getInt(1);
			isRuleUsed[i]=false;
			rs.next();
		}//初始化
		sql="delete from current where 1=1;";
		stmt.execute(sql);
		for(int i=0;i<=count;i++)
		{
			if(factDetail[i]!=0)
			{
				sql="insert into current(factid) values(";
				sql+=factDetail[i];
				sql+=");";
				stmt.execute(sql);
			}
		}
	boolean currentChanged=true;
	boolean targetFound=false;
	int cyclecounter=1;
   %>
   <br>推理过程:
   <%
   while(currentChanged)
		{
			cyclecounter++;
			currentChanged=false;
			for(int i=0;i<counterRule;i++)
			{
			    if (isRuleUsed[i]) continue;//若当前规则已用过,退出此次循环
				sql="select factid from rule where ftype=0 and ruleid=";//搜索规则的前件。
				sql+=ruleId[i];
				sql+=";";
				boolean met=true;
				rs=stmt.executeQuery(sql);
				while(rs.next())
				{
					sql="select factid from current where factid = ";
					sql+=rs.getInt(1);
					sql+=";";
					rstmp=stmt2.executeQuery(sql);
					if(!rstmp.next())
					    {met=false;break;}
				}
				if(met)
				{
					%><br>规则<%=ruleId[i]%>匹配<%
					isRuleUsed[i]=true;
					sql="select factid from rule where ftype=1 and ruleid=";
					sql+=ruleId[i];
					sql+=";";
					rs=stmt.executeQuery(sql);
			        while(rs.next())
					{
						sql="select factid from fact where flag=1 and factid =";
						sql+=rs.getInt(1);
						sql+=";";
						rstmp=stmt2.executeQuery(sql);
						if(rstmp.next())
						{
							targetFound=true;
							sql="select detail from fact where factid=";
							sql+=rstmp.getInt(1);
							sql+=";";
							rstmp=stmt2.executeQuery(sql);
							rstmp.next();
							String str=new String(rstmp.getString(1).getBytes("ISO8859-1"),"gb2312");
							%><br>找到目标事实<%=str%><%
						}//找到了目标事实。
						sql="select factid from current where factid =";
						sql+=rs.getInt(1);
						sql+=";";
						rstmp=stmt2.executeQuery(sql);
						if(!rstmp.next())
						{
							sql="insert into current(factid) values(";
							sql+=rs.getInt(1);%><br>添加新事实<%=rs.getInt(1)%><%
							sql+=");";
							stmt2.execute(sql);//添加本次推理得到的结果。
							currentChanged=true;
							count++;
							factDetail[count]=rs.getInt(1);
						}
						else
						{
							%>规则后件<%=rs.getInt(1)%>已经在数据库中,不再添加<br /><%
						}
					}
			}
		}
		}
		if(targetFound==false){%>推理完毕    目标事实不在数据库中    找不到您要的事实结果<br /><%}
      }
    
    if(inCounter==0)
	{
		%>错误!您没有输入任何信息<% 
	}
	}
	catch(Exception e2){out.print("error");}
%>
		
   推理结束
  
   </form>
  <body><br><br></body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -