日期:2014-05-16 浏览次数:20425 次
首先写一个应用服务器端的jsp程序,用jsp和servlet简单实现,如下图所示

package cn.roco.domain;
public class News {
private Integer id;
private String title;
private Integer timelength;
public News() {
}
public News(Integer id, String title, Integer timelength) {
this.id = id;
this.title = title;
this.timelength = timelength;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Integer getTimelength() {
return timelength;
}
public void setTimelength(Integer timelength) {
this.timelength = timelength;
}
}
package cn.roco.service;
import java.util.List;
import cn.roco.domain.News;
public interface VideoNewsService {
/**
* 获取最新视频资讯
* @return
*/
public List<News> getLastNews();
}
package cn.roco.service.impl;
import java.util.ArrayList;
import java.util.List;
import cn.roco.domain.News;
import cn.roco.service.VideoNewsService;
public class VideoNewsServiceBean implements VideoNewsService{
/**
* 模拟从服务器中获取数据 返回
*/
public List<News> getLastNews(){
List<News> newses=new ArrayList<News>();
for (int i = 1; i < 30; i++) {
newses.add(new News(i,"Xili"+i,i+90));
}
return newses;
}
}
package cn.roco.servlet;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.roco.domain.News;
import cn.roco.service.VideoNewsService;
import cn.roco.service.impl.VideoNewsServiceBean;
public class ListServlet extends HttpServlet {
private VideoNewsService newsService=new VideoNewsServiceBean();
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
List<News> videos=newsService.getLastNews();
String format=req.getParameter("format");
//返回JSON格式
if ("json".equals(format)) {
StringBuilder builder=new StringBuilder();
builder.append('[');
for (News news : videos) {
builder.append('{');
builder.append("id:").append(news.getId()).append(',');
//转义 ""双引号
builder.append("title:\"").append(news.getTitle()).append("\",");
builder.append("timelength:").append(news.getTimelength());
builder.append("},");
}
builder.deleteCharAt(builder.length()-1);//去掉最后的','
builder.append(']');
req.setAttribute("json", builder.toString());
req.getRequestDispatcher("/WEB-INF/page/jsonvideonews.jsp").forward(req, resp);
}else{
//返回XML格式
req.setAttribute("videos", videos);
req.getRequestDispatcher("/WEB-INF/page/videonews.jsp").forward(req, resp);
}
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp);
}
}
如果要返回XML文件 就forward到videonews.jsp页面
<%@ page language="java" contentType="text/xml; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><?xml version="1.0" encoding="UTF-8"?>
<videonews>
<c:forEach items="${videos}" var="video">
<news id="${video.id}">
<title>${video.title}</title>
<tim