学习URL
一. 学习网址
https://www.runoob.com/java/java-url-processing.html
https://www.baeldung.com/java-url
二. 需求
1.需求
弹屏管理
(1)获取弹屏广告列表
(2)新增弹屏广告
(3)编辑弹屏广告
(4)获取当前页面上的广告
2.设计
table:
id, domain, path, ad_content, expire, created, modified, operator
3 代码
/**
*获取弹屏广告列表
**/
//controller层
@RestController
@RequestMapping("/ad")
public class adController {
@RequestMapping(value = "/list", method = { RequestMethod.GET })
@ResponseBody
public List<AdvertisementDto> getAbList() {
List<AdvertisementDto> adList = adSerivce.getAdList();
return adList;
}
}
//Service层
public interface adService {
List<AdvertisementDto> adSerivce.getAdList();
}
//ServiceImps层
@Service("adService")
public class AdServiceImpl implements AdService {
@Override
public List<AdvertisementDto> getAdList() {
List<AdvertisementDto> adList= adMybatis.getAdList();
return adList;
}
//Mybatis层
public interface adMybatis {
List<AdvertisementDto> getAdList();
}
//sql
select * from table where expire > now()
/**
*当前页面没有广告则新增, 有则更新
**/
//controller层
@RestController
@RequestMapping("/ad")
public class adController {
@RequestMapping(value = "/add", method = { RequestMethod.POST })
@ResponseBody
public void addAd(AdvertisementDto advertisementDto) {
adSerivce.addAdDto(advertisementDto);
}
}
//Service层
public interface adService {
void adSerivce.addAdDto(AdvertisementDto advertisementDto);
}
//ServiceImps层
@Service("adService")
public class AdServiceImpl implements AdService {
@Override
public void addAdDto(advertisementDto) {
try{
adMybatis.addAdDto(advertisementDto);
}catch(Exception e){
// 在错误发生时处理...
}
}
//Mybatis层
public interface adMybatis {
void addAdDto(AdvertisementDto advertisementDto);
}
//sql
<insert id="add">
INSERT INTO table (id, domain, path, ad_content, expire, created, modified, operator)
VALUES
(#{item.id}, #{item.domain}, #{item.path}, #{item.adContent}, #{item.expire}, #{item.created}, #{item.modified}, #{item.operator}))
ON DUPLICATE KEY UPDATE
domain = VALUES(domain),
path = VALUES(path),
ad_content = VALUES(ad_content),
expire = VALUES(expire),
created = VALUES(created),
modified = now(),
operator = VALUES(operator)
</insert>
/**
*获取当前页面弹屏出的广告
**/
//controller层
@RestController
@RequestMapping("/ad")
public class adController {
@RequestMapping(value = "/getAdContent", method = { RequestMethod.GET})
@ResponseBody
public String getAdContent(String url) {
String content = adSerivce.getAdContent(String url);
return content;
}
}
//Service层
public interface adService {
String adSerivce.getAdContent(String url);
}
//ServiceImps层
@Service("adService")
public class AdServiceImpl implements AdService {
@Override
public String getAdContent(String url) {
String content;
try{
URL baseUrl = new URL(url);
String domain = baseUrl.getHost();
String path = baseUrl.getPath();
content = adMybatis.getAdContent(domain,path);
}catch(Exception e){
// 在错误发生时处理...
}
return content;
}
//Mybatis层
public interface adMybatis {
String getAdContent(String domain, String path);
}
//sql
<select id="getAdContent">
select ad_content
from table
where domain = #{domain} and path = #{path}
and expire > now()
</select>