后台的开发需要支持不同系统手机客户端的开发(包括塞班、安卓、IOS)系统提供后台接口,由于客户来解析接口提供的数据格式(XML、Json)目前采用XML格式返回。
后台组织上面可以采用简单的JSP格式,JSP直接访问后台的服务层,省掉传统MVC中的C层,直接是MV层,视图层直接访问管理层得到相应的数据返回,并组织成客户端定义的数据格式!
例如 下面的JSP代码
<%@page import="com.migu.util.ConfigurationUtil"%>
<%@ page language="java" contentType="text/xml;charset=UTF-8"%><?xml version="1.0" encoding="UTF-8" ?>
<%@page import="com.migu.model.PsAlbumExample"%>
<%@page import="com.migu.model.PsAlbum"%>
<%@page import="com.migu.service.PsAlbumServiceImpl"%>
<%@page import="java.util.List"%>
<%@page import="com.migu.model.PageBean"%>
<%@page import="java.math.BigDecimal"%>
<%@page
import="org.springframework.web.context.support.WebApplicationContextUtils"%>
<%@page import="org.springframework.web.context.WebApplicationContext"%>
<%@page import="com.migu.service.PsUserInvServiceImpl"%>
<%@page import="com.migu.model.PsUserInv"%>
<%@page import="java.util.Date"%>
<%@page import="com.migu.model.PsUserInvExample"%>
<%@taglib uri="oscache" prefix="cache"%>
<rsp> <%
int pageSize = 10;//默认size
int pageNo = 1;//默认页码
String pagesize = request.getParameter("pagesize");
String pageno = request.getParameter("pageno");
if(null!=pageno) pageNo = Integer.parseInt(pageno);
if(null!=pagesize) pageSize = Integer.parseInt(pagesize);
WebApplicationContext context =(WebApplicationContext)WebApplicationContextUtils.getWebApplicationContext(getServletContext());
PsAlbumServiceImpl psAlbumServiceImpl = (PsAlbumServiceImpl)context.getBean("psAlbumServiceImpl");
PsUserInvServiceImpl psUserInvServiceImpl = (PsUserInvServiceImpl)context.getBean("psUserInvServiceImpl");
String singerid = request.getParameter("singerid");
String mobile=request.getHeader("x-up-calling-line-id");
//插入用户的访问专辑的日期记录
if(null!=singerid&&null!=mobile){
PsUserInvExample e=new PsUserInvExample();
e.createCriteria().andInvArtistIdEqualTo(Long.parseLong(singerid)).andInvUidEqualTo(BigDecimal.valueOf(Long.parseLong(mobile)));
List<PsUserInv> ll=psUserInvServiceImpl.selectByExample(e);
PsUserInv pui=new PsUserInv();
pui.setInvAlbumTime(new Date());
pui.setInvArtistId(Long.parseLong(singerid));
pui.setInvUid(BigDecimal.valueOf(Long.parseLong(mobile)));
//如果用户已经访问了歌手的有其它类型(如图片),则进行更新
if(ll.size()>0){
pui.setInvId(ll.get(0).getInvId());
psUserInvServiceImpl.updateByPrimaryKeySelective(pui);
}
//插入访问日期记录
else{
psUserInvServiceImpl.insert(pui);
}}
if(null!=singerid){
PsAlbumExample example = new PsAlbumExample();
example.createCriteria().andAlbArtidEqualTo(BigDecimal.valueOf(Long.parseLong(singerid)));
example.setOrderByClause("ALB_ID");
/*OSCACHE缓存配置START*/
StringBuffer cache_key = request.getRequestURL().append("_").append(singerid).append("_").append(pageno).append("_").append(pagesize);
%> <cache:cache time="180" key="<%=cache_key.toString()%>" refresh="false">
<%
/*OSCACHE缓存配置END*/
PageBean pageBean =psAlbumServiceImpl.queryByPage( pageNo, pageSize,example);
List<PsAlbum> list =pageBean.getResultList();
%>
<pagecount><%=pageBean.getPageCount()%></pagecount>
<list> <%
for(PsAlbum obj:list){
if(null!=obj){
String pic_path = "";
try{
pic_path = ConfigurationUtil.getFullPicPath(obj.getAlbPicPath());
if(null!=pic_path&&pic_path.indexOf(".")>0) pic_path = pic_path.substring(0,pic_path.lastIndexOf("."))+"_150x150.jpg";
}catch(Exception e){
}
%> <item> <id><%=obj.getAlbId()%></id> <img><%=ConfigurationUtil.filterNull(pic_path)%></img>
<title><%=ConfigurationUtil.filterNull(obj.getAlbName())%></title> </item> <%
}
}
%> </list>
</cache:cache> <%}%> </rsp>
实现的是返回给客户端的专辑列表!
分享到:
相关推荐
故事《蜡烛与台灯》通过一个简单的寓言形式,讲述了一个关于谦虚、自我反省以及价值认识的主题。虽然这看起来是一个面向儿童的故事,但其中蕴含的道理同样适用于成人世界,尤其是在快速发展的信息技术领域。 #### ...
标题中的“电信设备-数字移动台实时显示短消息的控制装置及其方法”涉及到的是通信技术领域,特别是关于数字移动通信...通过学习这份资料,读者可以深入了解通信技术的内部运作,提高对移动通信系统优化和开发的认识。
通过这个简单的例子,新手可以对 iOS 开发有一个初步的认识。 接着,教程深入介绍 iOS 编程的基础知识,包括 InterfaceBuilder 的使用、头文件和实现文件的作用,以及触摸和点击事件的处理机制。这部分内容对于理解...
综上所述,海豚浏览器凭借对Web App的前瞻性认识和持续的创新,试图在竞争激烈的手机浏览器市场中找到自己的立足之地,并期望通过提供卓越的用户体验和整合Web App功能,成长为移动互联网领域的重要平台。
- 通过该项目,进一步提升了基于JSP、Servlet及Struts框架的Web编程能力,加深了对Hibernate数据库访问技术的理解,并且对Spring框架的应用有了更深入的认识。 ##### 项目二:网上购物平台(B/S) - **系统平台**...
<<page 1>> page begin==================== 目 目目 目 录 录录 录 第一部分 C#语言概述.4 第一章 第一章第一章 第一章 .NET 编 编 ... 比尔....这一天 微软公司正式推出了其下一代...
我歪着头反问:"是电 脑和手机吗?"哥哥笑了一下,接着说:"差不多吧,人工智能的英文叫做artificial, technology,简称ai,而真正意义上的人工智能就是能够帮助人类完成复杂工作的东西 。"说着,他把电脑打开,...
"clean-up-admin-template" 是一个基于React技术栈的管理界面模板,专为构建高效、整洁且用户友好的后台管理系统设计...通过深入学习和理解这个模板,你可以提升你的React技能,同时对现代前端开发流程有更深入的认识。
- **移动设备兼容性:** 如果软件适用于移动设备,则需要验证在不同品牌和型号的手机和平板电脑上的性能。 - **网络兼容性:** 测试软件在网络连接不稳定或速度慢的情况下的表现。 - **数据库兼容性:** 如果软件...
3:多台:不同对象对统一消息作出不同响应称之为多态 4:抽象:忽略与当前主题无关的那些方面,将注意力集中在与当前目标有关的方面 运行时异常和一般异常有何异同? 答:运行时异常时(JVM)java虚拟机在运行过程...
电冰箱)、汽车电子没备等都是近年以来热门的Java应用领域,尤其是手机上的Java应用 程序和Java游戏,更是普及。 4:除了上面提到的,Java还有很多功能:如进行数学运算、显示图形界面、进行网络操作、 进行数据库操作、...