form表单提交后ajax异步调用另一个url


... ...
提交
Submit
function submitForm(){ if(_finst_taskComment.value==""){ alert("请填写审批意见"); }else{ document.getElementsByTagName("form")[0].submit(); } }


另一个url如http://........

2个回答

 function submitForm(){ 
if(_finst_taskComment.value==""){ alert("请填写审批意见"); }
else{ 
document.getElementsByTagName("form")[0].action='xxxxxxxxxxxxxxxxxx';///更改action属性就行
document.getElementsByTagName("form")[0].submit();
} 
} 
qq_27446037
qq_27446037 能给个小例子吗?我是新手
大约 5 年之前 回复
showbo
支付宝加好友偷能量挖 回复qq_27446037: 那不是在你ajax回调完毕后用location.href='xxxxxx'进行跳转就好了
大约 5 年之前 回复
qq_27446037
qq_27446037 提交后ajax异步调用一个url如http://IP地址......,后跳转到xxx.jsp页面
大约 5 年之前 回复
showbo
支付宝加好友偷能量挖 回复qq_27446037: 你要ajax异步提交表单就不要调用submit,submit会导致页面刷新。导入jquery,直接$.ajax({url:'xxxxxxxx.jsp',data:$(document.forms[0]).serialize(),type:'POST'....})提交就行。http://www.w3school.com.cn/jquery/ajax_ajax.asp
大约 5 年之前 回复
qq_27446037
qq_27446037 刚开始的<form action="xxx.jsp" method="post">...</form>,异步调用一个url
大约 5 年之前 回复
showbo
支付宝加好友偷能量挖 回复qq_27446037: 表单提交跳转了没有,跳转了无法执行ajax了。
大约 5 年之前 回复
qq_27446037
qq_27446037 有点不明白?
大约 5 年之前 回复

DEMO


 <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js"></script>
 <form method="post" onsubmit="return check(this)">
 name:<input type="text" name="name" /><br />
 pwd:<input type="password" name="pwd" /><input type="submit" value="提交" />
 </form>
 <script>
     function check(f) {
         if (f.name.value == '') { alert('请输入name!'); f.name.focus(); return false; }
         if (f.pwd.value == '') { alert('请输入pwd!'); f.pwd.focus(); return false; }
         $.ajax({ url: '你要提交到的地址', data: $(f).serialize(), type: 'POST', complete: function (xhr) {

             alert('服务器返回内容:' + xhr.responseText);

             if (xhr.responseText == '1') { //你动态页验证成功就输出1就行,其他不需要输出

                 location.href = 'xxxxxxxxxxxxxxx';//要跳转到的地址
             }
         }
         });

         return false;//阻止表单提交
     }
 </script>
showbo
支付宝加好友偷能量挖 回复qq_27446037: document.getElementsByTagName("form")[0].submit(); 都说不了不能提交表单,提交表单就会刷新页面跳到action指定的页面去了
大约 5 年之前 回复
qq_27446037
qq_27446037 <html> <body> <form method="post" action="gdgl_submit.jsp" method="post"> ...... </form> <div class="tabbar_item tc pointer c_white px14" onClick="submitForm()">提交<br/>Submit</div> </body> <script type="text/javascript"> function submitForm(){ if(_finst_taskComment.value==""){ alert("请填写审批意见"); }else{ document.getElementsByTagName("form")[0].submit(); } </script > </html> url="http://10.242...." 提交后ajax异步调用一个url如http://IP地址......,后跳转到gdgl_submit.jsp页面 不用jQuery
大约 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
ajax form 同步提交问题

代码如下(表单里有文件file 需要到后台验证大小) var limitFlg ; function chuli(){ uuid();//调用下面的ajax函数 alert(limitFlg);//显示了undefined 而没显示false和true //好像不是同步提交的 像是异步提交的 } function uuid(){ //先执行ajax到后台验证 $("#form1").form('submit',{ async: false, url: path+'/fax/singleSend/verifyLimit.html', success:function(data){ if(data=='fail'){ //给全局变量定义标志 limitFlg = true; alert('上传文件不能大于2M,请精简上传文件'); }else{ limitFlg = false; } } }); }

求大神帮忙,基于SSH框架的ajax异步提交的几个问题!谢谢了!

我这边有几个问题 1.基于SSH框架的ajax异步提交,在action中返回值怎么写? 2.在struts.xml中的result怎么配置? 3.还有一个问题就是我在jsp页面怎么不能触发失去焦点事件。 楼下我会贴出的我的代码

ajax提交请求在后台controller里取不到session中值

ajax提交请求在后台controller里request.getSession().getAttribute("user");取不到值 在其他controller里却可以取到,急求解决办法 function doSubmit(){ if (Verification() == false) { return; } $.ajax({ url:"/trips/doCreate", async: false, data:$("#doCreate").serialize(), type: "POST", success: function(data){ alert("执行到了"); $("#myModal").modal("show"); }, error: function(e) { alert(e); } }); }; 这是我的ajax方法

为什么ajax只执行一次

登陆界面用ajax提交表单的方式进行登陆后,进入一个页面,若在此页面通过a标签返回到登陆页后就无法在进行登陆,ajax不再执行,请问这种方式要如何解决。![图片说明](https://img-ask.csdn.net/upload/201502/10/1423558416_235420.png)

jquery.form.js异步上传完图片在post表单为啥post不了

下面是一个post表单 @using (Ajax.BeginForm("AddNewsInfoModel", "AdminNewsList", new AjaxOptions() { HttpMethod = "post", OnSuccess = "afterAdd" }, new { id = "Form1" })) { <table> <tr><td>标题</td><td><input type="text" name="Title"/></td></tr> <tr><td>作者</td><td><input type="text" name="Author" /></td></tr> <tr> <td>上传图片</td> <td><input type="file" name="FileUp" id="FileUpImage"/> <input type="submit" value="上传图片" id="btnFileUp"/> <input type="hidden" id="hidfileimage" name="ImagePath" /> <div id="ShowImage"> </div> </td> </tr> <tr> <td>新闻内容</td> <td> <input type="text" id="MsgContent" name="Msg"/> </td> </tr> </table> } </div> 先是异步上传图片,在post整个表单 function fileUpLoad() { $("#btnFileUp").click(function () { if ($("#FileUpImage").val() == "") { $.messager.alert("提示", "请选择要上传的文件", "info"); return; } $("#Form1").ajaxSubmit({ type: "post", enctype: 'multipart/form-data', url: "/AdminNewsList/FileUpLoad", success: function (data) { var servrdata = data.split(':'); $("#hidfileimage").val(servrdata[1]); if (servrdata[0] == "ok") { $("#ShowImage").append("<img src='" + servrdata[1] + "' width='40px' height='40px' />"); } else { $.messager.alert("提示", servrdata[1],"info"); } } }); return false; }); } 接下来post表单但是post不了 function submitform() { $("#Form1").submit(); } 在父窗体调用submitform handler: function () { var child = $("#AddNewsFrame")[0].contentWindow; child.submitform(); } 但是post不了 请大神帮忙看看

POST表单异步调用php文件

<div class="post-text" itemprop="text"> <p>Could anyone help me at this? I'm trying to make an AJAX contact form, here's what I want to do:</p> <ol> <li>Validate certain format on HTML POST form through JS.</li> <li>If valid, enable form submit button; and after being pressed.</li> <li>Make a XML request to a mail.php file that processes the post request.</li> <li>Modify the DOM according to the mail.php response.</li> </ol> <p>Here's my code:</p> <pre><code>&lt;?php // bool mail( string $to, string $subject, string $message [, string $additional_headers [, string $additional_parameters ] ] ) if(isset($_POST['email'])) { $email_to = "my_test_mail@gmail.com"; $email_subject = "Correo de pruebas"; $email = $_POST['email']; $name = isset($_POST['nombre']) ? $_POST['nombre'] : "Sin nombre"; $telephone = isset($_POST['telefono']) ? $_POST['telefono'] : "Sin numero"; $nopal = isset($_POST['tor-nopal']) ? "Si" : "No"; $maiz = isset($_POST['tor-maiz']) ? "Si" : "No"; $harina = isset($_POST['tor-harina']) ? "Si" : "No"; $message = $_POST['mensaje']; function clean_string($string) { $bad = array("content-type", "bcc:", "to:", "cc:", "href"); return str_replace($bad, "", str_replace(" ", " ", $string)); } $email_message = "Nombre: ".clean_string($name)." "; $email_message .= "Correo electronico: ".clean_string($email)." "; $email_message .= "Telefono: ".clean_string($telephone)." "; $email_message .= "Nopal: ".clean_string($nopal)." "; $email_message .= "Maiz: ".clean_string($maiz)." "; $email_message .= "Harina: ".clean_string($harina)." "; $email_message .= "Mensaje: ".clean_string($message)." "; $headers = "MIME-Version: 1.0 ". "Content-Type: text/plain;charset=UTF-8 ". "From: Pruebas &lt;juanc_94_konoha@hotmail.com&gt; ". "Reply-To: ".$email." ". "Subject: Contacto tortillas ". "X-Mailer: PHP/".phpversion(); if( mail($email_to, $email_subject, $email_message, $headers) ) echo "0"; else echo "1"; } else echo "-1"; ?&gt; </code></pre> <p>My HTML form:</p> <pre><code>&lt;form method=post action="./mail.php"&gt; &lt;fieldset&gt;&lt;label for=email&gt;Correo el&amp;eacute;ctronico:&lt;/label&gt; &lt;input type=email name=email id=email placeholder="usuario@ejemplo.com.mx" required&gt;&lt;/fieldset&gt; &lt;fieldset&gt;&lt;label for=nombre&gt;Nombre:&lt;/label&gt; &lt;input type=text name="nombre" id=nombre&gt;&lt;/fieldset&gt; &lt;fieldset&gt;&lt;label for=telefono&gt;Telefono:&lt;/label&gt; &lt;input type=tel name="telefono" id=telefono&gt;&lt;/fieldset&gt; &lt;fieldset&gt;&lt;label&gt;&lt;input type=checkbox name="tor-nopal"&gt; Nopal&lt;/label&gt; &lt;label&gt;&lt;input type=checkbox name="tor-maiz"&gt; Ma&amp;iacute;z&lt;/label&gt; &lt;label&gt;&lt;input type=checkbox name="tor-harina"&gt; Harina&lt;/label&gt;&lt;/fieldset&gt; &lt;fieldset&gt;&lt;label for="mensaje"&gt;Mensaje&lt;/label&gt; &lt;textarea max-width=500 name="mensaje" id=mensaje max-length=498 required&gt;&lt;/textarea&gt;&lt;/fieldset&gt; &lt;br /&gt;&lt;br /&gt; &lt;input type=submit value=Enviar&gt; &lt;/form&gt; </code></pre> <p>And here's the basic draft of my JS code:</p> <pre><code>function contactSubmitStatus() { var form = document.forms[0]; if(request.readyState === 4) if(request.status === 200) if(request.responseText == "0") { document.getElementsByTagName("h3")[0].innerHTML = "&amp;iexcl;Gracias por contactarnos!"; fade("out", 1500, form, IE_check()); form.remove; } else if(request.responseText == "1") { var explanation = document.createElement("p"); explanation.innerHTML = "Tus datos est&amp;aacute;n aparentemente bien pero hubo un problema en el servidor. Por favor intenta mas tarde o envianos un correo electr&amp;oacute;nico desde tu cliente de correos. (i.e: https://mail.google.com/)"; explanation.setAttribute("id", "warning-node"); form.appendChild(explanation); fade("in", 1000, explanation, IE_check()); } } function contactForm() { document.getElementsByName("email")[0].addEventListener("blur", isEmail); document.getElementsByName("mensaje")[0].addEventListener( "blur", isMsgValid); document.getElementsByName("submit")[0].addEventListener("click", function() { var request = createRequest(), form = document.forms[0], p = document.createElement("p"); if(request == null) { alert("Tu navegador no permite transacciones asincronas, prueba con otro navegador."); return; } else { request.onreadystatechange = contactSubmitStatus; request.open("POST", form.action, true); request.send(new FormData(form)); p.setAttribute("id", "contact-status"); p.innerHTML = "Procesando datos..."; form.appendChild(p); } }); } </code></pre> <p>The script worked. Only the form redirected me to /mail.php and only displayed 0. Which means the mail should have been sent but the email was not even in my spam mailbox. I'm guessing I have to configure a mail server on my workstation to test this kind of things, and I don't have a hosting yet to use for testing.</p> <p>On regards to the browser loading redirecting to '/mail.php', do you think I need to use GET instead? 'Cuz I'm actually expecting a result to act upon. And since I would be using GET my php would need to use $_REQUEST instead of $_POST, right?</p> <p>I'm sorry, maybe this is overwhelming but php is not my forte.</p> </div>

ajax无法发送请求,后台也未接收到请求

试了很多次,表单提交后,到alert(data)一句(包括这一句)都执行正常,但之后的ajax语句就无法发送请求,ajax语句里面的几个alert也没有运行,最后的alert('1')也没有运行(异步请求正常运行的话应该是会执行的吧) 以下是前端代码,本来代码是要复杂些的,但我调试的时候把代码简化了,基本确定是ajax语句的问题了。 ``` $(function () { 'use strict'; $('#login_form').submit(function (event) { event.stopPropagation(); event.preventDefault(); var nickname = $('#login_form').find('#login_nickname').val(); var pwd = $('#login_form').find('#login_password').val(); if (!nickname || !pwd) { $('#login_text').show(); } var raw_data = { title: 'login', nickname: nickname, password: pwd } var data = JSON.stringify(raw_data); alert(data); $.ajax('/login', { dataType: 'json' }).done(function (data) { alert('成功'); }).fail(function (xhr, status) { alert('失败'); }).always(function () { alert('请求完成: 无论成功或失败都会调用'); }); alert('1'); }); }); ``` 后端代码如下,用的是flask。按理来说即便url不对,后台也应该有请求记录的,然而后台并没有显示该记录 ``` @app.route('/login',methods=['POST',]) def login(): if g.user is not None and g.user.is_authenticated: flash('You have already logged in!') return redirect(url_for('home')) raw_data=request.get_data() print(raw_data) data=json.loads(raw_data) print(data[pwd],data[nickname]) resp=dict(success = True,text ='limbohotmore!') return json.dumps(resp) ``` 后台记录如下,无论提交几次表单,都只有第一次获取主页面的请求记录 ``` * Restarting with stat * Debugger is active! * Debugger PIN: 289-281-425 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit) 127.0.0.1 - - [26/Jul/2019 12:52:27] "GET / HTTP/1.1" 200 - ```

ssm 框架已经实现,但是ajax返回验证有毛病

``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>js+ajax</title> <script type="text/javascript" src="static/bootstrap/js/jquery-2.0.3.js"></script> <script type="text/javascript"> function validate(){ var name= $("#name").val(); if(name==null||name==""){ //为空隐藏提交按钮 var ui =document.getElementById("tijiao"); ui.style.display="none"; //这里是简单的显示 不设计后台,前台做的判断 $("#namediv").html("用户名不可以为空"); }else{ //ajax实现 //11111111获取XMLhtmlRequestxml对象 var req=createXmlHttpRequest(); //222222222准备url 数据 回调函数 //这个name是function下面var的参数. var url="/maven/reg1.do?name="+name; //还有一个参数表示的是异步还是同步,一般不写直接就是true,异步的 req.open("GET",url,true); //3333333333这个就是回调函数 req.onreadystatechange=callback; //这个send是在从servlet判断你的账号是不是存在, 如果是true就说名字存在,给页面返回了以后才有的.为啥写空不知道 //4发送请求 req.send(null); //回调函数 function callback(){ //第一个是我们的服务器成功接受了响应,并且解释了出来,状态4 第二个是服务器内部没有发生错误, url什么的也没有错, if(req.readyState=4&&req.status==200){ var date=req.responseText; if(date=="false"){ //下面的是意思是,如果账号存在了,提交按钮自动消失 //超级叼 var ui =document.getElementById("tijiao"); ui.style.display="none"; $("#namediv").html("用户名已经存在"); }else{ //不为空了,按钮一直显示 var ui =document.getElementById("tijiao"); ui.style.display=""; $("#namediv").html("用户名可以使用"); } } } } } function createXmlHttpRequest(){ //如果是ie6以上版本的浏览器 if(window.XMLHttpRequest){ return new XMLHttpRequest(); }else{ //如果浏览器是ie以下的 return new ActiveXObject("Microsoft.XMLHTTP"); } } </script> </head> <body> <form action="/maven/reg1.do" id="form1"> <table id="aa"> <tr> <td>用户名</td> <td><input type="text" name="username" id="name" onblur="validate();" />&nbsp;<font color="red">*</font></td> <td> <div id="namediv" style="display: inline"></div> </td> <td>密码</td> <td><input type="password" name="password"></td> <td>电话</td> <td><input type="text" name="phone"></td> <td><input type="submit" value="点击注册" id="tijiao"></td> </tr> </table> </form> </body> </html> ``` ``` ``` ``` package com.gray.user.controller; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpRequest; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import com.gray.user.entity.RegUser; import com.gray.user.service.impl.RegServiceImpl; import com.gray.user.service.impl.UserServiceImpl; @Controller public class RegController { @Autowired private RegServiceImpl userService; //自动装载他到spring @RequestMapping("/reg1.do") //url public String dologin(Model model,HttpServletResponse res,@RequestParam String username,RegUser rg,HttpServletResponse response) throws IOException{ boolean used=false; System.out.println("测试参数获取到bean没有"+rg.getUsername()+rg.getPassword()+rg.getPhone()); rg.setUsername(username); if(userService.doUserLogin(rg)){ used=true; System.out.println("通过control到--->service---到dao---到usermapp.在返回回来,service里面是ture,就是说账号不重复"); }else{ used=false; System.out.println("通过control到--->service---到dao---到usermapp.在返回回来,service里面是false,重复了账号 "); } return "regsuccess"; } } ``` ``` package com.gray.user.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.gray.user.dao.UserDao; import com.gray.user.entity.RegUser; import com.gray.user.entity.User; import com.gray.user.service.RegService; import com.gray.user.service.UserService; @Service public class RegServiceImpl implements RegService { @Autowired private UserDao<RegUser> dao; @Override public boolean doUserLogin(RegUser ruser) { //第一次执行查询数据库,查询 userdao selectUserName方法。 他这个方法和user.xml里面的id为selectUserName串联了. //也就是直接调用查询语句,并且吧值返回给reguser 类 System.out.println("testRegServiceImpl------->查询数据库,查询语句为id是selectusername"); List<RegUser> list = dao.selectUserName(ruser.getUsername()); System.out.println("查到了集合大小是"+list.size()+"查到了和你账号相同是的是几个"); if(list.size() == 0){ System.out.println("RegServiceImpl---你没有查询到你账号和数据库相同的信息.所以你return,"); for(int i=0;i<list.size();i++){ System.out.println(list.get(i).getUsername()); } return true; }else{ if(list.size()!=0){ System.out.println("regServiceImpl---查询到和你相同的账号不是0个,返回false"); return false; }else{ System.out.println("regserviceImpl----其他情况我也不知道啥情况,也返回false"); return false; } } } } ``` ``` 页面上的ajax 他就一直出毛病,数据库有个账号名是aa 只有我在表单填写aa 他才在网页提示账号重复, 别的任何都不提示,只会提示不能为空, 而且还失灵时不灵。 但是用system. 输出 我写的任何判断都是对了, 这是为啥? 请求大神给我说下,最好说下哪里错了。谢谢了

小弟请教一下在JSP中使用Ajax如何实现局部刷新?

在action中如何把对象转成json格式,在jsp页面怎么取出? $.ajax是用这个方法是吧? 这是我的action: PageBean pg=fen.queryForPage(type,9, page); JSONArray json=JSONArray.fromObject(pg); jsp: $(function(){ $("#jsonShowData").click(function(){ $.getJSON("fenAction.action",function(data){ var tr = ""; $.each(data,function(i,value){ str+="<div>"+value.Rows+"</div>" }) $("#show").html(tr); }); }) }) 是这样子搞吗?我调用fenAction.action的时候还要带参数,怎么带?

JSp+ajax用户登录验证

[img]http://dl2.iteye.com/upload/attachment/0088/2001/4ee085e5-47e0-3995-ad42-62e4a53cfc2f.png[/img] 用户登陆界面,想要实现输入账号之后离开输入框就验证该账号是否存在,输入角色、账号、密码之后,点击登录,如果正确就跳转到index.jsp,错误不跳转并且在密码输入框下显示提示信息;有一个没输入就提示,信息也是在密码输入框下。 我现在的问题是:若果什么也不输,点击登录,会闪一下,但闪过之后就是重置了页面。输入正确也是闪一下就重置页面.账号验证没问题,就是登录有问题,但是搞不定,大侠们看看吧! login.jsp [code="java"]<form id="form" name="form" method="post" action="" > <table border="0"> <tr> <td align="right">角色类型:</td> <td><select name="role" id="role" onBlur="checkRole(this)"> <option value="0">-请选择角色-</option> <% List<Role> list = new ArrayList<Role>(); RoleDao dao = new RoleDaoImpl(); list = dao.findAllRoles();//调用实现类的查询全部方法 for (int i = 0; i < list.size(); i++) { Role r = list.get(i); %> <option value="<%=r.getR_id()%>"><%=r.getR_name()%></option> <% } %> </select> </td> <td align="left"> &nbsp; <span id="roleSpan"></span> </td> </tr> <tr> <td align="right">账号:</td> <td> <input type="text" name="number" id="number" onblur="checkNumber(this)"> </td> <td width="256" align="left"> &nbsp; <span id="numberSpan"></span> </td> </tr><!-- 当输入名字后离开输入框即调用--> <tr> <td align="right">密码:</td> <td><input type="password" name="pwd" id="pwd" onBlur="checkPsw(this)" > </td> <td align="left"> &nbsp; <span id="pwdSpan"></span> </td> </tr> <tr> <td align="left">&nbsp;<span id="feedback_info"></span></td> </tr> <tr> <td colspan="1"> <input type="submit" value="登录" onclick="checkLogin(this.form)"/> <input type="button" value="注册" onclick="javascript:window.location.href='User/Register.jsp'"></td> </tr> </table> </form>[/code] login.js [code="java"]var xmlHttp; function createXMLHttpRequest() { if (window.XMLHttpRequest) { var xmlHttp = new XMLHttpRequest(); //mozilla浏览器 } else if (window.ActiveXObject) { try { var xmlHttp = new ActiveX0bject("Msxml2.XMLHTTP"); //IE老版本 } catch (e) { } try { var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); //IE新版本 } catch (e) { } } if (!xmlHttp) { window.alert("不能创建XMLHttpRequest对象实例"); return false; } else return xmlHttp; ////}///////花括号放错地方 } // 检查账号,给出提示信息 function checkNumber(Number) { var numberSpan = document.getElementById("numberSpan"); if (Number.value == "") { numberSpan.innerHTML = "账号必须填写".fontcolor("red"); return false; } else { xmlHttp = createXMLHttpRequest(); //createXMLHttpRequest申明的是局部变量,这里访问不到xmlHttp,要给xmlHttp变量赋值才行 var url="servlet/CheckNumberServlet?number="+Number.value+"&LoginTime="+new Date().getTime(); url = encodeURI(url); //转换码后再传输 xmlHttp.open("GET",url,true);//加时间戳防止IE缓存 //xmlhttp.setRequestHeader( "Content-Type", "text/html;charset=UTF-8" ); xmlHttp.onreadystatechange = handleStateChange1; xmlHttp.send(null); return true; } } function handleStateChange1() { var numberSpan = document.getElementById("numberSpan"); if (xmlHttp.readyState == 4) { if (xmlHttp.status == 200) { // alert("来自服务器的响应:"+xmlHttp.responseText); if (xmlHttp.responseText == 'true') {///////responseText是字符串,不能和boolean变量直接比较 // alert("存在"); numberSpan.innerHTML = "<img src='Img/g.gif'>"; document.getElementById("feedback_info").innerHTML=""; return true; } else if (xmlHttp.responseText == 'false') {///////responseText是字符串,不能和boolean变量直接比较 // alert("不存在"); numberSpan.innerHTML = "账号不存在".fontcolor("red"); return false; } } else alert("服务器端错误"); } } // 检查密码,给出提示信息 function checkPsw(pswNode) { var spanNode1 = document.getElementById("pswSpan"); var Role= document.getElementById("role"); var Number= document.getElementById("number"); if (pswNode.value == "") { spanNode1.innerHTML = "密码必须填写".fontcolor("red"); return false; } else { pwdSpan.innerHTML = "<img src='Img/g.gif'>"; document.getElementById("feedback_info").innerHTML=""; return true; } } // 检查是否选中角色 function checkRole(selNode) { var index = selNode.selectedIndex;// 获得选中下标 var spanNode1 = document.getElementById("roleSpan"); if (index <= 0) { spanNode1.innerHTML = "必须选择角色".fontcolor("red"); return false; } else { spanNode1.innerHTML = "<img src='Img/g.gif'>"; document.getElementById("feedback_info").innerHTML=""; return true; } } // 检查表单 function checkLogin(o) { var Role=o.role; var Number= o.number; var Pwd= o.pwd; if(checkNumber(Number)&&checkPsw(Psw) &&checkRole(Role)) { xmlHttp = createXMLHttpRequest(); //createXMLHttpRequest申明的是局部变量,这里访问不到xmlHttp,要给xmlHttp变量赋值才行 var url="servlet/CheckLoginServlet?number="+Number.value+"&role="+Role.value+"&pwd="+Pwd.value+"&LoginTime="+new Date().getTime(); url = encodeURI(url); //转换码后再传输 xmlHttp.open("GET",url,true);//加时间戳防止IE缓存 //xmlhttp.setRequestHeader( "Content-Type", "text/html;charset=UTF-8" ); xmlHttp.onreadystatechange = handleStateChange2; xmlHttp.send(null); return true; } else{ document.getElementById("feedback_info").innerHTML="请填写每一项".fontcolor("red"); return false; } } function handleStateChange2() { if (xmlHttp.readyState == 4) { if (xmlHttp.status == 200) { //alert("来自服务器的响应:" + xmlHttp.responseText); if(xmlHttp.responseText == '0'){ document.getElementById("feedback_info").innerHTML="账号与密码不匹配".fontcolor("red"); return false; } else if(xmlHttp.responseText == '1'){ document.getElementById("feedback_info").innerHTML=""; window.location.href="index.jsp"; return true; } } else alert("服务器端错误"); } }[/code] chuckLoginservlet [code="java"]public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); doPost(request, response);// 调用doPost方法 } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=UTF-8"); String number=""; try { number = new String(request.getParameter("number").getBytes( "ISO-8859-1"), "UTF-8"); } catch (Exception e1) { System.out.println("number为空"); } String role="0"; int rID=0; try { role = new String(request.getParameter("role").getBytes( "ISO-8859-1"), "UTF-8"); rID=Integer.parseInt(role);//把获得的role的值转成整型 } catch (Exception e1) { System.out.println(request.getParameter("role")+"******role"); } String pwd=""; try { pwd = new String(request.getParameter("pwd").getBytes( "ISO-8859-1"), "UTF-8"); } catch (Exception e) { System.out.println(request.getParameter("pwd")+"****pwd"); } // String txt = new String(number.getBytes("ISO-8859-1"), "UTF-8"); // System.out.println(txt+"********"); PrintWriter out = response.getWriter(); User u = new User(); UserDao ud = new UserDaoImpl(); u = ud.findUserByNumber(number);//通过账号找到用户对象 if (u != null) {// 找到该用户 int u_id = u.getU_id();// 获得该用户的ID UserRole ur = new UserRole(); UserRoleDao urd = new UserRoleDaoImpl(); ur = urd.findUserRoleByUserId(u_id);// 找到中间表UserRole的记录 int r_id = ur.getRole().getR_id();// 由Userrole表找到Role表的相对应角色名称 if (r_id==rID && u.getU_password().equals(pwd))// 如果数据中的角色和密码与之对应 { out.write("1");//1表示验证通过 } else { out.write("0");//0表示密码与账号不匹配 } } out.flush(); out.close(); }[/code]

支付宝接口调用报错,不知道是什么原因,各位大神帮忙看看呢

![图片说明](https://img-ask.csdn.net/upload/201708/29/1503988408_782216.png) // 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号 public static final String APP_ID = Const.APP_ID; // 商户私钥,您的PKCS8格式RSA2私钥 public static final String PRIVATE_KEY = Const.PRIVATE_KEY; // 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。 public static final String ALIPAY_PUBLIC_KEY = Const.ALIPAY_PUBLIC_KEY; // 服务器异步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 public static final String NOTIFY_URL = Const.ZHIAOADMINURL+"/alipayManager/notify.ajax"; // 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 public static final String RETURN_URL = Const.ZHIAOADMINURL+"alipayManager/return_url.do"; // 签名方式 public static final String SIGN_TYPE = "RSA2"; // 字符编码格式 public static final String CHARSET = "UTF-8"; // 支付宝网关 public static final String GATEWAY_URL = "https://openapi.alipay.com/gateway.do"; //参数返回格式,只支持json private static final String FORMAT = "json"; //↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ public static void aliPay(String outTradeNo, double totalAmount, String subject, HttpServletResponse response) throws IOException { //获得初始化的AlipayClient AlipayClient alipayClient = new DefaultAlipayClient(GATEWAY_URL, APP_ID, PRIVATE_KEY, FORMAT, CHARSET, ALIPAY_PUBLIC_KEY, SIGN_TYPE); AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();//创建API对应的request alipayRequest.setReturnUrl(RETURN_URL); alipayRequest.setNotifyUrl(NOTIFY_URL);//在公共参数中设置回跳和通知地址 StringBuilder bizContent = new StringBuilder("{\"out_trade_no\":\"").append(outTradeNo).append("\",\"total_amount\":").append(totalAmount). append(",\"subject\":\"").append(subject).append(",\"timeout_express\":\"10m\",\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}"); alipayRequest.setBizContent(bizContent.toString());//填充业务参数 System.out.println("请求报文为:----"+ JSON.toJSONString(alipayRequest)); String form = ""; try { form = alipayClient.pageExecute(alipayRequest).getBody(); //调用SDK生成表单 } catch (AlipayApiException e) { e.printStackTrace(); } response.setContentType("text/html;charset=" + CHARSET); PrintWriter out = response.getWriter(); out.write(form);//直接将完整的表单html输出到页面 out.flush(); out.close(); } 调用: String orderids= UUID.randomUUID().toString().replace("-", ""); double totalAmount = 0.01; //调用支付宝 String outTradeNo =orderids, subject = "测试标题"; AlipayConfig.aliPay(outTradeNo, totalAmount, subject, response);

DWR同步的疑惑

最近在做一个bpm的项目,有个表单需要用DWR远程调用另外一个系统的方法;但在调用过程中出现了问题,这个方法有时候调用得到,有时候又调用不到,觉得是异步请求的关系,所以在代码中将请求设置成了同步,即在调用方法的地方加上了 DWREngine.setAsync(false); 在方法结束的地方加上了DWREngine.setAsync(true); 但仍然出现调用不到得现象。 代码如下: [code="java"]DWREngine.setMethod(DWREngine.ScriptTag); dwr.engine._path = "http://10.0.1.99:7001/Contract/dwr/"; dwr.util._path = "http://10.0.1.99:7001/Contract/dwr/"; SubBankAJAX._path = "http://10.0.1.99:7001/Contract/dwr/"; DWREngine.setAsync(false); var contextPath = "<%=contextPath%>"; var isSubmit = false; var max_no = 0; isForm = true; //如果为核准按钮时累计金额累加,并要求财务附件上产,如为驳回则财务附件内容清除并付款状态更改 //获得表单 function getForm(){ return document.all.applyForm; } function getAdd(){ var i = 0; var msg = ""; if (document.getElementById("cw_arriveDate").value.length != 10) { i++; msg = msg + i + ".收单日期未填写\n"; } var cwAttachfiles = document.getElementById("max_no").value; if (cwAttachfiles == 0) { i++; msg = msg + i + ".财务附件未上传"; } else { document.getElementById("fileAttach").outerHTML = "<input name='fileAttach' type='file' value='' size='50' style='height: 20px'/>"; } if (msg.length > 0) { alert(msg); return; } else { DWREngine.setAsync(false); SubBankAJAX.addPayment(document.getElementById("formEntity.contractNO").value, document.getElementById("formEntity.payMoney").value); DWREngine.setAsync(true); } var form = getForm(); form.operation.value = "release"; if (form.onsubmit == null || form.onsubmit.call(form)) { var elements = form.getElementsByTagName("input"); if (elements) { for (var i = 0; i < elements.length; i++) { if (elements[i].type == "button") elements[i].disabled = "disabled"; } } form.submit(); } } [/code] 而如果在AJAX请求的地方加上alert,则一定可以调用到;DWREngine.setAsync(false);这个方法会无效呢? 各位大侠哪位知道,告诉一下谢谢

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

点沙成金:英特尔芯片制造全过程揭密

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内,我们所生活的这个世界就是这样一个异常复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年,古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合,再掺入煅烧石灰石制成的石灰,由此得来了人...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

你打算用Java 8一辈子都不打算升级到Java 14,真香

我们程序员应该抱着尝鲜、猎奇的心态,否则就容易固步自封,技术停滞不前。

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

一文带你入门Java Stream流,太强了

两个星期以前,就有读者强烈要求我写一篇 Java Stream 流的文章,我说市面上不是已经有很多了吗,结果你猜他怎么说:“就想看你写的啊!”你看你看,多么苍白的喜欢啊。那就“勉为其难”写一篇吧,嘻嘻。 单从“Stream”这个单词上来看,它似乎和 java.io 包下的 InputStream 和 OutputStream 有些关系。实际上呢,没毛关系。Java 8 新增的 Stream 是为...

都前后端分离了,咱就别做页面跳转了!统统 JSON 交互

文章目录1. 无状态登录1.1 什么是有状态1.2 什么是无状态1.3 如何实现无状态1.4 各自优缺点2. 登录交互2.1 前后端分离的数据交互2.2 登录成功2.3 登录失败3. 未认证处理方案4. 注销登录 这是本系列的第四篇,有小伙伴找不到之前文章,松哥给大家列一个索引出来: 挖一个大坑,Spring Security 开搞! 松哥手把手带你入门 Spring Security,别再问密...

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

我说我懂多线程,面试官立马给我发了offer

不小心拿了几个offer,有点烦

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

2020春招面试了10多家大厂,我把问烂了的数据库事务知识点总结了一下

2020年截止目前,我面试了阿里巴巴、腾讯、美团、拼多多、京东、快手等互联网大厂。我发现数据库事务在面试中出现的次数非常多。

立即提问
相关内容推荐