ajax获取返回随机数,AJAX
AJAX
AJAX:即“Asynchronous Javascript And XML”(異步的JavaScript和XML),是指一種創建交互式網頁應用的網頁開發技術,尤其是在一種在無需重新加載整個網頁的情況下,能夠更新部分網頁的技術。
傳統Web開發
World Wide Web(簡稱Web):是隨著Internet的普及使用而發展起來的一門技術,其開發模式是一種請求→刷新→響應的模式,每個請求由單獨的一個頁面來顯示,發送一個請求就會重新獲取這個頁面。
Ajax采用異步通信,主要以數據交互為主;傳統的web開發采用同步通信,主要以頁面交互為主。
例子:在頁面寫一個生成隨機數的表單
用form表單提交的方式
index.jsp
$Title$${num}
random.do
@WebServlet(name = "randomServlet",urlPatterns = "/random.do")
public class randomServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String strmax = request.getParameter("max");
int max = Integer.parseInt(strmax);
Random random = new Random();
int num = random.nextInt(max);
request.setAttribute("num",num);
request.setAttribute("max",max);
request.getRequestDispatcher("index.jsp").forward(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
用這種方式是向后臺提交整個網頁
下面用ajax方式
ajax請求步驟
1.創建Ajax對象
var request = new XMLHttpRequest();
2.連接服務器
open(method,url,async);
request.open("get","query.do",true);
//get或者post(多用get),請求的服務器地址,同步(false)或者異步(true)請求
3.發送請求
send(string)
在使用GET方式請求時無需填寫參數,對數據庫無害的時候用get
req.open('get','random.do?max=100‘,true);
req.send();
在使用POST方式時參數代表著向服務器發送的數據
req.open('post','random.do',true);
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
//post請求需要設置HTTP頭信息,否則發送數據有問題
req.send('max=100');
4.接收服務器相應數據
req.onload = function () {
console.log(req.responseText);
}
index.jsp
$Title$function getNum() {
var input = document.getElementById("max");
//以ajax的方式(js),向服務器發出請求,收到回應(回應中包含服務器生成的隨機數)
//1.創建ajax請求對象
var req = new XMLHttpRequest();
//2.調用第一步中創建的req對象的open方法,設置連接服務器的信息
//open(method,url,async);method是post或者get,url是鏈接地址,async是true(異步)或者false(同步)
req.open("get","random.do?max="+input.value,true);
//3.真正向服務器發出該請求
req.send();
//4.處理服務器的回應,服務器回應的數據可以在req對象的responseText屬性中獲得
req.onload = function () {
//將該隨機數顯示在id是num的div中
var div = document.getElementById("num");
div.innerHTML = req.responseText;
}
}
random.do
@WebServlet(name = "randomServlet",urlPatterns = "/random.do")
public class randomServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String strmax = request.getParameter("max");
int max = Integer.parseInt(strmax);
Random random = new Random();
int num = random.nextInt(max);
PrintWriter printWriter = response.getWriter();
printWriter.println(num);
// request.setAttribute("num",num);
// request.setAttribute("max",max);
// request.getRequestDispatcher("index.jsp").forward(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
ajax校驗用戶名是否已存在
index.jsp
$Title$function check() {
var input = document.getElementById("username");
var req = new XMLHttpRequest();
req.open("get","reg.do?username="+input.value,true);
req.send();
req.onload = function () {
var span = document.getElementById("msg");
if(req.responseText == 1){
span.innerHTML = "用戶名已經存在";
span.style.color = "red";
}
else{
span.innerHTML="可以注冊";
span.style.color = "green";
}
}
}
name:
hobby:
reg.do
@WebServlet(name = "regServlet",urlPatterns = "/reg.do")
public class regServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
if(username.equals("admin")){
response.getWriter().println(1);
}
else {
response.getWriter().println(0);
}
}
}
總結
以上是生活随笔為你收集整理的ajax获取返回随机数,AJAX的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux编写复制脚本程,常用的Shel
- 下一篇: 查询 oracle_ORACLE数据库查