一般的来说,中小型的应用Android与服务器的通讯方式是直接通过Url路径请求servlet,然后servlet返回xml数据(或者Json数据)这些xml文件里面又包括一些路径(比如图片的url路径,显示图片就通过这个路径下载)。而且有服务器跳转的技术
Web端的开发:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<News> videos = new NewsService().getLatestNews();
request.setAttribute("videos", videos);
request.getRequestDispatcher("index.jsp").forward(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<News> videos = new NewsService().getLatestNews();
request.setAttribute("videos", videos);
request.getRequestDispatcher("index.jsp").forward(request, response);
}
}
注意两个地方:
1. 最好doPost与doGet都写,要不然加入用户以Post方式发送请求的时候,只写doGet没有任何回应,结果不知道错在哪里
2. 注意路径的书写,加入是在WEB-INF里面新建一个page文件夹,里面有一个news.jsp文件,那么路径就是WEB-INF/page/news.jsp
NewsService:public class NewsService {
public List<News> getLatestNews(){
List<News> news=new ArrayList<News>();
news.add(new News(1,"喜羊羊与灰太狼",20));
news.add(new News(2,"喜羊羊与灰太狼",30));
news.add(new News(3,"喜羊羊与灰太狼",30));
news.add(new News(4,"喜羊羊与灰太狼",60));
news.add(new News(5,"喜羊羊与灰太狼",45));
news.add(new News(6,"喜羊羊与灰太狼",32));
return news;
}
}
News:
public class News {
private Integer id;
private String name;
private Integer timeLength;
public News(){
}
public News(Integer id, String name, Integer timeLength) {
this.id = id;
this.name = name;
this.timeLength = timeLength;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getTimeLength() {
return timeLength;
}
public void setTimeLength(Integer timeLength) {
this.timeLength = timeLength;
}
}
index.jsp:使用的是JSTL
<?xml version="1.0" encoding="UTF-8"?><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<Videonews>
<c:forEach items="${videos}" var="video">
<id>${video.id }</id>
<name>${video.name}</name>
<timeLength>${video.timeLength}</timeLength>
</c:forEach> </Videonews>
注意:事实上这个index.jsp完全可以这样写:
<?xmlversion="1.0"encoding="UTF-8"?>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core"prefix="c"%>
<Videonews>
<c:forEachitems="${videos}"var="video">
<id>${video.id }</id>
<name>${video.name}</name>
<timeLength>${video.timeLength}</timeLength>
</c:forEach></Videonews>
不要<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%>
也是可以的(最好不要)