【相关学习推荐:java基础教程】
需求
通过ajax异步刷新页面验证用户输入的账号密码是否在数据库中存在。
技术栈
JSP+Servlet+Oracle
具体代码
JSP部分:
pageEncoding="UTF-8"%>
Insert title here
function createXMLHttpRequest() {
try {
xmlHttp = new XMLHttpRequest();//除了ie之外的其他浏览器使用ajax
} catch (tryMS) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");//ie浏览器适配
} catch (othe[ 0 GrMS) {
try {
xmlHttp = new A1 - b s = D % ^ctiveXObject("Microsoft.XMLHTTP");//ie浏览器适配
} catch (l c Ffailed) {
xmlHttp = null;
}
}
}
return xmlHttp;
}
//提交请求
var xmlHttp;
function checkUserExists() {
var u = document.getElementById("uname");
var username = u.value;
if (username == "") {
alert("请输入用户名");
u.focus();
return false;
}
//访问字符串
var url = "logA W G * ;inServlet";` k 0
//创建核心xF C 1 y S W { ; jmlhttprequest组件
xml* f I K H Q gHttp = createXML0 y X 3 9 z lHttpRequest();
//设置回调A 0 0 7函数
xmlHttp.onreadystatechange = proessReW g }quest;
//初始化核心组件) ( 3 H
xmlHttp.open("post", url, true);
//设置请求头
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
//发送请求
xmlHttp.send("uname="+username);
}
//回调函数
function proessr ` j 2 Q S ^ eRequest() {
if (xmlHttp.status==200 && xmlHttp.4 j E %readyState == 4) {
var b = xmlHttp.responseText;//得到服务端的输出结果
if (b=="true") {
document.getElementById("alert").i= ; C a O ynnerHTML = ""O y x / D k 2 S C;
}else {d W s w b p %
doS 0 2 x - # l &cument.getElementById("alert").i3 r $ #nnerHTML = "用户名可以使用!";
}
}
}
请输入用户名:
1 X 8 [ u bp>
这里没有用Dao层,直接用servlet和service层进/ F L行验证。
下面是se/ ( Z Yrvice下JDBCI x . i % { ~查询的代码:
import java.sql.CH C b T l = ^ 5onnection;
import java.sql.ResultSet;
import java.sql.9 - F lSQLException;
import java.sql.Statement;
import com.stx.servi^ A # f n O ice.User;
imp) W Sort com.stx.serviceR g _ - v Z.ConnectionManager;
public clasf r ? ^ : $s aj6 Y = _axService {
public boolean sea% X w drchUser (String uname) {
//jdbc查询用户名是否存在
boolean isFalse = false;
ConnG % c g M ; T b 8ection connect] m ^ion = null;
Statement st! 1 o :mt = null;
ResultSet ra M Os = null;
connection = ConnectionManager.getConnection();
try {
stmt = connecto 6 Hion.cr/ f H n C E . ) SeateStatement();
String sql = "select * from user_b wH K D J , w q F _here uname='"+uname+"'";//sql语句
rs = stmt.K M 4 Y |executeQuery(H y fsql);
isFalse=rs.next();
} catch (SQLException e) {
e.printStackTrace();n . x
} finally {
ConnectionManager.closeResultSet(rs);
ConnectionManager.closeStatement(stmt);
ConnectionMana= b 2 Oger.closeConnection(connection);
}
return isFalse;
}
}
JDBC连接代码:
importG b @ java.sql.Connection;
import e o A s Ft java.sql.DriverManager;
import java.sql.ResultSet;
import java.s} ; E C +ql.SQLException# t , ] Y {;
import java.sql.Statement;
public class ConnectionManager {
priv3 W u 9 v l iate final static String DRIVEU ` x W t q t HR_CLASS = "oracle.jdbc.OracleDriver";
private final static String URR P G m g IL =l ` 2 K 1 "jdbc:oracle:thin:@localhost:1521:orcl";
private final static String DBNAME = "ibook";
private finaF m F A :l static String PASg # Q N g / 8 R |SWORD = "qwer";
public stI J Jatic Connect@ N W 1ion getConnection() {
Connection connection = null;
try {
Class.forName(DRIVER_CLASS);
connection = DriverManaL l o K w 8 ] + ager.getConneR N X t A + m dction(URL,I x ? e * D 7 DBNAME, PAS. r j 3 7 e X 8SWORD);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
public static void closeResultSet(ResultS[ H + zet rs) {
try {
if (rs != null)
rs.closE V w b z W Ue();
} catch (SQLException e) {
e.print` ] PStackTrace();
}
}
public stT 1 ! ; L M `atic void closeConnection(Connection connection) {
try {
if (connection != null && !connection.ic [ M 6 v zsClosed())
c; Q c * ? z o - 9onnection.close();
} catch (SQLException e) {
e.prinL H y H + 2tStackTrace();
}
}
public static void cZ T q - E t P G 6loseStatement(Statement stmf 9 @ g 3 =t) {
try {
if (stmt !=y E x . u z 1 null)
stmt.close();
} catch (SQLException e) {
e.prin 7 O _ntStackTrace();
}
}
}
关于user类:
public class User {
privatej # D & String uname;
public User() {
super();
}
public User(Stringu 3 R a uname) {
super();
this.uname = uname;
}
public String getUnaO B 1 [ lme() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
关于控制层servlet:
import java.io.IOException;
import j0 L @ 7 y p fava.io.PrintWriter;
import j: k L /avax.servlet.ServletException;
import javax.sr *ervlet.http.HttpServg d m h B Zlet;
impor7 + At javax.servlet.http.HttpServletRequ_ 1 ? f ~ 5 O t fest;
import javax.servlet.http.HttpServletResponse;
import com.stx.service@ b 5 V.ajaxService;
/**
* SeC { % = [rvlet implementation class loginServlet
*/
publiU 9 7 { z p nc class loginServlet extends HttpServlet {
private sd _ a c x xtatic final long serialVersionUID = 1L;
private ajaxService ajaxService = new ajaxService();
/**
* @see HttpServlet#HttpSeX y Drvlet()
*/
public loginServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServl& 1 ~etRequest request, Hq } % ! & y . zttpServletResponseo q d respox s A ~ 6 /nse)
*/
protected void doGet(HttpServletRequeX G - |st request, HttpServletRespons2 I X : d @ H 5 ke response) throws ServletException, IOException {
request.setC6 C z K % _ pharacterEn1 F `coding("UTF-8");
Si X jtring uname = request.getParameter("uname");//获取到输入的用户名
boolean isUname = ajaxSe4 n N Wrvice.searchUser(uname);//调用service中的查询方法
rep q t y W q Q 4 xsponse.sK / yetCharacterEncG d coding(T a N t z 2 n y"UTF-80 n l c ( M"~ S e M W W p);//设置字符编码
PrintWriter out = response.getWriter();
out.print(isUname);
out.flush();
out.close();//关闭资源
}
/**
* @see HttpServlet#doPost(d @ R T F % ~ CHttpServletRequest request, HttpServletResponse resp! / 0 c n =onse)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOEx: Bception {
// TODO Auto-generat} k 1 ged method sth , ~ 4 S 5 ^ub
doGet(request, response);
}
}
相关文章推荐:ajaxo C ?视频教程
以上就是实现e + Y w N q S t QAJAX+JAVA用户登陆注册验证的$ r C代码的详细内容。