致立男:完整的一个java web交互流程
来源:互联网 发布:全球鹰k12和知豆哪个好 编辑:程序博客网 时间:2024/06/14 12:39
以下是给立男准备的教程
java web流程:前端发起请求---->请求到对应的controller并接收到请求参数--->根据controller的业务需求调用对应的service实现业务逻辑---->service中若涉及到数据库操作要在service中进行数据库交互---->service完成业务逻辑,controller返回给前端展示的指定页面。
实例:根据后端数据库中存储的图片url,异步ajax返回给前端,进行图片的展示。
1.明确需求:当页面初始化后,要通过ajax异步请求获取图片url并赋值给页面唯一的img标签进行图片的展示。
2.实现步骤
1).在数据库中定义新建表的img_url
2).在spring mvc中定义mybatis的表的配置为文件(ImgUrlDao.java(dao 包中),ImgUrlMapper.xml(resources/mpper包中))和表映射的java的数据类型(ImgUrl.java)
3).定义service的接口类和实现类(ImgUrlService.java(service包中),ImgUrlServiceImpl.java(impl包中))
4).定义controller类
5).写前端的页面和ajax
3.具体实现步骤
1).在数据库中新建表img_url并添加几条假数据,保证图片url可以通过http访问到便于测试
创建表的sql
CREATE TABLE `img_url` (
`id` bigint(30) NOT NULL AUTO_INCREMENT ,
`url` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=1
ROW_FORMAT=COMPACT;
关于假数据 随便插
2在spring mvc中定义mybatis的表的配置为文件(ImgUrlDao.java(dao 包中),ImgUrlMapper.xml(resources/mpper包中))和表映射的java的数据类型(ImgUrl.java)
1).在dao包中定义ImgUrlDao.java 对象 并定义一个方法 输入为int型的变量,输出为ImgUrl.java类型变量,代码如下
package com.springmvc.dao;import com.springmvc.entity.ImgUrl;import org.apache.ibatis.annotations.Param;public interface ImgUrlDao { public ImgUrl getImgUrlById(@Param("id") int id);}
2).在resources/mpper包中定义ImgUrlMapper.xml 的配置文件
要点说明:
1>mapper标签中的namespace属性要对应的是与其对应的dao的完成的类名和路径名
2>定义resultMap标签 中的type为该对应的数据库表映射的对应的java数据对象,里面result为各个属性值的对应。
3>定义sql语句如select标签等 其id属性要和对应的Dao文件中的执行方法名完全相同。
<?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.springmvc.dao.ImgUrlDao"> <resultMap id="resultMap" type="com.springmvc.entity.ImgUrl"> <result property="id" column="id"/> <result property="url" column="url"/> </resultMap> <sql id="columnSql"> <trim suffixOverrides=","> id, url </trim> </sql> <select id="getImgUrlById" resultMap="resultMap"> SELECT <include refid="columnSql"></include> FROM img_url WHERE id=#{id} </select></mapper>
3)定义数据类型
package com.springmvc.entity;public class ImgUrl { private int id; private String url; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; }}
3.定义service的接口类和实现类(ImgUrlService.java(service包中),ImgUrlServiceImpl.java(impl包中))
1).定义接口类
package com.springmvc.service;import com.springmvc.entity.ImgUrl;public interface ImgUrlService { public ImgUrl getImgUrlById(int id);}
2)定义接口实现类,如下代码
注意:
1>实现类必须用@Service进行注解,这样spring会把该类进行管理并进行对应的类型注入
2>.创建的成员变量imgUrlDao必须用@Autowired声明,这样spring会把对应的imgUrlDao进行注入。
package com.springmvc.service.impl;import com.springmvc.dao.ImgUrlDao;import com.springmvc.entity.ImgUrl;import com.springmvc.service.ImgUrlService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;@Servicepublic class ImgUrlServiceImpl implements ImgUrlService{ @Autowired private ImgUrlDao imgUrlDao; public ImgUrl getImgUrlById(int id) { ImgUrl imgUrlById = imgUrlDao.getImgUrlById(id); return imgUrlById; }}
4.定义controller类
注意:
1>。一定要匹配好url
2> controller类必须用@controller注解进行声明
3> 异步请求必须声明为@ResponseBody,会返回图片url的字符串
package com.springmvc.controller;import com.springmvc.entity.ImgUrl;import com.springmvc.service.ImgUrlService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controllerpublic class ImgController { @Autowired ImgUrlService imgUrlService; @RequestMapping("/show") public String a(){ return "imgTest"; } @RequestMapping("/getImgUrl") @ResponseBody public String getImgUrl(int id){ ImgUrl imgUrlById = imgUrlService.getImgUrlById(id); String url = imgUrlById.getUrl(); return url; }}
5.写前端的页面(imgTest.jsp)和ajax
<html><body><script src="/static/Jquery.3.1.1.js"></script><script> $(function(){ $.ajax({ type: "POST", url: "getImgUrl", data:{id:1}, dataType: "text", success: function(data){ $(".imgTest").attr("src",data) }, error:function (data, data, data) { console.log("fff") } }); })</script><h2>Hello World!</h2><img src="" class="imgTest"></body></html>
完成
访问url:
http://localhost/show
- 致立男:完整的一个java web交互流程
- 一个完整的交互设计流程是怎样的?
- 一个完整的交互设计流程是这样的
- 一个完整的项目流程
- 一个完整的Java Web项目需要掌握哪些技术
- 一个软件产品设计的完整流程
- 一个完整的项目管理流程
- 一个完整的项目管理流程
- 一个完整的项目管理流程
- 一个完整的项目管理流程
- 一个完整的项目管理流程
- 一个完整的项目管理流程
- 一个完整的项目管理流程
- oracle一个事务的完整流程分析
- oracle一个事务的完整流程
- 一个完整的项目管理流程
- 一个完整的项目管理流程
- libgdx一个完整的处理流程
- 字符串逆序
- 随机分组
- rabbitmq 交换模式-Fanout
- Javascript+Ajax+Node JS +socket .io +mysql 实现在线私人聊天
- leetcode:candy
- 致立男:完整的一个java web交互流程
- 【JVM】JVM垃圾回收机制
- 2017.6.4测试 题二 睡眠
- 不容易系列
- 【Java学习笔记】24:缓冲流(缓冲字节流/缓冲字符流)
- 排序之五:希尔排序(高效)
- TabLayout+第三方登录+Xutils获取数据
- 第八弹——阿里云对象云存储OSS
- P1514 引水入城