ajax登录验证,data返回值

$.ajax({
// 请求发送方式
type: 'post',
// 验证文件
url: 'login/login',
// 用户输入的帐号密码
data: {'adminname': $("#adminname").val(), 'password': $("#password").val()},
// 异步,不写默认为True
async: true,
//请求成功后的回调
success: function(data){
if (data){
alert(data);
alert('登录成功')
}else{
alert('帐号或密码错误');
}
},
error: function(){
alert('服务端异常');
}
if (data)里的data,后台怎么传值给data来判断账号霍迷码是否错误?网上说用0或
1来判断,那后台怎么把0或1传到 data里?
我后台是这样的
/**
* 登录方法验证
* */
@RequestMapping("/login")
public String login(HttpServletRequest request,HttpServletResponse response,Model model){
//从前台获得输入的账号密码

String user = request.getParameter("adminname");
String psw = request.getParameter("password");
//先判断前台传来的账号是否为空

if(user == null || user==""){
//前台提示
model.addAttribute("msg", "账号为空");
//返回登录界面
return "products/login";
}
//通过adminname查询整条数据
admin admin = adminMapper.getAdminByName(user);
//判断数据库里是否有这条数据
if(admin==null || "".equals(admin)){
model.addAttribute("msg", "账号或密码错误");
return "products/login";
}
//判断账户adminname有没有
if("".equals(admin.getAdminname())){
model.addAttribute("msg", "账号或密码错误");
return "products/login";
}
//判断密码password是否存在
if(admin.getPassword()== null){
model.addAttribute("msg", "账号或密码错误");
return "products/login";
}
//判断查询到的密码是否与数据库相对应的密码相同
if(!admin.getPassword().equals(psw)){
model.addAttribute("msg", "账号或密码错误");
return "products/index";
}
model.addAttribute(user);
//验证若都通过则跳到管业页面
return "zhuye";

    }

3个回答

发现你对用法的认识有问题,既然你选择用那个ajax提交,那么跳转操作就应该在ajax的success分支里面处理。
1 修正你的Action,添加@ResponseBody,返回登录验证结果,返回一个Java对象,记录校验结果。
2 修正你的ajax的success(data),此处的data就是你Action的返回值,直接通过data获取校验结果,决定跳转页面。

在方法体外加@ResponseBody

ajax请求的方法不重新加载整个网页的情况下,对网页的某部分进行更新,所以不能在请求的方法中执行页面跳转,只能返回json字符串,然后再在ajax方法中的返回结果做页面的跳转

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
利用ajax调用php查询数据库为什么返回data值为php整个文件的字符串
想利用ajax验证用户名在数据库中有无重复,但是ajax调用php后返回data为整个php文件的字符串。 求解 ajax部分: ``` $("#username").blur(function () { // 取用户名 var u = $("#username").val();//取输入的用户名 alert(u); //调ajax $.ajax({ url: "checkName.php", data: {u: u},//第二个u只是变量,可以随意写,checkName.php里面的u是第一个。 type: "POST", dataType: "TEXT", success: function (data) { if (data.trim() == "OK")//要加上去空格,防止内容里面有空格引起错误。 { alert("该用户存在"); //window.location.href = "main.php";//js跳转页面,要记住。 } else if(data.trim() == "NO") { alert("该用户不存在"); //echo("用户名不存在,重新输入用户名或者注册"); } else alert("数据库调用错误"+data); } }); }); }); ``` php部分: ``` <?php $uid = $_POST["u"]; $con = mysql_connect("localhost","root","123"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("mywebbase", $con); $result = mysql_query("SELECT * FROM web"); if (mysql_field_len($result) > 0) { // 输出数据 echo "OK" } else { echo "NO"; } mysql_close($con); ?> ```
AJAX返回值判断,就是判断数值是否为1,没有反应?请高手帮我看看代码
``` if ($(this).is("#yzm")) { var reg = /^(13|15|17|18)\d{9}$/; if (this.value == "") { var show = $("<span class='error'><br>请填写验证码</span>"); $(this).parent().append(show); } else if (this.value.length < 4) { var show = $("<span class='error'><br>请准确填写验证码</span>"); $(this).parent().append(show); } else{ $.ajax({url:"code_back.asp",type:'POST',data:{v:this.value},dataType:'text',success:function(data){ if(data=='1'){ var show = $("<span class='error'><br>请准确填写验证码</span>"); $(this).parent().append(show); } }}); } } ``` 就是在 if(data=='1'){ var show = $("<span class='error'><br>请准确填写验证码</span>"); $(this).parent().append(show); } }}); } 这个部分 没有办法实现提示,应该怎么做呢
jquery mobile登录验证问题
请高手略加指点 本人写了个登录验证的手机页面(.net),提交时ajax调用后台login.ashx有返回值,但就是执行不到onSuccess成功回调函数。不知什么原因,十分烦恼。 <script> function onSuccess(data, status) { data = $.parseJSON(data); //data = $.trim(data); if (data.flag == "Y") { //成功,进入新页面 $.mobile.changePage(data.url); } else { alert(data.msg); } } //以下有被调用,login.ashx也执行并返回有值。 $(document).ready(function () { $("#btnLogin").click(function () { var formData = $("#frmLogin").serialize(); $.ajax({ type: "post", url: "login.ashx", cache: false, data: formData, dataType: "text", success: onSuccess ****** //该处没有执行**** }); return false; }); }); </script> </head> <body> <div data-role="page" id="loginPage"> <div data-role="header"> <h1>快单系统登录</h1> </div> <div data-role="content"> <form id="frmLogin" method="post"> <div data-role="fieldcontain"> <label for="mch_id">商户ID:</label> <input type="text" name="mch_id" id="mch_id" /> </div> <div data-role="fieldcontain"> <label for="userid">登录名:</label> <input type="text" name="userid" id="userid" /> </div> <div data-role="fieldcontain"> <label for="password">密码:</label> <input type="text" name="password" id="password" /> </div> <input type="button" value="提交" id="btnLogin" /> </form> </div> </div> </body> </html>
用ajax验证用户存在,为什么return true,方法没有结束,还在往下执行??
function isExit(){ var value = $('#testDept').val(); if(value!=""){ $.ajax({ url:"deptIsExit", type:"post", data:{"deptValue":value}, success:function(data){ $('#message').html(data.result.message); if(data.result.isExit){ return true; } } }); }else { $('#message').html("不能为空!"); return false; } } function checkit(){ if(isExit()){ return true; } return false; } 这个是个form表单,里面的onsubmit,ajax已经传递值,并且比较也正确,正常应该return true,方法就结束了,但是,往下执行了return false。导致我表单一直提交不了!!!这里本人确定值传递进去,并且比较完毕,返回的也是true!!但就是,方法没结束,怎么回事????调试结果是直接全部都执行了!没有跳过中间的return true!!!
spring security中表单提交登录验证是怎样的一个过程
spring security登录验证中j_spring_security_check这是个什么,我查了好多,说是默认值,不明白的是,这个默认值是如何验证登录名与密码,并返回成功失败消息的,数据如何传输的,它是如何匹配控制器和数据库的,最起码需要和数据库中的数据比对才行吧,我这里是非常不理解,完全找不到头绪,我是刚接触spring securtity的,哪位大神能帮我解答下这个问题呀 提交动作代码 ``` $.ajax({ type:"POST", dataType:"text", url:"./j_spring_security_check", data:"j_password="+j_password+"&j_username="+$('#j_username').val(), success:function(data){ var da = $.parseJSON(data); if(da.authentication== "true"){ window.top.location.href="./home"; }else{ $("#err").empty(); $("#_password").val(""); $("#err").append("用户名或密码错误!"); } }, error:function(data){ alert("失败"); } }); ```
ajax 为什么里面最后返回的值都是最开始赋值的true
; (function ($) { $(document).ready(function () { $("form").submit(function () { var flag = true; //验证账号密码 //获取用户信息框 var $account = $("input[name=account]"); var $password = $("input[name=password]"); var userData = { account: $account[0].value, password: $password[0].value }; //清空验证信息 if (userData.account == "") { flag = false; swal({ title: "提示", text: "请输入账号" }); } if (userData.password == "") { flag = false; swal({ title: "提示", text: "密码不能为空" }); } if (userData.password != "" && userData.account != "") { $.ajax({ type: "POST", url: "/api/User/Login", data: { "account": userData.account, "psd": userData.password }, dataType: "json", error: function (data) { flag = false; alert("登录错误,请于管理员联系"); }, success: function (data) { if (data.code == 4) { flag = false; alert(data.errorMsg); } if (data.code == 2) { flag = false; alert(data.errorMsg); } } }); } aler(flag); //这里不管ajax里面怎么判断,这里都是true return flag; }); }); })(jQuery);
使用jquery ajax判断用户名是否存在后,如果做表单提交?
各位大神好,我还没有学query,但在做练习的时候,需要判断用户名是否存在,于是尝试使用了下$.get()方法来获取action返回值。 用以下代码,我能正确获取到action的返回值。在使用返回值做判断也都是正常的,**但是在表单提交的时候**,无法正常的return,执行if的顺序也很奇怪 代码: ```javascript //检查用户名:不能为空,且不能重复 function checkUsername() { var username = document.getElementById("username").value; var username_message = document.getElementById("username_message"); username_message.style.fontSize = "12px"; //只需要判断是否为空,输入了内容会进行用户名存在的校验 if (username == "" || username.length == 0) { username_message.style.color = "red"; username_message.innerHTML = "请输入用户名"; return false; } //如果用户输入了内容,那么使用ajax验证用户名是否已存在 else{ var actionMessage; // ajax获取到action的查询结果 $.get("user_checkUsername.action?"+new Date().getTime(),{'username':username}, function(data){ alert("in ajax data is: "+data); actionMessage = data; alert("in ajax actionMessage is: "+actionMessage); //本来是在这里面完成判断的,发现有问题后提取出去,问题还是在 }); if(actionMessage=="exist"){ alert("if exist, actionMessage is: "+actionMessage); username_message.style.color = "red"; username_message.innerHTML = "用户名已存在"; return false; } else if(actionMessage=="ok") { alert("if ok, actionMessage is: "+actionMessage); username_message.style.color = "green"; username_message.innerHTML = "用户名可以使用"; return true; } else{ alert("if neither, actionMessage is: "+ actionMessage); return false; } } } ``` onblur失焦时会调用一次这个方法,然后提交表单时,也会调用一次。 问题:data的值是没问题的,不管失焦还是提交表单,alert的弹出顺序都是: if neither, actionMessage is: undefined in ajax data is: exist in ajax actionMessage is: exist 然后就结束了。 请问为什么会出现这种现象?if else的顺序难道不是应该从上到下吗?况且执行完了第一个alert,alert("if neither, actionMessage is: "+ actionMessage);后的return貌似没有执行? 在线跪求答案。
ajax返回500 (Internal Server Error)的问题
源码如下: $(function(){ $.validator.setDefaults({ submitHandler: function() { //表单验证成功并提交时执行 butsub(); } }); $("#submit_form_zzjs").validate(); var flag=true; function butsub(){ var formData = new FormData($("#submit_form_zzjs")[0]); if(flag){ $.ajax({ url: 'publish_server_chose.jsp', type: "POST", data: formData, cache: false, processData: false, contentType: false, beforeSend: function(){ flag=false; //防止发送两次请求 }, success: function (data) { flag = true; alert("发布成功!"); parent.location.href='personal_center_server.jsp'; }, error:function(){ alert("请先入驻实验室!"); } }); } } }); publish_server_chose.jsp: System.out.println("开始处理..."); String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; String trid=request.getSession().getAttribute("trid").toString(); if("".equals(trid)){ response.sendRedirect("login.jsp"); } int user_trid=Integer.parseInt(trid); System.out.println(user_trid); ci.adp.Table table = ci.adp.Table.getInstance("UT_JCW_SERVE"); DataRow row_one=Table.getInstance("ut_jcw_facilitor").queryDataRow("USERID="+user_trid+" AND PUBSTATE='已发布'"); DataRow row_two=table.newDataRow(); row_two.setValue("SSCID", row_one.getValueInt("TRID")); row_two.setValue("STATE", "正在审核"); row_two.setValue("ISDELETE", "否"); String message=""; //生成文件保存目录 String savePath = getServletConfig().getServletContext() .getRealPath("upload_publish"); //上传时生成的临时文件保存目录 String tempPath = getServletConfig().getServletContext() .getRealPath("temp_publish"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); String ymd = sdf.format(new Date()); savePath += "/" + ymd + ""; //创建文件夹 File dirFile = new File(savePath); if (!dirFile.exists()) { dirFile.mkdirs(); } tempPath += "/" + ymd + ""; //创建临时文件夹 File dirTempFile = new File(tempPath); if (!dirTempFile.exists()) { dirTempFile.mkdirs(); } //创建一个DiskFileItemFactory工厂,文件解析 DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(20 * 1024 * 1024); //设定使用内存超过5M时,将产生临时文件并存储于临时目录中。 factory.setRepository(new File(tempPath)); //设定存储临时文件的目录。 ServletFileUpload upload = new ServletFileUpload(factory); upload.setHeaderEncoding("UTF-8"); upload.setFileSizeMax(1024 * 1024); // try { List<FileItem> items = upload.parseRequest(request); //获取formdata表单内容 for (FileItem item : items) { if (item.isFormField()) { //普通文本 String name = item.getFieldName(); String value = item.getString("UTF-8");//解决普通输入项的数据的中文乱码问题 if("bigclass".equals(name)){ row_two.setValue("DETAIL", value); }else if("smallclass_zzjs_net".equals(name)){ row_two.setValue("TYPEID", value); } row_two.setValue(name, value); System.out.println(name+"="+value); } else { //附件文件 if (item.getSize() > 0) { String filename = item.getName(); String fileFileName = item.getFieldName(); //获取name属性名称 if (filename.equals("")) { filename = "file"; } //获取文件名部分 filename = filename.substring(filename .lastIndexOf("\\") + 1); String fileExtName = filename.substring(filename .lastIndexOf(".")); System.out.println(filename); System.out.println(fileFileName); InputStream in = item.getInputStream(); String saveFilename = makeFileName(); saveFilename = URLEncoder.encode(saveFilename, "UTF-8"); //转码 //得到文件的保存目录 String realSavePath = makePath(saveFilename, savePath); String file_path = realSavePath + "" + saveFilename + fileExtName; file_path = file_path.replaceAll("\\\\", "/"); file_path=file_path.substring(file_path.indexOf("upload")); System.out.println(file_path); if ("IMAGE".equals(fileFileName)) { row_two.setValue("IMAGE", file_path); } //创建一个文件输出流 ,文件路径+生产的文件名.后缀 FileOutputStream out1 = new FileOutputStream( realSavePath + "" + saveFilename + fileExtName); //创建一个缓冲区 byte buffer[] = new byte[1024]; //判断输入流中的数据是否已经读完的标识 int len = 0; //循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据 while ((len = in.read(buffer)) > 0) { //使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" + filename)当中 out1.write(buffer, 0, len); } in.close(); out1.close(); message = "文件上传成功!"; } } } row_two.update(); JSONObject obj=new JSONObject(); obj.put("data",message ); out.println(obj); } catch (FileUploadBase.FileSizeLimitExceededException e) { response.getWriter().print("单个文件超出最大值!!!"); return; } catch (FileUploadBase.SizeLimitExceededException e) { e.printStackTrace(); response.getWriter().print("上传文件的总的大小超出限制的最大值!!!"); return; } catch (Exception e) { response.getWriter().print("文件上传失败!"); e.printStackTrace(); } 执行ajax,返回publish_server_chose.jsp 500 (Internal Server Error),已困扰一周时间,求大神点拨。
web中在调用两个接口(有优先级)时,怎样将action中优先级高的参数返回?
具体问题:是进行交易查询时,共5个入参,先调用验证接口(使用两个入参),在响应码为“1”的情况下调用查询接口,在获取查询结果的值是通过在html中使用ajax(ajax是写在js的function中的),现在我不知道的是当验证接口的响应码为“0”时怎样返回这个值,并在html中获取?不知道在action中代码怎么敲以及html中这是第一次写这方面的代码,对ajax等都不了解,希望可以得到解决,在下多谢了。 action中: public void abcAct(String ,String ,String ,String ,String ,httpresquset,httpresponse) { //调用验证接口 //获取返回值rescode字符串类型 if("1".equal(rescode)) { //调用查询接口 } else { ?????????????//这里不会 } html中: $.ajax({ ... ... ... success:function(data){ }//这里是获取查询返回的数据 }) 不知道怎么将验证接口的响应码加到这里? 代码记得不全,大体是这样了。
JSP菜鸟一枚,请教如何实现在JSP页面点击button 按钮提交POST请求,并获取返回值
JSP菜鸟一枚,请教如何实现在JSP页面点击button 按钮提交POST请求,并获取返回值,问题很困扰。 因为之前不太了解框架和技术,之前用过ajax、jquery,请求成功,但是返回值取不出来,因为跨域请求安全问题。准备用servlet,但是servlet需要在服务端做修改,显然不适合,我是接口调用。请问大家有什么好的方法,实现JSP页面按钮提交求情获取返回值,最好能给一段代码示例。 Index.jsp <%@ page language="java" import="java.util.*" %> <%@ page pageEncoding="UTF-8" contentType="text/html;charset=utf-8" %> <%@ page import="WEB_API.*"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head header("Access-Control-Allow-Methods:GET,POST");> <base href="<%=basePath%>"> <title>中文显示示例</title> <meta http-equiv="Access-Control-Allow-Origin" content="http://eucpwx.mb345.com:443"> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <% WEB_API wa=new WEB_API(); String res=wa.sendPost("17761280053", "验证码是123"); System.out.println(res); %> <script type="text/JavaScript" src="js/jquery-3.0.0.min.js" ></script> <script type="text/javascript"> function dianji(){ $.post("http://eucpwx.mb345.com:443/AppApi/User/GetUserList?UserID=SU0126&GetType=1&NowID=&GetNum=1&Other=&SearchUserName=", function(data){ alert("Data Loaded: " + data); }); } </script> </head> <body>中文显示示例 <br> <input id="test" type="text" value="jquery"/> <input id="btn" type="button" onclick="dianji()" value="单击弹窗"/> </body> </html> WEB_API.java package WEB_API; import java.awt.EventQueue; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; import javax.swing.*; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.sql.Types; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.FileReader; import java.io.RandomAccessFile; import java.util.ArrayList; import java.util.List; import com.alibaba.fastjson.JSON.*; public class WEB_API{ private static Connection con = null; public static void main(String[] args) { } public WEB_API(){ } public static String sendPost(String url, String param) { PrintWriter out = null; BufferedReader in = null; String result = ""; String strUrl="http://eucpwx.mb345.com:443/AppApi/User/GetUserList?"; String strparam = "UserID=SU0126&GetType=1&NowID=&GetNum=1&Other=&SearchUserName="; try { URL realUrl = new URL(strUrl); URLConnection conn = realUrl.openConnection(); conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); conn.setDoOutput(true); conn.setDoInput(true); out = new PrintWriter(conn.getOutputStream()); out.print(strparam); out.flush(); in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8")); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("发送POST请求出现异常!" + e); e.printStackTrace(); } finally { try { if (out != null) { out.close(); } if (in != null) { in.close(); } } catch (IOException ex) { ex.printStackTrace(); } } return result; } } 火狐浏览器显示: ![图片说明](https://img-ask.csdn.net/upload/201709/07/1504778539_257069.png)
jsp 页面怎么通过按钮提交POST请求,并获取返回值。
我用过ajax,jquery,提交请求可以,但是返回值获取不到,提示跨域请求的问题。直接放弃,因为我是接口请求。 index.jsp <%@ page language="java" import="java.util.*" %> <%@ page pageEncoding="UTF-8" contentType="text/html;charset=utf-8" %> <%@ page import="WEB_API.*"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head header("Access-Control-Allow-Methods:GET,POST");> <base href="<%=basePath%>"> <title>中文显示示例</title> <meta http-equiv="Access-Control-Allow-Origin" content="http://eucpwx.mb345.com:443"> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <% WEB_API wa=new WEB_API(); String res=wa.sendPost("17761280053", "验证码是123"); System.out.println(res); %> <script type="text/JavaScript" src="js/jquery-3.0.0.min.js" ></script> <script type="text/javascript"> function dianji(){ $.post("http://eucpwx.mb345.com:443/AppApi/User/GetUserList?UserID=SU0126&GetType=1&NowID=&GetNum=1&Other=&SearchUserName=", function(data){ alert("Data Loaded: " + data); }); } </script> </head> <body>中文显示示例 <br> <input id="test" type="text" value="jquery"/> <input id="btn" type="button" onclick="dianji()" value="单击弹窗"/> </body> </html> WEB_API.java package WEB_API; import java.awt.EventQueue; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; import javax.swing.*; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.sql.Types; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.FileReader; import java.io.RandomAccessFile; import java.util.ArrayList; import java.util.List; import com.alibaba.fastjson.JSON.*; public class WEB_API{ private static Connection con = null; public static void main(String[] args) { } public WEB_API(){ } public static String sendPost(String url, String param) { PrintWriter out = null; BufferedReader in = null; String result = ""; String strUrl="http://eucpwx.mb345.com:443/AppApi/User/GetUserList?"; String strparam = "UserID=SU0126&GetType=1&NowID=&GetNum=1&Other=&SearchUserName="; try { URL realUrl = new URL(strUrl); URLConnection conn = realUrl.openConnection(); conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); conn.setDoOutput(true); conn.setDoInput(true); out = new PrintWriter(conn.getOutputStream()); out.print(strparam); out.flush(); in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8")); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("发送POST请求出现异常!" + e); e.printStackTrace(); } finally { try { if (out != null) { out.close(); } if (in != null) { in.close(); } } catch (IOException ex) { ex.printStackTrace(); } } return result; } } ![图片说明](https://img-ask.csdn.net/upload/201709/07/1504780002_204864.png)
关于jQuery的.ajax发送的数据问题
$.ajax({ url:"__URL__/passEdit", type:"POST", data: "password='"+pass+"'&id='"+id+"'", dataType:"text", async:true, success:function(res){ if(res=="Y"){ alert(res); //密码验证成功 $("#pass").parents('tr').hide; }else{ //密码验证失败 alert(res); $("<span>原密码不正确!</span>").insertAfter("#pass").css("color","red"); } } }); 我把password和id两个参数发送到制定的php文件中,两个值都发送成功了,password为admin,经过md5加密,和数据库中的密码作比较,查看是否相同,为什么同样是admin,md5之后就不相同了啊?我打印出来传过去的参数加密之后的值,和我数据库中的加密之后的admin不相同,求大神解答,今晚又不能睡了。。。 这个是php文件的代码 public function passEdit(){ $id = $_REQUEST['id']; $pass = $_REQUEST['password $pwd = M('users')->field('password')->find($id if($pwd['password'] == md5($pass)){ //密码正确 die('Y'); }else{ //密码错误 die('N'); } } 一直返回下面的N
php jQuery 实现无刷新验证问题
前台要实现:焦点移出输入框,自动去验证卡券,并把验证结果无刷新返回到提示框中 ![前台](https://img-ask.csdn.net/upload/201504/09/1428593637_242261.png) 现在的问题就是,在前台的页面代码 ``` $(document).ready(function(){ //DOM的onload事件处理函数 $("#button").click(function(){ //当按钮button被点击时的处理函数 postdata(); //button被点击时执行postdata函数 }); }); function postdata(){ //提交数据函数 $.ajax({ //调用jquery的ajax方法 type: "POST", //设置ajax方法提交数据的形式 url: "checkCard.php", //把数据提交到checkCard.php data: "codeno="+$("#codeno").val(), //交的数据 success: function(msg){ //提交成功后的回调,msg变量是checkCard.php输出的内容。 $('check').innerHTML+=msg; //alert("数据提交成功"); //如果有必要,可以把msg变量的值显示到某个DIV元素中 } }); } ``` 前台显示区域: ``` <div class="contact-input"> <label>兑换码</label><br> <input type="text" name="codeno"> <input type="submit" name="button" id="button" value="WX" /> <div id="check"></div> </div> ``` 就是不成功啊,详细可见 http://bbs.csdn.net/topics/391014234?page=1#post-399081723 谢谢大家
ajax校验数据库数据是否存在
``` <!-- 查询student_id是否存在 --> <select id="getStudent_id" resultMap="studentMap" parameterType="int"> SELECT * from student where student_id = #{student_id} </select> ``` ``` @RequestMapping("/studentID") public Student getStudent_id(Integer student_id) { Student student = userService.getStudent_id(student_id); if (student==null){ System.out.println("没有"); }else{ System.out.println("有"); } return student; } ``` ``` function check() {//js表单验证方法 var text = document.getElementById("xh").value;//通过id获取需要验证的表单元素的值 if (text == "") { alert("请输入学号!");//弹出提示 return false;//返回false(不提交表单) } if (!(/(^[1-9]\d*$)/.test(text))) { alert("请输入学号!");//弹出提示 return false;//返回false(不提交表单) } var student_id=$("#student_id").val(); $.ajax({ url:"<%=basePath%>user/studentID", type:"post", data:{"student_id":student_id}, dataType:"json", success:function(data){ if (data!=null ) { alert("有"); }else if(data==null && username !=''){ alert("没有"); } xmlhttp.open("GET","getcustomer.asp?q="+str,true); xmlhttp.send(); //alert("啊啊啊"); } }); return true;//提交表单 } </script> <body> <div class="listDIV"> <table border="1" width="50%" height="50%" style="text-align: center;"> <form action="<%=basePath%>user/one" method="post"> <input type="text" id="xh" name="student_id" placeholder="根据学号查询"> <button class="glyphicon glyphicon-select" onclick="return check();">查询</button> </form> ``` ``` 严重: Servlet.service() for servlet [springMVC] in context with path [/StudentManagementSSM] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause java.lang.NullPointerException at com.zmk.controller.UserTestController.getStudent_id(UserTestController.java:65) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:777) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:706) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:943) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868) at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1139) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) ``` 我用ssm做的增删改查,搜索我想先校验一下数据库数据是否存在,存在就直接跳转查询,不存在就弹窗提示,中止提交表单,JS代码是我粘过来的,不会JS,有错误希望能告诉我如何改正,谢谢
微信JSSDK调用播放音频接口为什么没有响应?求大神指点!!!!
在做微信语音播放的项目,可是调用后为什么没有动静?wx.ready方法已经通过了,可以alert,但是把检测的JS接口的wx.checkJsApi贴上去也没有什么反应?而且wx.playVoice的接口中localId是否是mediaid?代码如下:求指点。。。。 var timestamp=""; var nonceStr=""; var signature=""; function getVoice(mediaId){ $.ajax({ url : "/getVoice", type : "GET", dataType : "json", success : function(data){ timestamp=data.timestamp; nonceStr=data.nonceStr; signature=data.signature; }, error : function(){ alert("系统故障,请稍后再试!"); } }); } //通过config接口注入权限验证配置,所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用 wx.config({ debug: true, appId: 'wxf8b4f85f3a794e77', timestamp: timestamp, nonceStr: nonceStr, signature: signature, jsApiList: [ 'playVoice' ] }); //通过ready接口处理成功验证 wx.ready(function (){ wx.checkJsApi({ jsApiList: ['playVoice'], // 需要检测的JS接口列表,所有JS接口列表见附录2, success: function(res) { alert(res); // 以键值对的形式返回,可用的api值true,不可用为false // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"} }, fail function (res){ alert(res); } }); }); wx.playVoice({ localId: '' // 需要播放的音频的本地ID,由stopRecord接口获得 });
想墙请教一下,jquer.validateajax提交数据之后,火狐网络查看为什么没有响应选项?
我用的是**phpstudy** , 新增了一个虚拟主机【phpstudy增加虚拟主机站点域名管理-->新增并保存就好,也太简单了吧,以前一直用的wamp,现在这么简单倒有点怕了】 之后网页浏览也没问题,但就是火狐的fireBug查看 ajax的提交一直都没有响应的选项是怎么回事?? 我用的是TP UserController.class.php---- namespace Home\Controller; use Think\Controller; use Home\Model\UserModel; class UserController extends Controller{ //注册行为返回给ajax public function register(){ if(IS_AJAX){ $User = new UserModel(); $User->regiter(I('post.username'),I('post.password'),I('post.email')); echo $User; }else{ $this->error('非法访问'); } } } UserModel.class.php---- <?php namespace Home\Model; use Think\Model; class UserModel extends Model{ //批量验证 protected $patchValidate = true; //用户自动验证 protected $_validate = array( array('username','2,20','wsm',self::EXISTS_VALIDATE,'length'), ); //用户表自动完成 protected $_auto = array( array('password','sha1',self::MODEL_BOTH,'function'), array('create','time',self::MODEL_INSERT,'function'), ); public function regiter($username,$password,$email){ $data = array( 'username'=>$username, 'password'=>$password, 'email'=>$email, 'create'=>time(), ); //添加判断为数据创建时才新增,才不会跳过数据自动完成步骤 if ($this->create($data)) { $uid = $this->add(); return $uid ? $uid : 0; } else { return $this->getError(); } } } ---------- 点击提交之后也一直没有echo $uid的值,有哪位大侠知道怎么回事麽?
手机测试 wx.config 无反应,愿意发微信红包, 求大佬帮忙分析解决
我在微信开发工具测试, wx.config 显示ok , wx.chooseWXPay.没有此SDK或暂不支持此SDK模拟 **问题出在, 我用手机测试 (ios,android) wx.config无反应,** erro和ready均不进入 wx.chooseWXPay也无法用, 我在https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 验证了签名是一毛一样的, 求教大佬, 我这代码是出了啥毛病 ``` <!doctype html> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html lang="zh-cn"> <head> <%@include file="/pc/inc/commoncontent.inc"%> <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> <script src="<%=contextPath%>/m/smartHotel/script/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> </script> <title>订单-支付</title> <span class="disb picNum padTB30"><i class="disib iconPic" onClick="openPic(this);" >3532rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr张</i></span> </head> <body> <script type="text/javascript"> var appId1,timeStamp1,nonceStr1,packageStr1,signType1,paySign1; $(document).ready(function () { $.ajax({ url : contextPath+ "/weixin/hotelorder/wxPay.action", type:"post", dataType:'json', //接受数据格式 async: false, data:{url:window.location.href.split('#')[0].replace(/\&/g,"%26")},//传参,建议使用json //1:手机号, 2:房间数.3单价4总价 5: 当前bedid 6 :入住人 姓名 7 发票8 入住日离开日 error:function(data){//请求失败时处理 // alert(data); window.location.href = '<%=contextPath%>/m/smartHotel/html/yysb.html'/*预订失败页*/ }, success:function(data) { if( data) { appId1 = data.pay.appId; timeStamp1 = data.pay.timeStamp; nonceStr1 = data.pay.nonceStr; packageStr1 = data.pay.package; signType1 = data.pay.signType; paySign1 = data.pay.paySign; } wx.config({ debug:false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:data.pay.appId, // 必填,公众号的唯一标识 timestamp:data.config.timestamp, // 必填,生成签名的时间戳 nonceStr:data.config.noncestr, // 必填,生成签名的随机串 signature:data.config.configSign, // 必填,签名,见附录1 jsApiList:['chooseWXPay','closeWindow'] }); wx.error(function(res){ alert("error enter"); }); wx.ready(function(){ alert("ready enter"); pay(); }); //onBridgeReady(); // alert("success inter"); } }); }); function pay() { // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。 console.log(appId1 +" / "+ timeStamp1+" / " + nonceStr1+" / "+packageStr1 +" / "+ signType1+" / "+paySign1); wx.chooseWXPay({ timestamp:timeStamp1, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符 nonceStr:nonceStr1, // 支付签名随机串,不长于 32 位 package:packageStr1, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***) signType:signType1, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5' paySign:paySign1, // 支付签名 success:function(res) { alert("8888888888888"); alert(res); alert(res.errMsg); console.log(res.errMsg); // 支付成功后的回调函数 if (res.errMsg == "chooseWXPay:ok") { //支付成功 alert('支付成功'); } else { alert(res.errMsg); } } }); } function onBridgeReady(){ alert("进入了onbridgeready"); WeixinJSBridge.log("889"); WeixinJSBridge.invoke( 'getBrandWCPayRequest', { "appId":appId1, //公众号名称,由商户传入 "timeStamp":timeStamp1, //时间戳,自1970年以来的秒数 "nonceStr":nonceStr1, //随机串 "package":packageStr1, "signType":"MD5", //微信签名方式: "paySign":paySign1 //微信签名 }, function(res){ WeixinJSBridge.log(res); alert("进入了success"); alert(res.errorMsg); // 使用以下方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回 ok,但并不保证它绝对可靠。 if(res.errMsg == "get_brand_wcpay_request:ok") { alert("支付成功"); // window.location.href = "${pageContext.request.contextPath}/wx/success?orderId=${orderId}"; }else if(res.errMsg == "get_brand_wcpay_request:fail"){ alert('支付失败'); }else if(res.errMsg == "get_brand_wcpay_request:cancel"){ alert('支付取消'); }else{ alert(res.errMsg); } } ); } function openPic() { pay(); //wx.closeWindow(); } //调用模拟 回调 // $.ajax({ // url : contextPath+ "/weixin/hotelorder/moniWXPay.action", // type:"post", // dataType:'json', //接受数据格式 // async: false, // data:{parm1:getQueryString2("orderId")},//传参,建议使用json // error:function(data){//请求失败时处理 // alert(data); // }, // success:function(data) // { // if(data.result =="success") // { // window.location.href = '<%=contextPath%>/m/smartHotel/html/yycg.jsp?orderId='+getQueryString2("orderId"); // } // // } // }); function getQueryString2(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if(r != null) return decodeURI(r[2]); return null; } </script> </body> </html> ```
asp.net做微信端的开发调用扫一扫接口扫出的字符串如何传到后端进行解密
asp.net做微信端的开发,调用扫一扫接口扫除的字符串如何传到后端的解密函数进行解密,再将结果返回到前端 前端代码: wx.ready(function () { wx.scanQRCode({ needResult: 0, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果, scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是一维码,默认二者都有 success: function (res) { result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果 if (typeof (result) != "undefined") { alert("扫码成功!");// 扫描后的值 result = res.resultStr $.ajax({ type: "POST", cache: false, url: "qzsm.aspx/getPrintData", //页面名/要调用的后台方法名 data: {'weixin':result}, //json格式的字符串将参数传入后台,参数名必须一致 contentType: "application/json;charset=utf-8", dataType: "json", success: function (result) { if (result.d[0] == "0") { alert("扫码失败!"); } else { getDoc(result.d[1]); } }, error: function (err) { alert("获取打印数据失败!"); } }); } } }); }); wx.error(function (res) { // config信息验证失败执行的函数 }); } 后端接收参数的函数 public static List<String> getPrintData(String weixin) { string sData = ""; sData = DeCode(weixin); List<String> str = new List<String>(); if (sData == "") { str.Add("0"); } else { str.Add("1"); str.Add(sData); } return str; } //后端解密函数 private static string DeCode(string strSrc) { }
我最近写了个留言表 但是出现了找不到memberAction ?
1,这个是struts 配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.objectFactory" value="spring" /> <constant name="struts.devMode" value="false"></constant> <package name="member" extends="struts-default" namespace="/member"> <action name="register" class="memberAction" method="registe"> <result name="success">/login.jsp</result> <result name="fail">/register.jsp</result> <result name="input">/register.jsp</result> </action> <action name="login" class="memberAction" method="login"> <result name="success" type="redirectAction"> <param name="namespace">/message</param> <param name="actionName">liuYanList</param> </result> <result name="fail">/login.jsp</result> </action> </package> <package name="message" extends="json-default" namespace="/message"> <action name="publish" class="messageAction" method="publish"> <!-- 这个action 成功后 是把数据库里面的留言抓去 放到这个成功页面 --> <result name="success" type="redirectAction"> <param name="actionName">liuYanList</param> </result> <!-- 失败还是返回这个页面 用异步提示 发送失败 所以选用json 所以这个包应该继承的是json-default --> <result name="fail" type="json"> <!-- 指定json字符串 根对象是谁 这个需要根据自己写的类来设计 --> <param name="root">errorMap</param> </result> </action> <action name="liuYanList" class="messageAction" method="liuYanList"> <result name="success">/WEB-INF/pages/message.jsp</result> </action> </package> <package name="verify" extends="json-default" namespace="/verify"> <!-- 因为我们只是生成一个校验码 所以 不用写方法 只需要excute就可以 --> <action name="code" class="verifyCodeAction"> <!-- 因为我们用的是流传输 验证码 所以 result 的类型应该是stream --> <result name="success" type="stream"> <param name="inputName">inputStream</param> </result> </action> <action name="check" class="verifyCodeAction" method="check"> <result name="success" type="json"> <param name="root">checkResult</param> </result> </action> </package> 2, 这个是登录 private static final long serialVersionUID = 7270980727777540053L; private Member member; private String rePassword; private String verifyCode;//通过属性驱动来收集页面的验证码 //保存收集到页面的数据 通过service来保存 所以就要注入一个service private MemberService memberService; public String login() { //根据一个指定的username 从数据库中 获取一个Member 对象 Member m = memberService.getMember(member.getUsername()); if (m != null) { //因为数据库里面保存的是我们加过密之后的密码 所以我们要对用户登录时输入的密码也进行加密 //这样才能比较 两个密码 String inputPassword = StringUtil.md532(member.getPassword()); if (m.getPassword().equals(inputPassword) ){ //信息完全正确 就需要把用户的信息存入session中 这样就不需要重复登录 //通过 Struts2 来访问 HttpSession 把member 的信息存放到session中 //m 是来自数据库的 有主键 id ActionContext.getContext().getSession().put("member", m); return "success"; }else { //密码错误 } }else { //输入的用户名不存在 } return "fail"; } 这个是登录页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s" %> <html> <head> <title>用户登录页面</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- 引入 CSS 文件--> <link href="${pageContext.request.contextPath }/css/style.css" type="text/css" rel="stylesheet" /> <!-- 引入JavaScript 库 --> <script src="${pageContext.request.contextPath}/jslibs/jquery-1.11.3.min.js" type="text/javascript"></script> <script type="text/javascript"> jQuery(function () { jQuery("#refresh").click(function(){ jQuery("#verify_code").attr("src","${pageContext.request.contextPath }/verify/code?suibian" + new Date()) }); jQuery("#verify_code_input").blur(function(){ //获得输入框的值 和 服务器里面的验证码进行对比 var input = jQuery("#verify_code_input").val(); //发送到服务器端 和 服务器里面的验证码进行对比 var url = "${pageContext.request.contextPath }/verify/check"; var settings={ "url":url, "type":"POST", "data":{"inputCode" : input}, "dataType":"json", "success":function( responseData ){ jQuery("#verify_code_error").html( responseData ); } }; jQuery.ajax(settings); }); }); </script> </head> <body topMargin="10"> <center> <div id="append_parent"></div> <table cellSpacing="6" cellPadding="2" width="100%" border="0"> <tbody> <tr> <td> <table class="guide" cellSpacing="0" cellPadding="0" width="100%" border="0"> <tbody> <tr> <td> <a href='index.jsp'>主页</a>&nbsp;/&nbsp; <a href='#'>留言板(malastruts)</a>&nbsp;/&nbsp;用户登录 </td> </tr> </tbody> </table> <h4 align="center">${ msg }</h4> <!--<form id="settings" action="register_action.jsp" method="post"> --> <form id="settings" action="${pageContext.request.contextPath}/member/login" method="post"> <table class="tableborder" cellSpacing="0" cellPadding="0" width="100%" border="0"> <tbody> <tr class="header"> <td colSpan="3"> 登录系统 </td> </tr> </tbody> <tbody> <tr> <td class="altbg1" width="20%"> <b>用户名称 </b> </td> <td class="altbg2" valign="middle" width="20%"> <input type="text" name="username" value="${member.username}" /> </td> <td> <span style="color: red"> <s:fielderror fieldName="username"></s:fielderror> </span> </td> </tr> <tr> <td class="altbg1" width="20%"> <b>用户密码 </b> </td> <td class="altbg2"> <input type="password" name="password"/> </td> <td> <span style="color: red"> <s:fielderror fieldName="password"></s:fielderror> </span> </td> </tr> <tr> <td class="altbg1" width="20%"> <b>验证码 </b> </td> <td class="altbg2"> <input type="text" name="verifyCode" id="verify_code_input" /> </td> <td> <!-- 我们用jquery 给这个验证码绑定一个点击事件 实现异步的验证码刷新 --> <img src="${pageContext.request.contextPath}/verify/code" id="verify_code"> <a href="javascript: " id="refresh">输入正确</a> <span style="color: red" id="verify_code_error"> <s:fielderror fieldName="verifyCode"></s:fielderror> </span> </td> </tr> </tbody> </table> <br /> <center> <input class="button" type="reset" value="重置" name="settingsubmit" /> <input class="button" type="submit" value="提交" name="settingsubmit" /> </center> </form> </td> </tr> </tbody> </table> <hr> </center> </body> </html> 3,Spring 配置 <bean id="memberAction" class="message.action.MemberAction" p:memberService-ref="memberService" scope="singleton"/> <bean id="messageAction" class="message.action.MessageAction" p:messageService-ref="messageService" scope="singleton"/> <bean id="verifyCodeAction" class="message.action.VerifyCodeAction" scope="singleton"/> 4,这个是Member 类 public class Member implements Serializable { private static final long serialVersionUID = 1L; private String username; private String password; private Integer id; //维护 Member 到 Message 一对多的关系 private Set<Message> messages;//当前会员留言 private Set<Reply> replies;//当前会员回复 public Set<Reply> getReplies() { return replies; } public void setReplies(Set<Reply> replies) { this.replies = replies; } public Set<Message> getMessages() { return messages; } public void setMessages(Set<Message> messages) { this.messages = messages; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } } 启动时没有出现任何异常 就是登录的时候 会出现这个异常 type Exception report message Invalid action class configuration that references an unknown class named [memberAction] description The server encountered an internal error that prevented it from fulfilling this request. exception java.lang.RuntimeException: Invalid action class configuration that references an unknown class named [memberAction] root cause java.lang.ClassNotFoundException: memberAction
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
《阿里巴巴开发手册》读书笔记-编程规约
Java编程规约命名风格 命名风格 类名使用UpperCamelCase风格 方法名,参数名,成员变量,局部变量都统一使用lowerCamelcase风格 常量命名全部大写,单词间用下划线隔开, 力求语义表达完整清楚,不要嫌名字长 ...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
Python爬虫精简步骤1 获取数据
爬虫的工作分为四步: 1.获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。 2.解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。 3.提取数据。爬虫程序再从中提取出我们需要的数据。 4.储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。 这一篇的内容就是:获取数据。 首先,我们将会利用一个强大的库——requests来获取数据。 在电脑上安装
Python绘图,圣诞树,花,爱心 | Turtle篇
1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle() circle.shape('circle') circle.color('red') circle.speed('fastest') circle.up() square = turtle.Turtle()
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。   再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。   下文是原回答,希望能对你能有所启发。   如果我说,这个世界上人真的分三六九等,
为什么听过很多道理,依然过不好这一生?
记录学习笔记是一个重要的习惯,不希望学习过的东西成为过眼云烟。做总结的同时也是一次复盘思考的过程。 本文是根据阅读得到 App上《万维钢·精英日课》部分文章后所做的一点笔记和思考。学习是一个系统的过程,思维模型的建立需要相对完整的学习和思考过程。以下观点是在碎片化阅读后总结的一点心得总结。
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
如何优雅地打印一个Java对象?
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下)。 在一个月黑风高的夜晚,我思前想后,觉得再也不能这么蹉跎下去了。于是痛下决心,准备通过输出的方式倒逼输入,以此来修炼自己的内功,从而进阶成为一名真正意义上的大神。与此同时,希望这些文章能够帮助到更多的读者,让大家在学习的路上不再寂寞、空虚和冷。 ...
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计
Linux 命令(122)—— watch 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] watch(1) manual
Linux 命令(121)—— cal 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] cal(1) manual
记jsp+servlet+jdbc实现的新闻管理系统
1.工具:eclipse+SQLyog 2.介绍:实现的内容就是显示新闻的基本信息,然后一个增删改查的操作。 3.数据库表设计 列名 中文名称 数据类型 长度 非空 newsId 文章ID int 11 √ newsTitle 文章标题 varchar 20 √ newsContent 文章内容 text newsStatus 是否审核 varchar 10 news...
Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(三)发送篇
今天介绍的项目是使用 Itchat 发送统计报告 项目功能设计: 定时爬取疫情数据存入Mysql 进行数据分析制作疫情报告 使用itchat给亲人朋友发送分析报告(本文) 基于Django做数据屏幕 使用Tableau做数据分析 来看看最终效果 目前已经完成,预计2月12日前更新 使用 itchat 发送数据统计报告 itchat 是一个基于 web微信的一个框架,但微信官方并不允
相关热词 c# 识别回车 c#生成条形码ean13 c#子控制器调用父控制器 c# 写大文件 c# 浏览pdf c#获取桌面图标的句柄 c# list反射 c# 句柄 进程 c# 倒计时 线程 c# 窗体背景色
立即提问