今日共同报告-09-WEB端系统基本完善
今日共同报告-09
今天完善了WEB端的地铁查询系统,这部分主要由我完成,我的搭档主要在负责安卓端页面的开发。
基本页面和功能已经完全实现。
今天的合作照片:
页面效果展示:
部分代码:
Sub.java
package dao;
import com.BaseBean;
import com.DB;
import com.SubwayBean;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
public class Sub {
public ArrayList<SubwayBean> ArrayTransferStation(String station1, String station2){
ArrayList<SubwayBean> resultArray = new ArrayList<>();
DB db = new DB();
PreparedStatement preparedStatement=null;
ResultSet rs = null;
int i=0;
try {
String sql ="WITH RECURSIVE transfer (start_station, stop_station, stops, path) AS (\n" +
" SELECT station_name, next_station, 1, CAST(CONCAT(line_name,' ',station_name , '--->', line_name,' ',next_station) AS CHAR(1000))\n" +
" FROM station_table WHERE station_name = ?\n" +
" UNION ALL\n" +
" SELECT p.start_station, e.next_station, stops + 1, CONCAT(p.path, '--->', e.line_name, ' ',e.next_station)\n" +
" FROM transfer p\n" +
" JOIN station_table e\n" +
" ON p.stop_station = e.station_name AND (INSTR(p.path, e.next_station) = 0)\n" +
")\n" +
"SELECT * FROM transfer WHERE stop_station =?;\n";
preparedStatement=db.conn.prepareStatement(sql);
preparedStatement.setString(1,station1);
preparedStatement.setString(2,station2);
rs = preparedStatement.executeQuery();
while (rs.next())
{
i++;
SubwayBean subwayBean = new SubwayBean();
subwayBean._StartStation = (String) rs.getObject(1);
subwayBean._EndStation = (String) rs.getObject(2);
subwayBean._Number = rs.getObject(3);
subwayBean._Path = (String) rs.getObject(4);
resultArray.add(subwayBean);
}
if(i==0)
{
String result = "未查询到有关信息,输入不正确或输入为空,请输入有效信息";
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
db.close();
}
return resultArray;
}
public BaseBean getStationByNum(int num){
DB db = new DB();
BaseBean base = new BaseBean();
try {
String sql = "SELECT * FROM basictable WHERE num = " + num ;
db.rs =db.stmt.executeQuery(sql);
if (db.rs.next()){
base.base_id=db.rs.getString("id");
base.base_line=db.rs.getString("line");
base.base_num=db.rs.getInt("num");
base.base_name=db.rs.getString("nam");
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
}
db.close();
return base;
}
public int getStationNum(String name){
DB db = new DB();
BaseBean base = new BaseBean();
String na = "'" + name + "'";
try {
String selectQuery = "SELECT * FROM basictable WHERE nam="+na;
db.rs =db.stmt.executeQuery(selectQuery);
if (db.rs.next()){
base.base_id=db.rs.getString("id");
base.base_line=db.rs.getString("line");
base.base_num=db.rs.getInt("num");
base.base_name=db.rs.getString("nam");
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
}
db.close();
return base.base_num;
}
public String StationLine(String lin){
DB db = new DB();
String stat = "";
String li = "'" + lin + "'";
try {
String selectQuery = "SELECT * FROM station_table WHERE line_name="+li;
db.rs =db.stmt.executeQuery(selectQuery);
while (db.rs.next()){
String base_name=db.rs.getString("station_name");
stat +="->";
stat = stat + base_name;
stat+=" ";
stat+="<br><br>";
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
}
db.close();
return stat;
}
public String LineStation(String name){
DB db = new DB();
String na = "'" + name + "'";
String line = "地铁";
try {
String selectQuery = "SELECT * FROM station_table WHERE station_name="+na;
db.rs =db.stmt.executeQuery(selectQuery);
if (db.rs.next()){
String base_name=db.rs.getString("line_name");
line += base_name;
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
}
db.close();
return line;
}
}
SubwayMain.java
package main;
import com.BaseBean;
import com.DB;
import com.SubwayBean;
import dao.Sub;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
/**
*
* **/
@WebServlet("/SubwayMain")
public class SubwayMain extends HttpServlet {
@Override
public void init() throws ServletException {
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out = resp.getWriter();
String start = new String(req.getParameter("start_station").getBytes("ISO8859-1"),"UTF-8");
String end = new String(req.getParameter("end_station").getBytes("ISO8859-1"),"UTF-8");
try {
Sub sub = new Sub();
ArrayList<SubwayBean> arr = sub.ArrayTransferStation(start,end);
req.setAttribute("routeMain", arr);
req.getRequestDispatcher("/bestresult.jsp").forward(req, resp);
}catch (Exception e){
e.printStackTrace();
}finally {
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
@Override
public void destroy() {
}
}
css
@charset "UTF-8";
body{
background-image: url(../images/p_background.jpg);
background-size: cover;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
.btn{
width:200px;
height:50px;
border-radius: 25px;
}
a {
color: #fFF;
margin-top: 0px;
text-decoration: none;
font-size: 18px;
display: block;
}
a:hover {
color: #fff;
text-decoration: underline;
font-size: 18px;
}
a:visited {
color: #fff;
font-size: 18px;
}
/*整个tab层居中,宽度为600px*/
#tabDiv {
width: 600px;
margin: 1em auto;
padding-bottom: 10px;
border-right: #1E90FF 1px solid;
border-top: #1E90FF 1px solid;
border-left: #1E90FF 1px solid;
border-bottom: #1E90FF 1px solid;
background-color: #ffffff;
border-radius: 22px;
opacity:0.8;
}
/*tab头的样式*/
#tabsHead {
padding-left: 0px;
height: 40px;
background-color: #1E90FF;
font-size: 1em;
margin: 0px 0px 0px;
color: #1E90FF;
line-height: 26px;
border-radius: 20px;
}
/*已选tab头(超链接)的样式*/
.curtab {
padding-top: 0px;
padding-right: 10px;
padding-bottom: 0px;
padding-left: 10px;
border-right: #b2c9d3 1px solid;
font-weight: bold;
float: left;
cursor: pointer;
background: #4169E1;
line-height: 40px;
border-radius: 20px;
}
/*未选tab头(超链接)的样式*/
.tabs {
border-right: #c1d8e0 1px solid;
padding-top: 0px;
padding-right: 10px;
padding-bottom: 0px;
padding-left: 10px;
font-weight: normal;
float: left;
cursor: pointer;
background: #1E90FF;
border-radius: 20px;
}
p {
font-size: 12pt;
font-family: 华文楷体;
}
li {
border-bottom-style: solid;
border-bottom-color: #EEE;
border-bottom-width: thin;
height: 25px;
font-family: "宋体";
font-size: 12pt;
}
index.jsp
<%@ page language= "java" contentType= "text/html; charset=UTF-8"
pageEncoding= "UTF-8" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/html">
<%@page import="java.sql.*" %>
<head>
<title>石家庄铁道大学北京地铁查询系统</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="css/mysub_style.css">
<script type="text/jscript">
//图片定时转换
var curIndex=0;
var timeInterval=2000;
var arr=new Array();
arr[0]="./images/p_14.jpg";
arr[1]="./images/p__15.jpg";
arr[2]="./images/p_16.jpg";
setInterval("changeImg()",timeInterval);
function changeImg(){
var obj=document.getElementById("obj");
if(curIndex==arr.length-1){
curIndex=0;
}else{
curIndex+=1;
}
obj.src=arr[curIndex];
}
//显示当前时间
function showLocale(objD) {
var str, colorhead, colorfoot;
var yy = objD.getYear();
if (yy < 1900)
yy = yy + 1900;
var MM = objD.getMonth() + 1;
if (MM < 10)
MM = '0' + MM;
var dd = objD.getDate();
if (dd < 10)
dd = '0' + dd;
var hh = objD.getHours();
if (hh < 10)
hh = '0' + hh;
var mm = objD.getMinutes();
if (mm < 10)
mm = '0' + mm;
var ss = objD.getSeconds();
if (ss < 10)
ss = '0' + ss;
var ww = objD.getDay();
colorhead = "<font color=\"#000000\">";
if (ww == 0)
ww = "星期日";
if (ww == 1)
ww = "星期一";
if (ww == 2)
ww = "星期二";
if (ww == 3)
ww = "星期三";
if (ww == 4)
ww = "星期四";
if (ww == 5)
ww = "星期五";
if (ww == 6)
ww = "星期六";
colorfoot = "</font>"
str = colorhead + yy + "-" + MM + "-" + dd + " " + hh + ":" + mm
+ ":" + ss + " " + ww + colorfoot;
return (str);
}
function tick() {
var today;
today = new Date();
document.getElementById("localtime").innerHTML = showLocale(today);
window.setTimeout("tick()", 1000);
}
window.onload = function() {
tick();
}
function showTab(tabHeadId,tabContentId)
{
var tabDiv = document.getElementById("tabDiv");
document.getElementById('tabContent1').style.display='none';
document.getElementById('tabContent2').style.display='none';
document.getElementById('tabContent3').style.display='none';
document.getElementById('tabContent4').style.display='none'
document.getElementById(tabContentId).style.display = 'block';
var tabHeads = document.getElementById('tabsHead').getElementsByTagName('a');
for(i=0; i<tabHeads.length; i++)
{
tabHeads[i].className='tabs';
}
document.getElementById(tabHeadId).className='curtab';
document.getElementById(tabHeadId).blur();
}
</script>
</head>
<body>
<div style="width: 100%; font-family: 微软雅黑; text-align: center; font-size: 20pt; ">石家庄铁道大学北京地铁查询系统</div><br/>
<div id="localtime" style="text-align: center;"></div>
<div id="tabDiv" style="width: 1000px;">
<div id="tabsHead" >
<a id="tabs1" class="curtab" style="height:40px;width:229px;" href="javascript:showTab('tabs1','tabContent1')">线路查询</a>
<a id="tabs2" class="tabs" style="height:40px;width:229px;" href="javascript:showTab('tabs2','tabContent2')">站点查询</a>
<a id="tabs3" class="tabs" style="height:40px;width:229px;" href="javascript:showTab('tabs3','tabContent3')">起点-终点查询</a>
<a id="tabs4" class="tabs" style="height:40px;width:229px;" href="javascript:showTab('tabs4','tabContent4')">地铁线路</a>
</div>
<div id="tabContent1" style="display: block">
<form action="SubwayLine">
<table style="border-width: 0; width: 100%">
<tr>
<table border="1" style="border-left-color: #B0C4DE; border-bottom-color: #B0C4DE; width: 100%;border-top-style: solid; border-top-color: #B0C4DE; border-right-style: solid; border-left-style: solid; height: 250px; border-right-color: #B0C4DE; border-bottom-style: hidden">
<tr align="center"><td align="center" colspan="2">石家庄铁道大学北京地铁线路查询</td></tr>
<tr><td style="width: 30%" align="center">线路名称:</td><td style="width: 70%" align="center"> <select name="line" style="height:40px;width:300px;">
<option value="1号线">1号线</option>
<option value="2号线">2号线</option>
<option value="4号线">4号线</option>
<option value="5号线">5号线</option>
<option value="6号线">6号线</option>
<option value="7号线">7号线</option>
<option value="8号线">8号线</option>
<option value="9号线">9号线</option>
<option value="10号线">10号线</option>
<option value="13号线">13号线</option>
<option value="14号线">14号线</option>
<option value="15号线">15号线</option>
<option value="房山线">房山线</option>
<option value="昌平线">昌平线</option>
<option value="亦庄线">亦庄线</option>
<option value="机场线">机场线</option>
</select></td></tr>
<tr> <td style="width: 50%" align="center" colspan="2"><input type="submit" style="height:40px;width:300px;" value="查询"/><!--提交 value内的内容是按键内内容--></td>
</tr>
</table>
</td>
</tr>
<tr>
</tr>
<tr>
</tr>
</table>
</form>
</div>
<div id="tabContent2" style="display: none">
<form action="SubwayStation">
<table border="1" style="border-left-color: #B0C4DE; border-bottom-color: #B0C4DE; width: 100%;border-top-style: solid; border-top-color: #B0C4DE; border-right-style: solid; border-left-style: solid; height: 250px; border-right-color: #B0C4DE; border-bottom-style: hidden">
<tr align="center"><td align="center" colspan="2">石家庄铁道大学北京地铁站点查询</td></tr>
<tr><td style="width: 30%" align="center">站点名称:</td><td align="center"> <input type="text" style="height:40px;width:300px;" placeholder="请输入站点名称" name="name"/></td></tr>
<tr> <td style="width: 70%" align="center" colspan="2"><input type="submit" style="height:40px;width:300px;" value="查询"/><!--提交 value内的内容是按键内内容--></td>
</tr>
</table>
</form>
</div>
<div id="tabContent3" style="display: none;text-align:center">
<form action="SubwayMain2" method="POST">
<table border="1" style="border-left-color: #B0C4DE; border-bottom-color: #B0C4DE; width: 100%;border-top-style: solid; border-top-color: #B0C4DE; border-right-style: solid; border-left-style: solid; height: 250px; border-right-color: #B0C4DE; border-bottom-style: hidden">
<tr align="center"><td align="center" colspan="2">石家庄铁道大学北京地铁起点-终点查询</td></tr>
<tr><td style="width: 30%" align="center" >起点名称:</td><td> <input type="text" style="height:40px;width:300px;" placeholder="请输入起点站点名称" name="start_station"/></td></tr>
<tr><td style="width: 30%" align="center">终点名称:</td><td> <input type="text" style="height:40px;width:300px;" placeholder="请输入终点站点名称" name="end_station"/></td></tr>
<tr> <td style="width: 50%" align="center" colspan="2"><input type="submit" style="height:40px;width:300px;" value="查询"/><!--提交 value内的内容是按键内内容--></td>
</tr>
</table>
</form>
</div>
<div id="tabContent4" style="display: none;text-align:center;">
<img id="obj" src="./images/p_14.jpg" height="800" width="1000" border="1" style="margin-top:10px;" />
</div>
</div>
<hr />
<div style="text-align: center; width: 100%; font-size: 12px; color: #333;">©版权所有:石家庄铁道大学信息科学与技术学院</div>
</body>
</html>
bestresult.jsp
<%@ page import="java.util.ArrayList" %>
<%@ page import="com.SubwayBean" %>
<%@ page language= "java" contentType= "text/html; charset=UTF-8"
pageEncoding= "UTF-8" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/html">
<head>
<title>石家庄铁道大学北京地铁查询系统</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="css/mysub_style.css">
<script type="text/jscript">
//图片定时转换
var curIndex=0;
var timeInterval=2000;
var arr=new Array();
arr[0]="./images/p_14.jpg";
arr[1]="./images/p__15.jpg";
arr[2]="./images/p_16.jpg";
setInterval("changeImg()",timeInterval);
function changeImg(){
var obj=document.getElementById("obj");
if(curIndex==arr.length-1){
curIndex=0;
}else{
curIndex+=1;
}
obj.src=arr[curIndex];
}
//显示当前时间
function showLocale(objD) {
var str, colorhead, colorfoot;
var yy = objD.getYear();
if (yy < 1900)
yy = yy + 1900;
var MM = objD.getMonth() + 1;
if (MM < 10)
MM = '0' + MM;
var dd = objD.getDate();
if (dd < 10)
dd = '0' + dd;
var hh = objD.getHours();
if (hh < 10)
hh = '0' + hh;
var mm = objD.getMinutes();
if (mm < 10)
mm = '0' + mm;
var ss = objD.getSeconds();
if (ss < 10)
ss = '0' + ss;
var ww = objD.getDay();
colorhead = "<font color=\"#000000\">";
if (ww == 0)
ww = "星期日";
if (ww == 1)
ww = "星期一";
if (ww == 2)
ww = "星期二";
if (ww == 3)
ww = "星期三";
if (ww == 4)
ww = "星期四";
if (ww == 5)
ww = "星期五";
if (ww == 6)
ww = "星期六";
colorfoot = "</font>"
str = colorhead + yy + "-" + MM + "-" + dd + " " + hh + ":" + mm
+ ":" + ss + " " + ww + colorfoot;
return (str);
}
function tick() {
var today;
today = new Date();
document.getElementById("localtime").innerHTML = showLocale(today);
window.setTimeout("tick()", 1000);
}
window.onload = function() {
tick();
}
function showTab(tabHeadId,tabContentId)
{
var tabDiv = document.getElementById("tabDiv");
document.getElementById('tabContent1').style.display='none';
document.getElementById('tabContent2').style.display='none';
document.getElementById('tabContent3').style.display='none';
document.getElementById('tabContent4').style.display='none'
document.getElementById(tabContentId).style.display = 'block';
var tabHeads = document.getElementById('tabsHead').getElementsByTagName('a');
for(i=0; i<tabHeads.length; i++)
{
tabHeads[i].className='tabs';
}
document.getElementById(tabHeadId).className='curtab';
document.getElementById(tabHeadId).blur();
}
</script>
</head>
<body>
<div style="width: 100%; font-family: 微软雅黑; text-align: center; font-size: 20pt; ">石家庄铁道大学北京地铁查询系统</div><br/>
<div id="localtime" style="text-align: center;"></div>
<div id="tabDiv" style="width: 1000px">
<div id="tabsHead">
<a id="tabs1" class="curtab" href="javascript:showTab('tabs1','tabContent1')">线路规划查询结果</a>
</div>
<div id="tabContent1" style="display:block ">
<form action="lineresult.jsp">
<table style="border-width: 0; width: 100%; padding: 5px; ">
<tr>
<table border="1" cellpadding="10" style=" border-left-color: #B0C4DE; border-bottom-color: #B0C4DE; width: 100%;border-top-style: solid; border-top-color: #B0C4DE; border-right-style: solid; border-left-style: solid; height: 250px; border-right-color: #B0C4DE; border-bottom-style: solid">
<h2 align="center">北京地铁最优路线换乘查询结果</h2>
<h4 align="center">我们为您列出了所有可能的路线,第一条为最优路线,请您视情况选择最佳路线</h4>
<tr>
<th align="center" bgcolor="#F0FFFF" ><%="起始站"%></th>
<th align="center" bgcolor="#F0FFFF" ><%="终点站"%></th>
<th align="center" bgcolor="#F0FFFF" ><%="经过站数"%></th>
<th align="center" bgcolor="#F0FFFF" ><%="具体路线"%></th>
</tr>
<%
response.setContentType("text/html;charset=UTF-8");
ArrayList<SubwayBean> arr = (ArrayList<SubwayBean>) request.getAttribute("routeMain");
SubwayBean subwayBean1 = new SubwayBean();
subwayBean1._StartStation = arr.get(0)._StartStation;
subwayBean1._EndStation = arr.get(0)._EndStation;
subwayBean1._Number = arr.get(0)._Number;
subwayBean1._Path = arr.get(0)._Path;
%>
<tr>
<td align="center" bgcolor="#f5f5dc"><%=subwayBean1._StartStation%></td>
<td align="center" bgcolor="#f5f5dc"><%=subwayBean1._EndStation%></td>
<td align="center" bgcolor="#f5f5dc"><%=subwayBean1._Number%></td>
<td align="center" bgcolor="#f5f5dc"><%=subwayBean1._Path%></td>
</tr>
<%
for (int i = 1; i < arr.size(); i++) {
SubwayBean subwayBean = new SubwayBean();
subwayBean._StartStation = arr.get(i)._StartStation;
subwayBean._EndStation = arr.get(i)._EndStation;
subwayBean._Number = arr.get(i)._Number;
subwayBean._Path = arr.get(i)._Path;
%>
<tr>
<td align="center" bgcolor="#F5F5F5"><%=subwayBean._StartStation%></td>
<td align="center" bgcolor="#F5F5F5"><%=subwayBean._EndStation%></td>
<td align="center" bgcolor="#F5F5F5"><%=subwayBean._Number%></td>
<td align="center" bgcolor="#F5F5F5"><%=subwayBean._Path%></td>
</tr>
<%
}
%>
</td>
</tr>
</table>
</td>
</tr>
<tr>
</tr>
<tr>
</tr>
</table>
</form>
</div>
</div>
<hr />
<div style="text-align: center; width: 100%; font-size: 12px; color: #333;">©版权所有:石家庄铁道大学信息科学与技术学院</div>
</body>
</html>


浙公网安备 33010602011771号