涉及的主要技术:
客户端:jQuery+Ajax
服务器端 : Spring(MVC,IOC,AOP),myBatis
jQuery:简化客户端js和Ajax编程
Ajax:异步发送Http请求,实现页面的局部处理;
SpringMVC:接受HTTP请求,调用业务组件处理,返回Json处理结束
IOC:管理Controller,Service,Dao,关系注入
MyBatis:用于实现数据库操作,完成Dao组件
AOP:实现事务和异常日志切入处理
Ajax+Servlet+JSON(json-lib.jar)
Ajax+SpringMVC+JSON(jackson.jar)
JSP响应
请求 -> DispatcherServlet
-> HandlerMapping
-> Controller
-> 返回ModelAndView/ String
-> ViewResolver
-> JSP
JSON相应
请求 -> DispatcherServlet
-> HandlerMapping
-> Controller
->返回数据对象
->在Controller方法前添加 @ResponseBody
-> 调用jackson包 将返回数据对象转成JSON字符串输出客户端
步骤
step1.1:创建Maven项目
step1.2:导jar包
springWebMVC jar包 :
org.springframework:spring-web 4.3.8.RELEASE
JSON jar包:
com.fasterxml.jackson.core:jackson-core 2.8.7
com.fasterxml.jackson.core:jackson-databind 2.8.7
com.fasterxml.jackson.core:jackson-annotations 2.8.7
step1.3 :添加配置文件(文件夹 src/main/resources)
spring-mvc.xml
案例:
/ajax/load1.do请求
–>DispatcherServlet (web.xml)
–> HandlerMapping (sping-mvc.xml +@RequestMapping)
–> AjaxController.load1 (编写,扫描)
–>返回User对象
–>添加@ResponseBody
–>调用jackson包将User转成JSON字符串输出
配置Web.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" 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:conf/spring-*.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
spring-mvc.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:util="http://www.springframework.org/schema/util"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jpa="http://www.springframework.org/schema/data/jpa" xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
<!-- 开启组件扫描,支持@Controller,@Service -->
<context:component-scan base-package="com.tedu.cloudnote"/>
<!--配置HanderMapping,支持@RequestMapping,@
<mvc:annotation-driven/>
</beans>
@Controller //扫描到Spring容器
public class AjaxController{
@RequestMapping("/ajax/load1.do");
@ResponseBody
public User load1(){
User user=new User();
user.setId(1);
user.setName("潇潇");
return user;
}
}
备注:
1:使用Navicat Preminum软件 进行数据库的访问,查询等;