以前写了服务器端web开发博客,现在差不多又忘了怎么操作,这个写详细点,就不用做重复的工作了。
要建立服务端,就要建一个Web工程,然后发布到服务器上。我用的服务器环境是Tomcat V7.0 + Appach.
怎么建一个Web工程,查看: eclipse+tomcat开发web项目
下面进入正题,讲一下老罗的这个视频的服务器端的建立(视频上没讲)。先来看一下项目结构:
1. 在WebContent目录下,新建index.jsp文件。
用户进入这个工程,首先会访问到这个文件,这个文件几乎是通用的。
<base href=> 这里是一个链接,就是页面的默认链接。
加入了这个文件之后,发布上去之后就可以通过 http://192.168.0.161:8080/viewpager/ 连接上,看到连接成功的现象。
2. 生成JSON数据
3. 实现分页,把JSON数据发布到网页上
编写好Servlet之后,接下来要告诉Web容器有关于这个Servlet的一些信息。在Servlet 3.0中,可以使用标注(Annotation)来告知容器哪些Servlet会提供服务以及额外信息。 只要在Servlet上设置@WebServlet标注,容器就会自动读取当中的信息。上面的@WebServlet("/ViewPagerServlet") 告诉容器,如果请求的URL是"/ViewPagerServlet",则由ViewPagerServlet的实例来提供服务。也可以使用@WebServlet提供更多信息,如
@WebServlet(
name=”Hello”,
urlPatterns={“/hello.view”},
loadOnStartup=1
)
public class HelloServlet extends HttpServlet {。。。。}
4. 将工程发布到服务器
编程部分完成之后,就可以将工程发布到服务器了。
4.1 首先要有一个Server.如果没有,就在工程上右键--->New-->Other-->Server-->Server.
然后把要发布的项目加到Server中,点击Strart。当它的状态成这样时,就表示发布成功:
![](https://img-blog.csdn.net/20140722161429237)
那这个项目发布保存到哪里去了呢?
在Server的Tomcat V7.0上右键-->open -->把Server Locations修改(添加项目后,好像就不能改了,没事,再新建一个。)如图:
![](https://img-blog.csdn.net/20140722161741406)
然后,发布的项目就会在.../Tomcat 7.0/webapps 目录下。
发布成功后,这个时候再访问,就可以看到我们的JSON数据了:
![](https://img-blog.csdn.net/20140722162230296)
要建立服务端,就要建一个Web工程,然后发布到服务器上。我用的服务器环境是Tomcat V7.0 + Appach.
怎么建一个Web工程,查看: eclipse+tomcat开发web项目
下面进入正题,讲一下老罗的这个视频的服务器端的建立(视频上没讲)。先来看一下项目结构:
| 可以看到,项目中要用到PagerAction.java,DividePage.java 用来分页,JsonTools.java 用来生成Json数据,MyCity.java用来生成源数据,ViewPagerServlet.java用来得到JSON数据并发布到网页上。 还有一个index.jsp文件。 |
用户进入这个工程,首先会访问到这个文件,这个文件几乎是通用的。
<% 这里可以写程序语言,如C#后台程序%> <% %>这里的内容是在后面运行的。<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> This is my JSP page. <br> </body> </html>
<base href=> 这里是一个链接,就是页面的默认链接。
加入了这个文件之后,发布上去之后就可以通过 http://192.168.0.161:8080/viewpager/ 连接上,看到连接成功的现象。
2. 生成JSON数据
1. MyCity 生成源始数据 package com.city; import java.util.ArrayList; import java.util.List; public class MyCity { public static List<String> createDataSource() { List<String> list = new ArrayList<String>(); for (int i = 1; i < 120; i++) { list.add("伦敦 " + i); } return list; } } | 2. JsonTools.java 生成JSON数据 package com.city; import java.util.HashMap; import java.util.Map; import net.sf.json.JSONSerializer; public class JsonTools { public JsonTools(){ } public static String createProductJsonString(String key,Object object){ String result=""; Map<String,Object> map=new HashMap<String,Object>(); map.put(key, object); result=JSONSerializer.toJSON(map).toString(); return result; } } |
1. DividePage.java 实现数分页 package com.city; public class DividePage { private int pageSize; // 每页显示的条数 private int recordCount;// 记录的总条数 private int currentPage;// 当前页数 private int pageCount;// 总页数 public DividePage(int pageSize, int recordCount, int currentPage) { this.pageSize = pageSize; this.recordCount = recordCount; this.setCurrentPage(currentPage); } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getRecordCount() { return recordCount; } public void setRecordCount(int recordCount) { this.recordCount = recordCount; } public int getCurrentPage() { return currentPage; } //设置定位在当前页 public void setCurrentPage(int currentPage) { int activePage=currentPage<=0?1:currentPage; activePage=activePage>getPageCount()?getPageCount():activePage; this.currentPage = activePage; } //获得总页数 public int getPageCount() { pageCount=recordCount/pageSize; int mod=recordCount%pageSize; if(mod!=0){ pageCount++; //还余有就加1 } return recordCount==0?1:pageCount; } public void setPageCount(int pageCount) { this.pageCount = pageCount; } //从多少页跳到多少页 public int getFromIndex() { return (currentPage-1)*pageSize; } public int getToIndex(){ return Math.min(recordCount, currentPage*pageSize); } } | 2. 实现Servlet处理 package com.city; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/ViewPagerServlet") //一定要加上这句 public class ViewPagerServlet extends HttpServlet { private static final long serialVersionUID = 1L; public ViewPagerServlet(){ super(); } @Override public void destroy() { super.destroy(); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); PrintWriter writer = response.getWriter(); List<String> list = MyCity.createDataSource(); String pageNo = request.getParameter("pageNo");//得到访问参数 int currentPage = 1; if (pageNo != null) { currentPage = Integer.parseInt(pageNo); } DividePage pUtil = new DividePage(25, list.size(), currentPage); int fromIndex = pUtil.getFromIndex(); int toIndex = pUtil.getToIndex(); List<String> subList = list.subList(fromIndex, toIndex); String jsonString = JsonTools.createProductJsonString("citys", subList); writer.print(jsonString); //写到网页上去 writer.flush(); writer.close(); } @Override public void init() throws ServletException { } } |
@WebServlet(
name=”Hello”,
urlPatterns={“/hello.view”},
loadOnStartup=1
)
public class HelloServlet extends HttpServlet {。。。。}
4. 将工程发布到服务器
编程部分完成之后,就可以将工程发布到服务器了。
4.1 首先要有一个Server.如果没有,就在工程上右键--->New-->Other-->Server-->Server.
然后把要发布的项目加到Server中,点击Strart。当它的状态成这样时,就表示发布成功:
那这个项目发布保存到哪里去了呢?
在Server的Tomcat V7.0上右键-->open -->把Server Locations修改(添加项目后,好像就不能改了,没事,再新建一个。)如图:
然后,发布的项目就会在.../Tomcat 7.0/webapps 目录下。
发布成功后,这个时候再访问,就可以看到我们的JSON数据了: