前端部分:
index.html
<html lang="en">
<head>
<meta charset="UTF-8">
<title>AHPU Freshman dormitory inquirytitle>
<script src="confirm.js">script>
<style>
html,body{
margin:0px;
padding:0px;
}
.main{
position: relative;
width:500px;
height:500px;
background: url(image/ahpu1.jpg) no-repeat;
margin:10px auto;
}
form>div{
margin:20px 10px;
}
address{
position: absolute;
bottom:20px;
left:30px;
}
style>
head>
<body>
<div class="main">
<form action="FindRoom/findInfo" method="post" >
<div>
<label for="sname" >姓名label>
<input type="text" name="sname" id="sname" required>
div>
<div>
<label for="sid">学号label>
<input type="text" name="sid" id="sid" required>
div>
<div>
<input id="submit" type="submit">
<input id="reset" type="reset">
div>
form>
<address><a href="javavscript:">双微工作室a>address>
div>
body>
html>
confrim.js:
var EventUtil={
addhandler:function(element,type,handler){
if(element.addEventListener){
element.addEventListener(type,handler,false);
}else if(element.attachEvent){
element.attachEvent("on"+type,handler);
}else{
element["on"+type]=handler;
}
},
removehandler:function(element,type,handler){
if(element.removeEventListener){
element.removeEventListener(type,handler,false);
}else if(element.detachEvent){
element.detachEvent("on"+type,handler);
}else{
element["on"+type]=null;
}
},
getEvent:function(event){
return event?event:window.event;
},
getTarget:function(event){
return event.target || event.srcElement;
},
preventDefault:function(event){
if(event.preventDefault){
event.preventDefault();
}else{
event.returnValue=false;
}
},
stopPropagation:function(event){//只能阻止事件冒泡
if(event.stopPropagation){
event.stopPropagation();
}else{
event.cancelBubble=true;
}
}
};
function confirmName(){
if(((sname.value).trim).length!=0){
reg=/^[\u4e00-\u9fa5]{1,10}$/;
if(!reg.test(sname.value)){
sname.value="";
alert("请输入正确的姓名");
}
}
}
function confirmSid(){
if(((sid.value).trim()).length!=0){
reg=/^([0-9]){10,10}$/;
if(!reg.test(sid.value)){
sid.value="";
alert("请输入正确的学号");
}
}
}
function confirm(){
EventUtil.addhandler(sname,"blur",confirmName);
EventUtil.addhandler(sid,"blur",confirmSid);
}
window.onload=function(){
var sname=document.querySelector("#sname");
var sid=document.querySelector("#sid");
var po=document.querySelector("#submit");
confirm();
EventUtil.addhandler(po,"submit",confrimName);
EventUtil.addhandler(po,"submit",confrimSid);
};
后端java部分:
package FindRoom;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
//import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class findInfo extends HttpServlet {
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/RoomQuery";
// 数据库的用户名与密码,需要根据自己的设置
static final String USER = "root";
static final String PASS = "cd7089028";
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.log("执行doGet方法....");
this.execute(request, response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
this.log("执行doPost方法....");
this.execute(request,response);
}
//执行方法
public void execute(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
//StringBuffer requestURI=request.getRequestURL();
// String method=request.getMethod();
String sname=request.getParameter("sname");
String sid=request.getParameter("sid");
response.setContentType("text/html");
//RequestDispatcher dispatcher=request.getRequestDispatcher("/RoomQuery/findInfo");
Connection conn = null;
Statement stmt = null;
try{
// 注册 JDBC 驱动
Class.forName(JDBC_DRIVER);
// DriverManager.registerDriver(new com.mysql.jdbc.Driver());
// 打开链接
System.out.println("连接数据库...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
// 执行查询
System.out.println(" 实例化Statement对...");
stmt = conn.createStatement();
String sql;
sql = "SELECT * FROM SumRoid where SId="+sid;
ResultSet rs = stmt.executeQuery(sql);
// 展开结果集数据库
while(rs.next()){
// 通过字段检索
String flatNum=rs.getString("FlatNum");
String bedrootNum=rs.getString("BedroomNum");
String name = rs.getString("Sname");
String Sid = rs.getString("SId");
String ssex=rs.getString("Ssex");
String academy=rs.getString("academy");
String major=rs.getString("major");
// 输出数据
out.println("");
out.println(" A Servlet ");
out.println("");
out.println("");
out.println(""
+sname+"同学欢迎你");
out.println("公寓号:"
+flatNum+""
+"寝室号: "
+ bedrootNum+""
+"姓名: "
+ name+""
+"学号: "
+ Sid+""
+"性别: "
+ ssex+""
+ "学院: "
+ academy+""
+"专业: "
+ major+"");
}
out.println("");
out.println("");
// 完成后关闭
rs.close();
stmt.close();
conn.close();
out.flush();
out.close();
}catch(SQLException se){
// 处理 JDBC 错误
se.printStackTrace();
}catch(Exception e){
// 处理 Class.forName 错误
e.printStackTrace();
}finally{
// 关闭资源
try{
if(stmt!=null) stmt.close();
}catch(SQLException se2){
}// 什么都不做
try{
if(conn!=null) conn.close();
}catch(SQLException se){
se.printStackTrace();
}
}
}
}
数据库mysql部分:
create table SumRoid(FlatNum char(10),BedroomNum char(3),Sname char(10),SId char(15),Ssex char(2),academy char(30),major char(20));
3 . 将数据读入mysql数据库中:
load data local infile 'A:/stu.txt' into table SumRoid;
至此,一个超级简单的查询系统已完毕。
说明:
1. 在做表单输入验证时,bug很多;
2. jdbc的驱动一定要导入web-inf lib中;
3. web.xml配置一定要检查好;
4. 不能预防sql注入;