文本输入一个人的学号,当光标离开输入框时,文本框内显示该学号对应的姓名
Reg.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W 3C //DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'p1.jsp' starting page</title>
</head>
<body>
<SCRIPT LANGUAGE="JavaScript">
function getName(){
var stuId = document.queryForm.stuId.value;
var xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
xmlHttp.open("GET", "queryName.do?stuId="+stuId, true);
xmlHttp.onreadystatechange=function() {
if (xmlHttp.readyState==4) {
document.queryForm.stuId.value = xmlHttp.responseText;
}
}
xmlHttp.send();
}
</SCRIPT>
<form name="queryForm">
请您输入学生学号:<input type="text" name="stuId" onblur="getName()"><BR>
<input type="button" value="提交按钮">
</form>
<hr>
</body>
</html>
QueryNameAction.java
package prj29_1.action;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import dao.StudentDao;
public class QueryNameAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String stuId = request.getParameter("stuId");
StudentDao sdao = new StudentDao();
String stuName = sdao.getNameById(stuId);
response.setCharacterEncoding("gb2312");
System.out.println(stuName);
try{
PrintWriter out = response.getWriter();
if(stuName==null) {stuName = "该学生不存在";}
out.print(stuName);//相当于给客户端的输出,将会在页面上显示
}catch(Exception ex){}
return null;
}
}
package dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.ArrayList;
import po.Student;
//访问数据库
public class StudentDao {
private Connection conn = null;
public void initConnection(){//初始化数据库连接
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:School","scott","tiger");
}catch(Exception ex){ex.printStackTrace();}
}
public String getNameById(String stuId){
String sql = "SELECT 姓名 FROM 学籍 WHERE 学号='"+stuId+"'";
try{
this.initConnection();
ResultSet rs = conn.createStatement().executeQuery(sql);
if(rs.next()){
return rs.getString("姓名");
}
}catch(Exception ex){
ex.printStackTrace();
}
finally{
this.closeConnection();
}
return null;
}
public void closeConnection(){
try{
if(conn!=null){
conn.close();
conn = null;
}
}catch(Exception ex){ex.printStackTrace();}
}
}
=====================================================