1.功能分块明确。
功能分块明确有利于在测试时进行每一块的测试,易于确认错误位置,如果分块不明确,我们就很难确认到底是那一块出错,因为一个程序比较复杂时,都是一点点拼出来的,自己都有时候很难搞清楚,更别提别人给你测试了,分块明确也有利于后期的修改等,好处很多。
代码:
dao层
package Dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import Data.Data; public class dao { public List<Data> list1(){ List<Data> list =new ArrayList<Data>(); try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/runoob?useSSL=false"; String username = "root"; String password = "12345678"; Connection conn = DriverManager.getConnection(url, username, password); String sql = "select * from tu"; Statement statement = conn.createStatement(); ResultSet resultSet = statement.executeQuery(sql); while (resultSet.next()) { Data book = new Data(); book.setHotwords(resultSet.getString("热词")); book.setNum(resultSet.getString("次数")); list.add(book); } resultSet.close(); statement.close(); conn.close(); }catch (Exception e) { e.printStackTrace(); } return list; } public List<Data> list2(){ List<Data> list =new ArrayList<Data>(); try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/runoob?useSSL=false"; String username = "root"; String password = "12345678"; Connection conn = DriverManager.getConnection(url, username, password); String sql = "select * from lianjie"; Statement statement = conn.createStatement(); ResultSet resultSet = statement.executeQuery(sql); while (resultSet.next()) { Data book = new Data(); book.setHotwords(resultSet.getString("热词")); book.setExplain(resultSet.getString("解释")); book.setWebsite(resultSet.getString("网址")); list.add(book); } resultSet.close(); statement.close(); conn.close(); }catch (Exception e) { e.printStackTrace(); } return list; } }
data层
package Data; public class Data{ private String hotwords; private String num; private String explain; private String website; public String getExplain() { return explain; } public void setExplain(String explain) { this.explain = explain; } public String getWebsite() { return website; } public void setWebsite(String website) { this.website = website; } public String getHotwords() { return hotwords; } public void setHotwords(String hotwords) { this.hotwords = hotwords; } public String getNum() { return num; } public void setNum(String num) { this.num = num; } }
servlet层
package Servlet; import java.io.IOException; 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; import com.google.gson.Gson; import Dao.dao; import Data.Data; @WebServlet("/servlet") public class servlet extends HttpServlet { private static final long serialVersionUID = 1L; dao dao1=new dao(); protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); String method=request.getParameter("method"); if("1".equals(method)) { find1(request, response); }else if("2".equals(method)) { find2(request, response); } } private void find1(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { request.setCharacterEncoding("utf-8"); List<Data> list2=dao1.list1(); Gson gson2 = new Gson(); String json = gson2.toJson(list2); System.out.println(json); response.setContentType("text/html;charset=UTF-8"); response.getWriter().write(json); } private void find2(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { request.setCharacterEncoding("utf-8"); request.setAttribute("list",dao1.list2()); request.getRequestDispatcher("biao.jsp").forward(request, response); } }
2.必要变量值要输出在控制台。
必要变量输出在控制台,是最直观的测试方法,可以直接让我们看到分析错误的依据,从而分析出错误,就像一个错误提示一样,是我平时编程找错误,最常用的方法,比直接读程序效率高很多,可以找到自己想不到的错误。
private void find1(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { request.setCharacterEncoding("utf-8"); List<Data> list2=dao1.list1(); Gson gson2 = new Gson(); String json = gson2.toJson(list2); System.out.println(json); response.setContentType("text/html;charset=UTF-8"); response.getWriter().write(json); }
原文:https://www.cnblogs.com/my---world/p/12418215.html