近年来,前后端分离成为web领域的热点话题,javascript作为前端三大核心技术之一,与后端的spring mvc、mybatis组成了一种完整的企业级开发架构,即ssm。
在这种架构下,前端通过http请求与后端进行交互,而javascript相应的技术就是ajax。ajax全称为asynchronous javascript and xml,即异步的javascript和xml。它支持在不重新载入整个页面的情况下与服务器交换数据并更新部分页面内容,从而提升了用户的使用体验。本文将介绍javascript方式提交请求ssm的实现方法。
一、前端代码
我们先来看一下前端javascript的实现代码。
创建xmlhttprequest对象在javascript中,需要先创建xmlhttprequest对象,通过该对象发起异步请求。
var xmlhttp;if (window.xmlhttprequest) { // code for ie7+, firefox, chrome, opera, safari xmlhttp=new xmlhttprequest();} else { // code for ie6, ie5 xmlhttp=new activexobject(microsoft.xmlhttp);}
发送请求并处理响应数据通过xmlhttp对象的open方法设置请求方式、请求地址、是否异步等参数,再通过send方法发送请求。在请求的回调函数中,可以通过修改dom元素、改变样式等方式来处理响应数据。
xmlhttp.open(get,ajax_info.txt,true);xmlhttp.send();xmlhttp.onreadystatechange=function(){ if (xmlhttp.readystate==4 && xmlhttp.status==200) { document.getelementbyid(mydiv).innerhtml=xmlhttp.responsetext; }}
二、后端代码
前端处理完请求后,需要后端进行响应。在ssm架构中,后端代码使用spring mvc框架实现,其中@responsebody注解可以标记一个controller方法的返回值为json数据。
@requestmapping(value=/getusername,method=requestmethod.post)@responsebodypublic string getusername(@requestparam(userid)string userid) { // 处理业务逻辑,获取用户名称 string username = userservice.findnamebyid(userid); // 返回json格式的数据 return {\username\:\ + username + \};}
三、整合步骤
在前端代码中调用后端controller方法var userid = 123;$.ajax({ type : 'post', url : '/ssm-demo/getusername', data: {userid : userid}, datatype : 'json', success : function(data) { console.log(data.username); }});
引入jquery和jackson相关库在后端代码中,需要引入jackson相关库来实现json数据的的转换。
<!-- jquery库 --><dependency> <groupid>org.webjars</groupid> <artifactid>jquery</artifactid> <version>3.3.1</version></dependency><!-- jackson库 --><dependency> <groupid>com.fasterxml.jackson.core</groupid> <artifactid>jackson-databind</artifactid> <version>2.9.8</version></dependency>
配置javaconfig,扫描controller在spring的javaconfig文件中,需要进行如下配置:
@configuration@componentscan(basepackages=com.demo.controller)public class appconfig { // ...}
配置spring mvc的dispatcherservlet在web.xml中配置dispatcherservlet,将servlet映射到指定url。需要配置的参数有:
contextconfiglocation:指定spring的javaconfig文件的路径<url-pattern>:指定dispatcherservlet的映射urldispatcher_servlet_name:指定dispatcherservlet的名字<servlet> <servlet-name>demo-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class> <init-param> <param-name>contextconfiglocation</param-name> <param-value>classpath:com/demo/config/appconfig.java</param-value> </init-param> <load-on-startup>1</load-on-startup></servlet><servlet-mapping> <servlet-name>demo-dispatcher</servlet-name> <url-pattern>/</url-pattern></servlet-mapping>
通过对以上步骤的整合,即可在ssm架构中实现通过javascript方式提交请求。这种方式的优点在于,可以提升用户的使用体验,在不重新载入整个页面的情况下通过前后端异步交互,实现局部刷新,从而快速响应用户的操作。
以上就是聊聊javascript方式提交请求ssm的实现方法的详细内容。