首先新建一个项目:(这种情况下可能没有新建工程,将
)在新建一个工程:
然后记得装Tomcat:
然后右键这个jar包,进行Build path:
接下来就是代码了,但是你首先得有个数据库,我用的是mysql,下载一个mysql软件,创建好数据库及表后:、
在Eclipse中新建一个类:(用来连接数据库)
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class MysqlUtils { // 加载数据库驱动com.mysql.jdbc.Driver private static String dbdriver = "com.mysql.jdbc.Driver"; // 获取mysql连接地址 private static String dburl = "jdbc:mysql://127.0.0.1:3306/beautiful_girl?serverTimezone=GMT%2B8&useSSL=false"; // 数据名称 private static String username = "root"; // 数据库密码 private static String userpassword = "new password"; // 获取一个数据的连接 public static Connection conn = null; //数据库查询语句 String sql = "select * from Picture"; //连接数据库 public Connection connect() { Connection conn = null; try { Class.forName(dbdriver); conn = DriverManager.getConnection(dburl, username, userpassword); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } //断开数据库 public void disconnect(ResultSet rs, PreparedStatement ps, Connection conn) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (ps != null) { try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn == null) return; try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }
然后新建一个类,用来写Bean类,保存数据库查询的字段:
public class Bean { private int id; private String imgUrl; public Bean(int id,String imgUrl) { this.id = id; this.imgUrl = imgUrl; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getImgUrl() { return imgUrl; } public void setImgUrl(String imgUrl) { this.imgUrl = imgUrl; } }
接下来就是主方法里的代码块了:
import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.ArrayList; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.google.gson.Gson; /** * Servlet implementation class Test */ @WebServlet("/Test") public class Test extends HttpServlet { private ArrayList<Bean> list = new ArrayList<Bean>(); private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Test() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.setContentType("text/json; charset=utf-8"); PreparedStatement content = null; Connection con = null; ResultSet result = null; String json = null; String page = "1"; //获取操作网页对象 PrintWriter out = response.getWriter(); //“page”是浏览器要传输到后台的参数 page = request.getParameter("page"); MysqlUtils mysql = new MysqlUtils(); //获取数据库操作对象 con = mysql.connect(); try { //判断前台传输的数据是否为空 if(page!=null) { //每次查十条 content = con.prepareStatement("select * from Picture limit "+(Integer.parseInt(page) - 1)*10+",10"); result = content.executeQuery(); ResultSetMetaData meta = result.getMetaData(); int coliumn = meta.getColumnCount(); //判断查找的数据是否有下一条 while(result.next()) { list.add(new Bean(result.getInt("id"),result.getString("imgUrl"))); Gson gson = new Gson(); json = gson.toJson(list); } out.println(json); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { //将集合中的原始数据清空 list.clear(); } // response.getWriter().append("Served at: ").append(request.getContextPath()); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
当我们代码写完后,就可以在浏览器上看我们生成的json串了