javascript如何监听form 表单提交请求?

前端form 表单提交请求如何监听?就像ajax请求可以通过xmlHttpRquest对象去监听
所有的ajax请求,对其中的参数做一层包装再发送到后台,后台返回的数据也可以在此
处做一次封装再发给指定的页面一样,但是xmlHttpRquest捕捉不到form表单提交的
请求,请问各位大神form表单提交的请求前端如何捕获?

6个回答

表单的onsubmit事件,或者给input为submit的类型添加onclick事件也行,返回false阻止表单提交

 <form onsubmit="return check(this)>
用户名:<input type="text" name="un"/>
......
</form>
<script>
function check(f){
   if(f.un.value==''){alert('');f.un.focus();return false}
     //...其他验证
}
</script>

给所有的form注册submit事件不就可以了?
$('form').submit(function () { });

<!DOCTYPE html>










<br> window.onload = function(){<br> function validate(value){<br> return /^\d+$/g.test(value);<br> };<br> var form = document.getElementById(&quot;mimi&quot;);<br> var num = document.getElementById(&quot;num&quot;);<br> form.onsubmit = function(){<br> if(validate(num.value)){<br> alert(&quot;true&quot;);<br> return true;<br> }else{<br> alert(&quot;false&quot;);<br> return false;<br> }<br> }<br> }<br>


<script>
    window.onload = function(){
        function validate(value){
            return /^\d+$/g.test(value);
        };
        var form = document.getElementById("mimi");
        var num = document.getElementById("num");
        form.onsubmit = function(){
            if(validate(num.value)){
                alert("true");
                return true;
            }else{
                alert("false");
                return false;
            }
        }
    }
</script>





 <form onsubmit="alert('你确定要提交表单吗?')">
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
js提交表单请求不跳转页面怎么做?
以下是js发送post请求的代码,但我不希望向指定url发送完请求后跳转到url页面,而是停留在原本页面,并对请求返回的数据进行处理。 ``` function post(URL, PARAMS) { var temp = document.createElement("form"); temp.action = URL; temp.method = "post"; temp.style.display = "none"; for (var x in PARAMS) { var opt = document.createElement("textarea"); opt.name = x; opt.value = PARAMS[x]; // alert(opt.name) temp.appendChild(opt); } document.body.appendChild(temp); temp.submit(); return temp; } ```
easyui的表单提交失败,没有任何数据请求
1.使用的a标签的点击事件提交,没有发送任何请求 jsp: ``` <form id="modifyForm" method="post" enctype="multipart/form-data"> <p>&nbsp;&nbsp;&nbsp;ID:<input id="fid" name="fid" readonly="readonly"/></p> <p><input id="fpic" type="file" name="picData" onchange="chgPic(this)"/><br> <img src="rel/images/not_pic.jpg" id="pic" width="100" height="100"> </p> <p><a class="closeBtn" href="javascript:void(0)">关闭</a>&nbsp;&nbsp; <a class="updateBtn" href="javascript:void(0)">修改</a></p> </form> ``` js: ``` $(".updateBtn").linkbutton({ iconCls: "icon-ok", onClick: function(){ //alert(0); $("#modifyForm").form('submit',{ url:"flowers/uploadpic", success:function(data){ alert(1); if(data == ""){ $.messager.alert('图片上传','图片上传失败 !','warning'); $("#modifyDiv").dialog("close"); //关闭修改框 return ; } if(data.trim() == "true"){ $("#modifyDiv").dialog("close"); //关闭修改框 $("#flowerInfo").datagrid("reload"); //刷新修改数据 }else{ $.messager.show({ title:'修改信息', msg:'修改失败!!!', showType:'show', style:{ top:document.body.scrollTop+document.documentElement.scrollTop, } }); } } }); //$("#modifyForm").submit(); } }); ```
form表单参数数量限制在10000个?
一个基于spring mvc+hibernate框架的项目,其中有一个页面,显示用户列表,然后有个批量删除用户功能,就是把所有选中的用户记录的ID值提交到后台,这个ID值是绑定在每一条记录前的chebox里。然后勾选中一万多条用户记录,提交表单向后台发post请求,发现只删除了勾选的前10000条记录。于是我用开发者工具看请求的表单,确认发送的表单值应该跟我勾选的一致。然后再到后台java代码打断点,发现用@RequestParam 标记获取前台表单值的数组变量大小只有10000。再看看里面的值,发现只提交了前10000条用户的记录。我再用request.getParameterValues获取提交表单的值,获取到的数组大小还是10000个用户的值。那么问题来了,不是说好post请求不限制参数长度么,出现这个情况是别的地方限制了长度还是怎么样呢? 我再用js自造一个json对象,生成超过一万对由三位字母构成的属性,并赋值123,用post请求把这些json数据发到后台,然后在后台断点发现只收到一万个属性值。用浏览器捉包可以看到post的数据包有一百多兆大小,已经远远超过网上说的tomcat配置2M限制,什么的,明显跟这个没关系了。我在这里放一下捉包的图: ![图片说明](https://img-ask.csdn.net/upload/201609/28/1475049401_278742.png)
js 一个参数和表单一起提交
<script type="text/javascript"> function pa(pp){ alert(pp); var obj=document.getElementById('form1'); obj.page=pp; obj.action="user!pagelist"; obj.submit(); } </script> <form action="" id="form1"> 姓名:<input type="text" id="name" name="name"/><br/> <a href="#" onclick="return pa(1);" id="a1">上一页</a><br/> <a href="#" onclick="return pa(2);" id="a2">下一页</a><br/> <a href="#" onclick="location='user!pagelist?page=3'">首页</a> </form> 遇到的问题是:pa(1)传一个参数,由pa()方法,发一个请求,把page的值和表单中名为name的值一起提交到action时, 提示: java.lang.NumberFormatException: null java.lang.Integer.parseInt(Integer.java:415) java.lang.Integer.parseInt(Integer.java:497) comm.LoginAction.pagelist(LoginAction.java:49) 如果,是按首页这个按时,page的值可以获得,但没有name的值, 请哪个帮忙,谢谢!
前端为什么无法请求后台,form表单请求没有问题,使用js就没有了,跨域问题应该是解决了
前端: ![图片说明](https://img-ask.csdn.net/upload/201803/13/1520925422_898398.png) 界面/控制台测试: ![图片说明](https://img-ask.csdn.net/upload/201803/13/1520925441_810747.png) 后台: ![图片说明](https://img-ask.csdn.net/upload/201803/13/1520925484_227954.png)
IE8 在某个页面,表单提交的时候,请求的url莫名其妙变长
var fm=$('queue_set_php_form'); fm.action="get_client_inf.php?action=queue_set_php&an="+an; Sys.xSubmit(fm,"",del_group_form_cb,false); 这是queue_set_php_form表单在提交的时候执行的js脚本,使用ajax方式提交表单,Sys.xSubmit()函数是这样的: Sys.xSubmit = function(formName, args, callback, returnRs,id){ if(!$(formName)) return; $(formName).request({ parameters: args, onComplete:function(o){ if(!returnRs) return callback(o,id||''); return callback((new Sys.Xado()).xml2rs(o)); } }); } 为了调试,我在fm.action="get_client_inf.php?action=queue_set_php&an="+an; 下加了一行:alert(fm.action);弹出正常的url:http://172.16.203.107/houtai/get_client_inf.php?action=queue_set_php&an=861000016 但是之后就会报错414,用抓包工具抓得的url是这样的: http://172.16.203.107/houtai/get_client_inf.php?action=queue_set_php&an=861000011&queuenums%5B%5D=861000011000&deleted_861000011000=0&selected_861000011000=18&selected_n_861000011000=caoping509&groupname_new_861000011000=caoping509&db_operate_add_861000011000=2001%7C&db_operate_del_861000011000=&selected_an=861000011&selectarea1_an=861000011&selectarea1_queuename=861000011000&selectarea2_an=861000011&selectarea2_queuename=861000011000 后面那些queuenums什么的 都是 表单中<input type="hidden">的值,莫名其妙就被加到了url里,导致url太长,可是这个问题只有IE8出现,IE 7,9~11都是正常的,这是为什么? 各位大神行行好~~我都快精神失常了~~~~(>_<)~~~~
如何用js把form提交到action 具体代码如下
common.js中的一个方法 function add(url){ alert('新建成功!'); to(url); } add.jsp中的部分代码如下 <head> <script src="/script/common.js"></script> </head> <div class="button_bar"> <button class="common_button" onclick="help('');">帮助</button> <button class="common_button" onclick="add('../../service.do?operate=toAdd');">保存</button> </div> <form method="post" name="form1" action="../../service.do?operate=toAdd'"> <table class="query_form_table"> <tr> <th>服务类型</th> <td colspan="3"> <select name="cstService.svrType"> <option value="请选择...">请选择...</option> <option value="咨询">咨询</option> <option value="投诉">投诉</option> <option value="建议">建议</option> </select><span class="red_star">*</span> </td> </tr> <tr> <th>概要</th> <td colspan="3"><input size="53" name="cstService.svrTitle"/><span class="red_star">*</span></td> </tr> <tr> <th>客户</th> <td><input size="20" name="cstService.svrCustName"/><span class="red_star">*</span></td> <th>状态</th> <td><input name="cstService.svrStatus" type="text" value="新创建" readonly /></td> </tr> <tr> <th>服务请求</th> <td colspan="3"><textarea rows="6" cols="50" name="cstService.svrRequest"></textarea><span class="red_star">*</span></td> </tr> <tr> <th>创建人</th> <td> <input name="cstService.svrCreateId" value="${USER.usrId}" type="hidden"/> <input name="cstService.svrCreateBy" value="${USER.usrName}" readonly size="20" /><span class="red_star">*</span></td> <th>创建时间</th> <td><input id="t1" name="cstService.svrCreateDate" readonly size="20" /><span class="red_star">*</span></td> </tr> </table> <input type="submit" value="login"/> <input type="reset" value="reset"/> </form> 具体问题是点击保存时,能够跳到serviceAction 但是里面的数据却没过来,cstService.svrType一类的都是空值...(用submit能正常提交,有数据) 谁能些一个共有的js方法将form提交过去啊,不要用表单里的<input type="submit" value="login"/> (这个是重点)? 小弟初学者,望各位高手不吝指教.....谢谢
JSP中表单提交,SpringMvc中Controller无法接收请求
jsp代码 <form action="/send/queryUser" method="post" id="choose"> <button type="button" class="layui-btn" lay-filter="demo1" id="btn">立即提交</button> js代码 $("#btn").click(function(){ if(checkedCond0()== true&&checkedCond1()== true&&checkedCond2()== true&&checkedYear() == true){ alert("成功"); $("#choose").submit(); }else { alert("请选择条件"); } }) Controller代码 @RequestMapping(value = "/queryUser",method = RequestMethod.POST) public String phone_query_user_new() 求问??
post提交form表单到springMVC,不能跳转问题
**项目结构: ** ![图片说明](https://img-ask.csdn.net/upload/201812/14/1544768206_941826.png) 1. jsp页面 **index.jsp** ``` <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>首页</title> </head> <body> <a href="/sdkapp/init">去往登录页</a> </body> </html> ``` **login.jsp** ``` <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>登录页</title> <script src="<%=request.getContextPath()%>/js/jquery-1.7.2.js" type="text/javascript"></script> </head> <body> <form id="frm"> 用户id: <input type="text" name="uid"><br><br> 用户名: <input type="text" name="username"><br><br> 密 码: <input type="password" name="password"><br><br> <input type="submit" id="btn" value="登录"> </form> <script type="text/javascript"> $("#btn").click(function () { console.log(getFormJson(frm)); $.ajax({ url: "${pageContext.request.contextPath}/sdkapp/login", type:"POST", data: getFormJson(frm), contentType:"application/json;charset=utf-8", success:function(data){ console.log(data) }, error:function(data){ console.log(data) } }); }) function getFormJson(frm) { //frm:form表单的id var o = {}; var a = $("#"+frm).serializeArray(); $.each(a, function() { if (o[this.name] !== undefined) { if (!o[this.name].push) { o[this.name] = [ o[this.name] ]; } o[this.name].push(this.value || ''); } else { o[this.name] = this.value || ''; } }); return o; } </script> </body> </html> ``` **success.jsp** ``` <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>登录成功页</title> </head> <body> <h1>登录成功</h1> </body> </html> ``` 2. 配置文件 **springmvc.xml** ``` <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!--配置默认的servlet处理器,处理静态资源加载--> <mvc:default-servlet-handler/> <!--配置包扫描controller--> <context:component-scan base-package="controller"/> <mvc:annotation-driven/> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/pages/"></property> <property name="suffix" value=".jsp"></property> </bean> </beans> ``` **web.xml** <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <servlet> <servlet-name>springMvc</servlet-name> <!--加载前端控制器--> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/springmvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app> 3.java代码 **Login.java** ``` package controller; import controller.vo.User; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @RestController @RequestMapping(value = "/sdkapp") public class Login { @RequestMapping(value = "/init") public ModelAndView casdkbindInput(){ ModelAndView view = new ModelAndView("/login"); return view; } @RequestMapping(value = "/login",method = {RequestMethod.POST},consumes = "application/json;charset=utf-8") public ModelAndView testJson(@RequestBody User user) throws Exception { System.out.println(user); ModelAndView view = new ModelAndView("/success"); return view; } } ``` **vo/User.java** ``` package controller.vo; import java.io.Serializable; public class User implements Serializable { private String uid; private String username; private String password; public String getUid() { return uid; } public void setUid(String uid) { this.uid = uid; } 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; } @Override public String toString() { return "User{" + "uid='" + uid + '\'' + ", username='" + username + '\'' + ", password='" + password + '\'' + '}'; } } ``` 问题是 jq post请求到后台,后台返回 view时,前端接收不到? 附上demo地址:[百度云盘](https://pan.baidu.com/s/1edbTMGCw2wrhGKADY9x8XA "")
wap网站数据提交到jsp,jsp用javascript提交表单,会有问题吗?
目前我要实现一个网关,要求从wap网站提交数据到我这边,我组装好form后再提交到另一个wap网站,我这边对于用户是不可见的,用的是Jsp,写了个表单,body上面写了onload="document.form1.submit()",因为手机上wap网不支持html,不支持javascript,是不是我这边就不可能提交呢??可我这边对用户是不可见的啊,属于后台程序啊。有点糊涂,不支持html和javascript是从哪方面讲的??请各位指点迷津 [b]问题补充:[/b] 我这样用html和javascript能走通吗?我还没有在手机上试,因为本人的手机不能上网 [b]问题补充:[/b] 我需要把用户转到后面那个wap站的,那个wap站不提供webservice的接口。后面那个wap站是一个付费的站点。我做的网关需要统计一下请求,并计入数据库,接着就把请求转出去。因为用户需要到他们那个网站去付费,所以我写的是jsp而没用struts的action来处理。
用ajax请求实现表单提交并页面跳转的问题
使用的是SpringBoot框架,部分代码如下 JS代码: function login() { var userName = $("#inputName").val(); var userPassword = $("#inputPassword").val(); var rememberUser = $("input[type=checkbox]").get(0).checked; $.ajax({ url : "login/userLogin", type : "post", dataType : "json", data : { "userName" : userName, "userPassword" : userPassword }, success : function(result) { if (result.status == 1) { if (rememberUser) { addCookie("userName", userName, 30); } else { delCookie("userName"); } window.location.href = "menu.html"; } else if (result.status == 0) { alert(result.message); } } }); return false; } Controller代码: @RequestMapping(value = "login/userLogin", method = RequestMethod.POST) @ResponseBody public Result login(User user) { Result result = userService.login(user); return result; } 登录form提交后,每次都是显示返回的json,而不是跳转到menu.html,应该怎么改 ![图片说明](https://img-ask.csdn.net/upload/201808/06/1533518408_644093.jpg)
如何构造一个可以自定义header内容的http请求
如何用js或者提交form表单的形式构造一个header具有自定义参数的http请求。 如下图中的x-session-token。 ![图片说明](https://img-ask.csdn.net/upload/201807/09/1531135429_826633.png) 尝试过使用ajax如下: ![图片说明](https://img-ask.csdn.net/upload/201807/09/1531136308_529603.png) 但是未能成功 ![图片说明](https://img-ask.csdn.net/upload/201807/09/1531136203_574262.png) 请教一下应该如何构造
angularjs+nodejs文件上传,用form表单可以成功上传,用angularjs上传不上去
第一种情况,可以正常上传文件,代码如下: html: =======================start=========== ``` <form enctype="multipart/form-data" action="api/Upload/" method="post"> <input id="file" type="file" name="imgUploader" multiple /> <input id="submit"type="submit" name="submit" id="btnSubmit" value="Upload" /> </form> ``` ======================end===================== 第二种情况,请求成功,但是文件没有上传上去,代码如下: ======================start==================== html: ``` <label for="file" class="btn btn-link" ng-click="vm.addjson()" style="font-size:10px;height:1px;margin:0px;padding-left:40px;">ファイル追加</label> <input type="file" id="file" ngf-select="true" ng-model="file" style="display: none"/> ``` angularjs: ``` $scope.$watch('file', function (file) { // alert($scope.file); $scope.upload($scope.file); }); $scope.upload = function (file) { alert("upload= "+file.name); Upload.upload( { headers: {'Content-Type':undefined}, url:"api/Upload/", method:"post", fields: {'username': $scope.username}, file: file, }) .progress(function (evt) { var progressPercentage = parseInt(100.0 * evt.loaded / evt.total); // alert('progress: ' + progressPercentage + '% ' + evt.config.file.name); }) .success(function (data, status, headers, config) { alert("angularjs_qingqiuchenggong"); // alert('file ' + config.file.name + 'uploaded. Response: ' + ' congig======='+config.sites); //添加文件 vm.addjson(file); }) .error(function (data, status, headers, config) { // alert('error status: ' + status); vm.addjson(file); }) }; ``` ==========================end======================= 两种方法使用共同的nodejs ,代码如下: ``` var Express = require('express'); var multer = require('multer'); var bodyParser = require('body-parser'); var path = require('path'); var app = Express(); app.use(bodyParser.json()); //app.use(Express.static(__dirname, "/static")); app.use(Express.static(path.join(__dirname, '/static'))); var Storage = multer.diskStorage({ destination: function (req, file, callback) { callback(null, "./json"); }, filename: function (req, file, callback) { callback(null, file.originalname); } }); var upload = multer({ storage: Storage }).array("imgUploader", 3); //Field name and max count app.get("/", function (req, res) { res.sendFile(__dirname + "/index.html"); }); app.post("/api/Upload", function (req, res) { upload(req, res, function (err) { if (err) { return res.end("Something went wrong!"); } // return res.end("upload success!"); }); }); app.listen(2000, function (a) { console.log("Listening to port 2000"); }); ``` 请问为什么使用使用上面第二种发法可以请求成功但是文件上传不上去呢?是我哪里写错了吗?帮我看一下,在线等,非常着急,谢谢了。
基于springmvc+mybatis的登录表单提交后404
前端填写正确的用户名和密码后,提交登录,浏览器显示404,前端提交的地址是/userlogin,后端对接的/user/userlogin也是对的,浏览器f12里显示请求的确成功传给了后端,但是不知道为什么404。用的是tomcat8.5,java版本1.8,phpstudy最新版,mysql5.7.26。 ## 这是所用到的包: ![图片说明](https://img-ask.csdn.net/upload/202002/01/1580567617_880785.jpg) ## 这是目录结构: ![图片说明](https://img-ask.csdn.net/upload/202002/01/1580567511_223692.jpg) ## 这是web.xml: ```xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>springmvc_test</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- 配置spring监听器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 加载spring配置文件 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:config/context-config.xml</param-value> </context-param> <!-- 配置前端控制器 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <!-- DispatcherServlet在初始化方法里面会读取该初始化参数的值来获得 spring配置文件的位置 ,然后启动spring容器。 --> <param-name>contextConfigLocation</param-name> <param-value>classpath*:config/springmvc-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- 配置字符编码 --> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app> ``` ## 这是context-config.xml: ```xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 扫描service包下的注解 --> <context:component-scan base-package="com.test.service"></context:component-scan> <!-- 配置数据库 --> <!-- 加载配置文件 --> <!-- <context:property-placeholder location="classpath:jdbc.properties"/> --> <bean id="dateSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driver" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/Eday_Test"></property> <property name="username" value="root"></property> <property name="password" value="123456"></property> </bean> <!-- 配置Sqlsessionfactory并将数据源注入 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 引入数据源 --> <property name="dateSource" ref="dateSource"></property> <!-- 载入mybatis配置文件 --> <property name="configLocation" value="classpath:mybatis-config.xml"></property> <!-- 载入配置mapper映射的xml --> <property name="mapperLocations" value="classpath:com/test/mapper/*.xml"></property> </bean> <!-- 配置扫描mapper接口 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackge" value="com.test.mapper"></property> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> </bean> <!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dateSource" ref="dateSource"></property> </bean> <tx:annotation-driven transaction-manager="transactionManager"/> </beans> ``` ## 这是mybatis-config.xml: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <typeAliases> <!-- 配置别名 --> <typeAlias alias="User" type="com.test.pojo.User"/> </typeAliases> </configuration> ``` ## 这是springmvc-config.xml: ```xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- 扫描controller包下的注解 --> <context:component-scan base-package="com.test.controller"></context:component-scan> <!-- 开启注解 --> <mvc:annotation-driven></mvc:annotation-driven> <!-- 静态资源访问 --> <mvc:default-servlet-handler/> <!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 配置试图解析的默认路径,即配置页面的根路径 --> <property name="prefix" value="/"></property> <property name="suffix" value=".jsp"></property> </bean> </beans> ``` ## 这是UserController.java: ```java package com.test.controller; import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; import com.test.pojo.User; import com.test.service.UserService; //声明控制器 @Controller //设置bean的scope属性为多例(prototype) @Scope("prototype") //设置请求映射,当客户端请求/user时,转到该控制器处理 @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @RequestMapping(value="/userlogin") public ModelAndView login(String user_Name,String user_pwd,ModelAndView mv,HttpSession session){ //调用userService中的login方法处理user实体类对象 User user = userService.login(user_Name,user_pwd); //登录的逻辑判断,判断条件是返回结果不为空 if(user!=null){ //登陆成功,将user对象设置到HttpSession作用范围域中,相当于服务端的cookie,有效时间默认30分钟 //在程序运行期间,在任意页面都可以提取它的值。 session.setAttribute("user",user); //转发到main请求 //登录成功,跳转页面 mv.setViewName("login/login-success"); }else{ //登录失败,向前端传递失败信息 mv.addObject("message","用户名或密码错误,请重新输入!"); //登录失败,跳转到登录页面 mv.setViewName("login"); } return mv; } //跳转到用户注册界面 @RequestMapping(value="/userregister"/*,method=RequestMethod.POST*/) public String register(User user){ String user_Name = user.getUser_Name(); //如果数据库中没有该用户,可以注册,否则跳转页面 if(userService.findByUserName(user_Name)==null){ //添加用户 userService.register(user); //注册成功,跳转到主页面 return "index"; }else{ //注册失败,跳转到错误页面 return "error"; } } } ``` ## 这是UserMapper.java: ```java package com.test.mapper; import org.apache.ibatis.annotations.Param; import com.test.pojo.User; public interface UserMapper { //根据用户名和密码查找,mybatis中有多个参数时,需要使用@Param注解 User findByUserNameAndPassword(@Param("user_Name")String user_Name,@Param("user_Pwd")String user_Pwd); //增加用户 void addUser(User user); //根据用户名查询 User findByUserName(String user_Name); } ``` ## 这是UserMapper.xml: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.tes.mapper.UserMapper"> <!-- 根据用户名和密码查询 --> <select id="findByUserNameAndPasssword" resultType="User"> select * from user where user_Name=#{user_Name} and user_Pwd=#{user_Pwd} </select> <!-- 增加用户 --> <insert id="addUser" parameterType="User"> insert into user (user_Name,user_Pwd,user_Email,user_NickName,user_Birth,user_Phone,user_InvitationCode) values(#{user_Name},#{user_Pwd},#{user_Email},#{user_NickName},#{user_Birth},#{user_Phone},#{user_InvitationCode}) </insert> <!-- 根据用户名查询 --> <select id="findByUserName" resultType="User"> select * from user where user_Name=#{user_Name} </select> </mapper> ``` ## 这是User.java: ```java package com.test.pojo; import java.sql.Timestamp; public class User { private int user_Id; private String user_Name; private int user_Pwd; private String user_Email; private String user_NickName; private Timestamp user_Time; private String user_Birth; private int user_Fans; private int user_Follow; private int user_Score; private String user_HeadImgAddr; private int user_Phone; private String user_InvitationCode; public int getUser_Id() { return user_Id; } public void setUser_Id(int user_Id) { this.user_Id = user_Id; } public String getUser_Name() { return user_Name; } public void setUser_Name(String user_Name) { this.user_Name = user_Name; } public int getUser_Pwd() { return user_Pwd; } public void setUser_Pwd(int user_Pwd) { this.user_Pwd = user_Pwd; } public String getUser_Email() { return user_Email; } public void setUser_Email(String user_Email) { this.user_Email = user_Email; } public String getUser_NickName() { return user_NickName; } public void setUser_NickName(String user_NickName) { this.user_NickName = user_NickName; } public Timestamp getUser_Time() { return user_Time; } public void setUser_Time(Timestamp user_Time) { this.user_Time = user_Time; } public String getUser_Birth() { return user_Birth; } public void setUser_Birth(String user_Birth) { this.user_Birth = user_Birth; } public int getUser_Fans() { return user_Fans; } public void setUser_Fans(int user_Fans) { this.user_Fans = user_Fans; } public int getUser_Follow() { return user_Follow; } public void setUser_Follow(int user_Follow) { this.user_Follow = user_Follow; } public int getUser_Score() { return user_Score; } public void setUser_Score(int user_Score) { this.user_Score = user_Score; } public String getUser_HeadImgAddr() { return user_HeadImgAddr; } public void setUser_HeadImgAddr(String user_HeadImgAddr) { this.user_HeadImgAddr = user_HeadImgAddr; } public int getUser_Phone() { return user_Phone; } public void setUser_Phone(int user_Phone) { this.user_Phone = user_Phone; } public String getUser_InvitationCode() { return user_InvitationCode; } public void setUser_InvitationCode(String user_InvitationCode) { this.user_InvitationCode = user_InvitationCode; } @Override public String toString() { return "User [user_Id=" + user_Id + ", user_Name=" + user_Name + ", user_Pwd=" + user_Pwd + ", user_Email=" + user_Email + ", user_NickName=" + user_NickName + ", user_Time=" + user_Time + ", user_Birth=" + user_Birth + ", user_Fans=" + user_Fans + ", user_Follow=" + user_Follow + ", user_Score=" + user_Score + ", user_HeadImgAddr=" + user_HeadImgAddr + ", user_Phone=" + user_Phone + ", user_InvitationCode=" + user_InvitationCode + "]"; } } ``` ## 这是UserService.java: ```java package com.test.service; import com.test.pojo.User; public interface UserService { //通过用户名及密码核查用户登录 User login(String user_Name,String user_Pwd); //增加用户 void register(User user); //根据用户名查询 User findByUserName(String user); } ``` ## 这是UserServiceImpl.java: ```java package com.test.service.impl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.test.mapper.UserMapper; import com.test.pojo.User; import com.test.service.UserService; @Service @Transactional public class UserServiceImpl implements UserService { //注入UserMapper接口 @Autowired private UserMapper userMapper; //登录,根据用户名和密码进行查询 @Override public User login(String user_Name,String user_Pwd){ return userMapper.findByUserNameAndPassword(user_Name,user_Pwd); } //注册,增加用户 @Override public void register(User user){ userMapper.addUser(user); } //根据用户名查询 @Override public User findByUserName(String user_Name){ return userMapper.findByUserName(user_Name); } } ``` ##这是login.jsp ```jsp <%@ 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"> <link rel="stylesheet" type="text/css" href="../css/login.css" /> <title>登录</title> </head> <body> <!--导航栏--> <nav class="nav"> <ul> <li class="logo"><a href="#">Eday</a></li> <li class="shouye"><a href="../index.jsp" class="neirong">首页</a></li> <li class="fgx">|</li> <li><a href="#" class="neirong">文章列表</a></li> <li class="fgx">|</li> <li><a href="#" class="neirong">留言板</a></li> <li class="fgx">|</li> <li><a href="#" class="neirong">更新日志</a></li> </ul> </nav> <!--登录板块--> <header class="header"> <p class="logintitle"> <b>登录</b> </p> <form action="${pageContext.request.contextPath }/user/userlogin" method="post" class=login-form> <p class= login-username-p> <label for="username" class="login-username-text">用户名:</label> <input type=text name="user_Name" class="login-username-input"> <br><a href="register.jsp" class=login-register>注册</a> </p> <p class="login-psw-p"> <label for="psw" class="login-psw-text">密码:</label> <input type=password name="user_Pwd" class="login-psw-input"> <br><a href="#" class=login-forget>忘记密码</a> </p> <div class=login-button-div> <label for=button></label> <button type=sublim class=login-button>登录</button> </div> </form> </header> </body> </html> ``` ## 这是login-success.jsp: ```jsp <%@ 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>登录成功,请等待跳转...</title> <script type="text/javascript"> onload=function(){ setInterval(go, 1000); }; var x=3; //利用了全局变量来执行 function go(){ x--; if(x>0){ document.getElementById("sp").innerHTML=x; //每次设置的x的值都不一样了。 }else{ location.href='../index.jsp'; } } </script> </head> <body> <!--导航栏--> <nav class="nav"> <ul> <li class="logo"><a href="#">Eday</a></li> <li class="shouye"><a href="../index.jsp" class="neirong">首页</a></li> <li class="fgx">|</li> <li><a href="#" class="neirong">文章列表</a></li> <li class="fgx">|</li> <li><a href="#" class="neirong">留言板</a></li> <li class="fgx">|</li> <li><a href="#" class="neirong">更新日志</a></li> </ul> </nav> <header> <div> <p>登录成功!页面将在3秒后自动跳转,请稍等...</p> </div> </header> </body> </html> ``` ## 这是数据库: ![图片说明](https://img-ask.csdn.net/upload/202002/01/1580568589_694404.jpg)
java后台解决跨域访问,为什么前端还不能访问上传文件
``` function upload() { var form1 = document.createElement("form"); form1.setAttribute("id","form1"); document.body.appendChild(form1) var inputObj=document.createElement('input') inputObj.setAttribute('id','file'); inputObj.setAttribute('type','file'); inputObj.setAttribute('name','file'); inputObj.setAttribute("style",'visibility:hidden'); inputObj.click() form1.appendChild(inputObj) inputObj.onchange = function () { form1.method ="POST"; form1.enctype = "multipart/form-data"; $("#form1").submit(function () { var formData = new FormData(); formData.append("file",$("#file")[0]); $.ajax({ url:"http://localhost:8080/file/upload.action", type:"POST", contentType:"multipart/form-data", data:formData, cache:false, processData:false, success:function (data) { console.log(data) } }) }) } } ``` 如上代码,html为了美观只用了一个button,button点击后调用这个函数,然后用js创建form表单和input,这里问题来了:如果单单表单提交,没有问题,但是会跳转页面;如果单单用ajax,出现跨域(服务器端已经添加了header还是会有跨域问题), 再就是使用如上的代码,form表单中使用ajax请求,没有出现任何问题并且文件没有上传,好像是 $("#form1").submit(function () )没有调用,小白求解。
Ajax无刷新提交表单并搜索数据库
![![图片说明](https://img-ask.csdn.net/upload/201603/22/1458634248_267260.png)图片说明](https://img-ask.csdn.net/upload/201603/22/1458634237_360971.png) 大家看图也能明白我的意思。页面中包含两个框架,下面的框架就是主要的问题所在。两个下拉列表联动已经会做了,现在想要点击“确定”后提交表单并在下面显示出数据库查询结果,但同时下拉列表不能刷新,保持选择的项目状态。目前点击按钮后会出现第二图的情况,恶心死我了。 我参考Shelley Powershot的《JavaScript学习指南》,可是却没能达到我想要的效果。提交表单是大概只能用post方法了吧……求大神相助,可以提供思路,提供参考文献或者指正我的代码 sd_help.php如下: ``` <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="style.css" type="text/css" rel="stylesheet"> <script type="text/javascript" src="jquery-1.3.2.min.js"></script> </head> <body class="font"> <div align="center"><font size="4px">选择您需要的帮助</font></div><br> <form name="search" action="search_db.php" method="post"> <div align="center"> <select name="domain" id="domain" onChange="redirec(document.search.domain.options.selectedIndex)"> <option selected value="0">请选择</option> <option value="1">体育</option> <option value="2">艺术</option> <option value="3">文史</option> </select>&nbsp;&nbsp;&nbsp;&nbsp; <select name="items" id="items"> <option value="0" selected>请选择</option> </select>&nbsp;&nbsp; <input type="submit" value="确定" id="submitButton"/> </form> </div> <script language="javascript"> //获取一级菜单长度 var groups = document.search.domain.options.length; var group = new Array(groups); //把一级菜单都设为数组 for (i=0; i<groups; i++) { group[i] = new Array();} //定义基本选项 group[0][0] = new Option("请选择", "0"); group[1][0] = new Option("足球", "1"); group[1][1] = new Option("篮球", "2"); group[1][2] = new Option("乒乓球", "3"); group[2][0] = new Option("歌唱", "4"); group[2][1] = new Option("舞蹈", "5"); group[2][2] = new Option("乐器", "6"); group[3][0] = new Option("小说", "7"); group[3][1] = new Option("散文", "8"); group[3][2] = new Option("诗词", "9"); //联动函数 function redirec(x) { var temp = document.search.items; for (i=0;i<group[x].length;i++) { temp.options[i]=new Option(group[x][i].text,group[x][i].value);} temp.options[0].selected=true; } //<![CDATA[ //全局变量 var xmlHttpObj; function catchEvent(eventObj,event,eventHandler){ if(eventObj.addEventListener){ eventObj.addEventListener(event,eventHandler,false); }else if(eventObj.attachEvent){ event="on"+event; eventObj.attachEvent(event,eventHandler); } } catchEvent(window,"load",function(){ //document.getElementById("helps").style.display="block"; document.getElementById("items").onchange=populateList; //document.getElementById("submitButton").style.display="none"; }); //创建XHR对象 function getXmlHttp(){ var xmlhttp=null; if(window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); if(xmlhttp.overrideMimeType){ xmlhttp.overrideMimeType('text/html'); } }else if(window.ActiveObject){ xmlhttp=new ActiveObject("Microsoft.XMLHTTP"); } return xmlhttp; } //准备并发送XHR请求 function populateList(){ var items=document.getElementById("items").value; var url='search_db.php'; var qry="items="+items; //如果xmlHttpObj为空 if(!xmlHttpObj) xmlHttpObj=getXmlHttp(); if(!xmlHttpObj) return; xmlhttp.open('POST',url,true); xmlhttp.onreadystatechange=getItems; xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); xmlhttp.send(qry); } //处理返回的数据 function getItems(){ if(xmlHttpObj.readyState==4&&xmlHttpObj.status==200){ document.getElementById('helps').innerHTML=xmlHttpObj.responseText; }else if(xmlHttpObj.readyState==4&&xmlHttpObj.status!=200){ document.getElementById('helps').innerHTML='请求出错误!'; } } //]]> </script> <div align="center"> <table><tr><td id="helps"></td></tr></table> </div> </body> ``` search_db.php如下(暂为演示,所以没有执行数据库查询): ``` <?php if(empty($_QUEST['items'])){ echo "未传入items值!悲剧!"; } else echo ($_QUEST['items']); ?> ```
JQuery的load()方法的疑问
我在项目中用到jquery的$.post();方式无刷新提交操作 返回的操作中用$("body").load("action"); 这样的方式来局部刷新页面 但是我用FF的控制台看了一下 发现他有很多get请求内容是js文件 具体看下附件 各位高人有没有遇到过这种情况? 能解释一下么 顺便说一下解决方案 我用location.href或者form表单提交就没有这些问题 究竟load()方法是怎么实现局部刷新的呢 :oops:
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 - ```
Extjs htmleditor 和formpanel提交表单乱码问题
Ext.QuickTips.init(); var form = new Ext.form.Formpanel({ name : 'editnews', url : 'updateNews.action', labelAlign : 'right', labelWidth : 50, width : 600, title : 'form', frame : true, items : [{ xtype : 'textfield', name : 'news.id', hidden : true }, { xtype : 'textfield', name : 'news.docId', hidden : true }, { xtype : 'textfield', name : 'news.creator', hidden : true }, { xtype : 'textfield', name : 'news.ctreatTime', hidden : true }, { xtype : 'textfield', fieldLabel : '标题', name : 'news.docName' }, { layout : 'form', items : [{ labelAlign : 'top', items : [{ xtype : 'htmleditor', fieldLabel : '在线编辑器', name : 'news.docContent', id : 'editor', anchor : '98%' }] }] }], buttons : [{ text : '取消' }, { text : '保存', handler : function() { form.getForm().submit({ success : function() { Ext.Msg.alert('信息', '新闻更新成功!'); }, failure : function() { Ext.Msg .alert('提示', '请求失败,请重试。'); } }); } }] }); form.render("form");
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
小白学 Python 爬虫(25):爬取股票信息
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(...
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
世界上最牛的网络设备,价格低廉,其貌不扬......
夜深人静,电视和电脑都已经关机休息,但是我还在默默工作,我安静地趴在你家中的某个地方,7*24小时不眠不休,任劳任怨,目的只有一个,能让你舒服地躺在床上,畅快地刷手机!没错,这就是我,...
《面试宝典》2019年springmvc面试高频题(java)
前言 2019即将过去,伴随我们即将迎来的又是新的一年,过完春节,马上又要迎来新的金三银四面试季。那么,作为程序猿的你,是否真的有所准备的呢,亦或是安于本职工作,继续做好手头上的事情。 当然,不论选择如何,假如你真的准备在之后的金三银四跳槽的话,那么作为一个Java工程师,就不可不看了。如何在几个月的时间里,快速的为即将到来的面试进行充分的准备呢? 1、什么是Spring MVC ?简单...
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试一个ArrayList我都能跟面试官扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
2020年1月中国编程语言排行榜,python是2019增长最快编程语言
编程语言比例 排名 编程语言 最低工资 工资中位数 最低工资 最高工资 人头 人头百分比 1 rust 20713 17500 5042 46250 480 0.14% 2 typescript 18503 22500 6000 30000 1821 0.52% 3 lua 18150 17500 5250 35000 2956 0.84% 4 go 17989 16...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
Idea 中最常用的10款插件(提高开发效率),一定要学会使用!
学习使用一些插件,可以提高开发效率。对于我们开发人员很有帮助。这篇博客介绍了开发中使用的插件。
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
工作十年的数据分析师被炒,没有方向,你根本躲不过中年危机
2020年刚刚开始,就意味着离职潮高峰的到来,我身边就有不少人拿着年终奖离职了,而最让我感到意外的,是一位工作十年的数据分析师也离职了,不同于别人的主动辞职,他是被公司炒掉的。 很多人都说数据分析是个好饭碗,工作不累薪资高、入门简单又好学。然而今年34的他,却真正尝到了中年危机的滋味,平时也有不少人都会私信问我: 数据分析师也有中年危机吗?跟程序员一样是吃青春饭的吗?该怎么保证自己不被公司淘汰...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
立即提问