JavaWab开发基础片(一)

转载于:(https://blog.csdn.net/qq_31242531/article/details/80497940)
内容详见上文,谢谢!

最近在测试中发现mysql数据库保存测试用例,测试结果是一种不错的选择,为了后期方便在客户端展示测试,便写了个接口。此次接口开发不使用任何框架,需下载gson.jar,mysql-connector.jar,servlet-api.jar,以下为接口的开发思路

1.创建数据表,我这边使用的是mysql数据库


     
     
  1. /*
  2. SQLyog 企业版 - MySQL GUI v8.14
  3. MySQL - 5.5.49 : Database - test
  4. *********************************************************************
  5. */
  6. /*!40101 SET NAMES utf8 */;
  7. /*!40101 SET SQL_MODE=''*/;
  8. /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
  9. /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
  10. /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
  11. /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
  12. CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET utf8 */;
  13. USE `test`;
  14. /*Table structure for table `testcase` */
  15. DROP TABLE IF EXISTS `testcase`;
  16. CREATE TABLE `testcase` (
  17. `caseId` INT( 11) NOT NULL AUTO_INCREMENT,
  18. `caseName` VARCHAR( 255) CHARACTER SET latin1 NOT NULL,
  19. `caseDetail` VARCHAR( 255) CHARACTER SET latin1 NOT NULL,
  20. `caseDevice` VARCHAR( 255) CHARACTER SET latin1 NOT NULL,
  21. PRIMARY KEY ( `caseId`)
  22. ) ENGINE= INNODB AUTO_INCREMENT= 48 DEFAULT CHARSET=utf8 CHECKSUM= 1 DELAY_KEY_WRITE= 1 ROW_FORMAT=DYNAMIC;
  23. /*Data for the table `testcase` */
  24. INSERT INTO `testcase`( `caseId`, `caseName`, `caseDetail`, `caseDevice`) VALUES ( 2, '2', '233', '444'),( 16, 'dsf', 'sf', 'sfd'),( 17, 'safd', 'sadf', 'asf'),( 18, 'saf', 'ggd', 'sdf'),( 19, 'dsaf', 'sdf', 'sdf'),( 20, 'sfd', 'sfd', '(NfdsULL)'),( 21, 'sdf', 'v', 'v'),( 22, 'f', 'f', 'e'),( 23, 'w', 'r3', 'rt'),( 24, 'er', 'rtrt', 'sfad'),( 25, 'sf', 'sdf', 'fds'),( 26, 'sa', 's', 's'),( 27, 'e', 'e', 'e'),( 28, 'sa', 'rt', 'rt'),( 29, 'we', 'ew', 'qw'),( 30, 'we', '(NULfL)', 'dsf'),( 31, 'fd', 's', 'g'),( 32, 's', 'g', 'f'),( 33, 'sf', 'f', 'f'),( 34, 'c', 'c', 'c'),( 35, 'e', 'e', 'e'),( 36, 'd', 'd', 'q'),( 37, 'q', 'e', 'r'),( 38, 'f', 'r', 'g'),( 39, 'g', '(NULgL)', 'g'),( 40, 'gg', 'g', 'd'),( 41, 'f', 'f', 'f'),( 42, 'f', 'f', 'f'),( 43, 'f', 'f', 'f'),( 44, 'v', 'f', 'g'),( 45, 'e', 'e', 'r'),( 46, '4', 'rt', 'fg'),( 47, 'dsf', 'ds', 'sdf');
  25. /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
  26. /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
  27. /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
  28. /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
2.编写数据库工具类

     
     
  1. package model;
  2. import java.sql.*;
  3. public class DBconn {
  4. static String url = "jdbc:mysql://localhost:3306/test?useunicuee=true& characterEncoding=utf8";
  5. static String username = "root";
  6. static String password = "123456";
  7. static Connection conn = null;
  8. static ResultSet rs = null;
  9. static PreparedStatement ps = null;
  10. public static void init(){
  11. try {
  12. Class.forName( "com.mysql.jdbc.Driver");
  13. conn = DriverManager.getConnection(url,username,password);
  14. } catch (Exception e) {
  15. System.out.println( "init [SQL驱动程序初始化失败!]");
  16. e.printStackTrace();
  17. }
  18. }
  19. public static int addUpdDel(String sql){
  20. int i = 0;
  21. try {
  22. PreparedStatement ps = conn.prepareStatement(sql);
  23. i = ps.executeUpdate();
  24. } catch (SQLException e) {
  25. System.out.println( "sql数据库增删改异常");
  26. e.printStackTrace();
  27. }
  28. return i;
  29. }
  30. public static ResultSet selectSql(String sql){
  31. try {
  32. ps = conn.prepareStatement(sql);
  33. rs = ps.executeQuery(sql);
  34. } catch (SQLException e) {
  35. System.out.println( "sql数据库查询异常");
  36. e.printStackTrace();
  37. }
  38. return rs;
  39. }
  40. public static void closeConn(){
  41. try {
  42. conn.close();
  43. } catch (SQLException e) {
  44. System.out.println( "sql数据库关闭异常");
  45. e.printStackTrace();
  46. }
  47. }
  48. }
3.编写实体类

     
     
  1. package model;
  2. public class TestCase {
  3. private int id;
  4. private String caseName;
  5. private String caseDetail;
  6. private String caseDevice;
  7. public int getId() {
  8. return id;
  9. }
  10. public void setId(int id) {
  11. this.id = id;
  12. }
  13. public String getCaseName() {
  14. return caseName;
  15. }
  16. public void setCaseName(String caseName) {
  17. this.caseName = caseName;
  18. }
  19. public String getCaseDetail() {
  20. return caseDetail;
  21. }
  22. public void setCaseDetail(String caseDetail) {
  23. this.caseDetail = caseDetail;
  24. }
  25. public String getCaseDevice() {
  26. return caseDevice;
  27. }
  28. public void setCaseDevice(String caseDevice) {
  29. this.caseDevice = caseDevice;
  30. }
  31. }

4.新建一个分页实体类,以便后期数据做分页


     
     
  1. package model;
  2. import java.util.List;
  3. public class TestCaseTotal {
  4. private int total;
  5. private List<TestCase> rows;
  6. public TestCaseTotal() {
  7. }
  8. public TestCaseTotal(int total, List<TestCase> rows) {
  9. this.total = total;
  10. this.rows = rows;
  11. }
  12. public int getTotal() {
  13. return total;
  14. }
  15. public void setTotal(int total) {
  16. this.total = total;
  17. }
  18. public List<TestCase> getRows() {
  19. return rows;
  20. }
  21. public void setRows(List<TestCase> rows) {
  22. this.rows = rows;
  23. }
  24. }
5.基础操作写到一个接口里

     
     
  1. package model;
  2. import java.util.List;
  3. public interface TestCaseDao {
  4. public List<TestCase> getCaseAll();
  5. public boolean addCase(TestCase testCase) ;
  6. public boolean deleteCase(int id) ;
  7. public boolean updateCase(TestCase testCase) ;
  8. }
6.实现Dao接口

     
     
  1. package model;
  2. import java.sql.PreparedStatement;
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7. public class TestCaseDaoImpl implements TestCaseDao {
  8. private PreparedStatement ptmt = null;
  9. private ResultSet rs = null;
  10. @Override
  11. public List<TestCase> getCaseAll() {
  12. // TODO Auto-generated method stub
  13. List<TestCase> list = new ArrayList<TestCase>();
  14. try {
  15. DBconn.init();
  16. ResultSet rs = DBconn.selectSql( "select * from testcase");
  17. while(rs.next()){
  18. TestCase testCase= new TestCase();
  19. testCase.setId(rs.getInt( "caseId"));
  20. testCase.setCaseName(rs.getString( "caseName"));
  21. testCase.setCaseDetail(rs.getString( "caseDetail"));
  22. testCase.setCaseDevice(rs.getString( "caseDevice"));
  23. list.add(testCase);
  24. }
  25. DBconn.closeConn();
  26. return list;
  27. } catch (SQLException e) {
  28. e.printStackTrace();
  29. }
  30. return null;
  31. }
  32. @Override
  33. public boolean addCase(TestCase testCase) {
  34. // TODO Auto-generated method stub
  35. boolean flag = false;
  36. DBconn.init();
  37. int i =DBconn.addUpdDel( "insert into user(caseName,caseDetail,caseDevice) " +
  38. "values('"+testCase.getCaseName()+ "','"+testCase.getCaseDetail()+ "','"+testCase.getCaseDevice()+ "')");
  39. if(i> 0){
  40. flag = true;
  41. }
  42. DBconn.closeConn();
  43. return flag;
  44. }
  45. @Override
  46. public boolean deleteCase(int id) {
  47. // TODO Auto-generated method stub
  48. boolean flag = false;
  49. DBconn.init();
  50. String sql = "delete from testcase where caseId="+id;
  51. int i =DBconn.addUpdDel(sql);
  52. if(i> 0){
  53. flag = true;
  54. }
  55. DBconn.closeConn();
  56. return flag;
  57. }
  58. @Override
  59. public boolean updateCase(TestCase testCase) {
  60. // TODO Auto-generated method stub
  61. return false;
  62. }
  63. }
7.新建JsonServlet

     
     
  1. package model;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import com.google.gson.Gson;
  11. public class JsonServlet extends HttpServlet {
  12. private static final long serialVersionUID = 1L;
  13. @Override
  14. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  15. TestCaseDaoImpl testCaseDaoImpl= new TestCaseDaoImpl();
  16. List<TestCase> list=testCaseDaoImpl.getCaseAll();
  17. List<TestCase> list1 = new ArrayList<>();
  18. int size =list.size();
  19. TestCase testCase;
  20. for( int i= 0;i<size;i++){
  21. testCase= new TestCase();
  22. testCase.setId(list.get(i).getId());
  23. testCase.setCaseName(list.get(i).getCaseName());
  24. testCase.setCaseDetail(list.get(i).getCaseDetail());
  25. list1.add(testCase);
  26. }
  27. String page = req.getParameter( "page");
  28. // 将数据添加到数组
  29. List<TestCase> caselist = new ArrayList<TestCase>();
  30. //以下代码做分页,写的不好,不喜勿喷
  31. if (page == null || page.equals( "0")) {
  32. if(list1.size()> 9){
  33. for( int i= 0;i< 10;i++){
  34. caselist.add(list1.get(i));
  35. }
  36. }
  37. else{
  38. for( int i= 0;i<list1.size();i++){
  39. caselist.add(list1.get(i));
  40. }
  41. }
  42. }
  43. else {
  44. int caseSize=list1.size();
  45. int page1 =caseSize/ 10;
  46. int pageNum=Integer.parseInt(page);
  47. //String parm=Integer.toString(a);
  48. if(pageNum<page1){
  49. for( int i= 10*pageNum;i< 10*pageNum+ 10;i++){
  50. caselist.add(list1.get(i));
  51. }
  52. }
  53. else{
  54. for( int i= 10*pageNum;i<list1.size();i++){
  55. caselist.add(list1.get(i));
  56. }
  57. }
  58. }
  59. TestCaseTotal nt = new TestCaseTotal(caselist.size(), caselist);
  60. // 调用GSON jar工具包封装好的toJson方法,可直接生成JSON字符串
  61. Gson gson = new Gson();
  62. String json = gson.toJson(nt);
  63. // 输出到界面
  64. System.out.println(json);
  65. resp.setContentType( "text/plain");
  66. resp.setCharacterEncoding( "gb2312");
  67. PrintWriter out = new PrintWriter(resp.getOutputStream());
  68. out.print(json);
  69. out.flush();
  70. }
  71. @Override
  72. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  73. this.doGet(req, resp);
  74. }
  75. }
8.新建index.jsp

     
     
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  7. <html>
  8. <head>
  9. <base href="<%=basePath%>">
  10. <title>Test Json1 </title>
  11. <meta http-equiv="Content-Type" content="text/html"; charset=UTF-8>
  12. <meta http-equiv="pragma" content="no-cache">
  13. <meta http-equiv="cache-control" content="no-cache">
  14. <meta http-equiv="expires" content="0">
  15. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  16. <meta http-equiv="description" content="This is my page">
  17. </head>
  18. <body >
  19. <form action="getJson" method="get">
  20. <input type="submit" value="点击获取测试用例数据"/>
  21. </form>
  22. </body>
  23. </html>
9.修改web.xml文件如下

     
     
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  3. <display-name>JsonTest </display-name>
  4. <welcome-file-list>
  5. <welcome-file>index.jsp </welcome-file>
  6. </welcome-file-list>
  7. <servlet>
  8. <servlet-name>JsonServlet </servlet-name>
  9. <servlet-class>model.JsonServlet </servlet-class>
  10. </servlet>
  11. <servlet-mapping>
  12. <servlet-name>JsonServlet </servlet-name>
  13. <url-pattern>/getJson </url-pattern>
  14. </servlet-mapping>
  15. </web-app>

10.右击项目名-->选择Run as-->选择Run on Server

11.运行成功后如下:


每页只展示10条数据,若需要查看第二页数据传入参数page =1即可





				<script>
					(function(){
						function setArticleH(btnReadmore,posi){
							var winH = $(window).height();
							var articleBox = $("div.article_content");
							var artH = articleBox.height();
							if(artH > winH*posi){
								articleBox.css({
									'height':winH*posi+'px',
									'overflow':'hidden'
								})
								btnReadmore.click(function(){
									if(typeof window.localStorage === "object" && typeof window.csdn.anonymousUserLimit === "object"){
										if(!window.csdn.anonymousUserLimit.judgment()){
											window.csdn.anonymousUserLimit.Jumplogin();
											return false;
										}else if(!currentUserName){
											window.csdn.anonymousUserLimit.updata();
										}
									}
									
									articleBox.removeAttr("style");
									$(this).parent().remove();
								})
							}else{
								btnReadmore.parent().remove();
							}
						}
						var btnReadmore = $("#btn-readmore");
						if(btnReadmore.length>0){
							if(currentUserName){
								setArticleH(btnReadmore,3);
							}else{
								setArticleH(btnReadmore,1.2);
							}
						}
					})()
				</script>
				</article>

最近在测试中发现mysql数据库保存测试用例,测试结果是一种不错的选择,为了后期方便在客户端展示测试,便写了个接口。此次接口开发不使用任何框架,需下载gson.jar,mysql-connector.jar,servlet-api.jar,以下为接口的开发思路

1.创建数据表,我这边使用的是mysql数据库


  
  
  1. /*
  2. SQLyog 企业版 - MySQL GUI v8.14
  3. MySQL - 5.5.49 : Database - test
  4. *********************************************************************
  5. */
  6. /*!40101 SET NAMES utf8 */;
  7. /*!40101 SET SQL_MODE=''*/;
  8. /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
  9. /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
  10. /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
  11. /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
  12. CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET utf8 */;
  13. USE `test`;
  14. /*Table structure for table `testcase` */
  15. DROP TABLE IF EXISTS `testcase`;
  16. CREATE TABLE `testcase` (
  17. `caseId` INT( 11) NOT NULL AUTO_INCREMENT,
  18. `caseName` VARCHAR( 255) CHARACTER SET latin1 NOT NULL,
  19. `caseDetail` VARCHAR( 255) CHARACTER SET latin1 NOT NULL,
  20. `caseDevice` VARCHAR( 255) CHARACTER SET latin1 NOT NULL,
  21. PRIMARY KEY ( `caseId`)
  22. ) ENGINE= INNODB AUTO_INCREMENT= 48 DEFAULT CHARSET=utf8 CHECKSUM= 1 DELAY_KEY_WRITE= 1 ROW_FORMAT=DYNAMIC;
  23. /*Data for the table `testcase` */
  24. INSERT INTO `testcase`( `caseId`, `caseName`, `caseDetail`, `caseDevice`) VALUES ( 2, '2', '233', '444'),( 16, 'dsf', 'sf', 'sfd'),( 17, 'safd', 'sadf', 'asf'),( 18, 'saf', 'ggd', 'sdf'),( 19, 'dsaf', 'sdf', 'sdf'),( 20, 'sfd', 'sfd', '(NfdsULL)'),( 21, 'sdf', 'v', 'v'),( 22, 'f', 'f', 'e'),( 23, 'w', 'r3', 'rt'),( 24, 'er', 'rtrt', 'sfad'),( 25, 'sf', 'sdf', 'fds'),( 26, 'sa', 's', 's'),( 27, 'e', 'e', 'e'),( 28, 'sa', 'rt', 'rt'),( 29, 'we', 'ew', 'qw'),( 30, 'we', '(NULfL)', 'dsf'),( 31, 'fd', 's', 'g'),( 32, 's', 'g', 'f'),( 33, 'sf', 'f', 'f'),( 34, 'c', 'c', 'c'),( 35, 'e', 'e', 'e'),( 36, 'd', 'd', 'q'),( 37, 'q', 'e', 'r'),( 38, 'f', 'r', 'g'),( 39, 'g', '(NULgL)', 'g'),( 40, 'gg', 'g', 'd'),( 41, 'f', 'f', 'f'),( 42, 'f', 'f', 'f'),( 43, 'f', 'f', 'f'),( 44, 'v', 'f', 'g'),( 45, 'e', 'e', 'r'),( 46, '4', 'rt', 'fg'),( 47, 'dsf', 'ds', 'sdf');
  25. /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
  26. /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
  27. /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
  28. /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
2.编写数据库工具类

  
  
  1. package model;
  2. import java.sql.*;
  3. public class DBconn {
  4. static String url = "jdbc:mysql://localhost:3306/test?useunicuee=true& characterEncoding=utf8";
  5. static String username = "root";
  6. static String password = "123456";
  7. static Connection conn = null;
  8. static ResultSet rs = null;
  9. static PreparedStatement ps = null;
  10. public static void init(){
  11. try {
  12. Class.forName( "com.mysql.jdbc.Driver");
  13. conn = DriverManager.getConnection(url,username,password);
  14. } catch (Exception e) {
  15. System.out.println( "init [SQL驱动程序初始化失败!]");
  16. e.printStackTrace();
  17. }
  18. }
  19. public static int addUpdDel(String sql){
  20. int i = 0;
  21. try {
  22. PreparedStatement ps = conn.prepareStatement(sql);
  23. i = ps.executeUpdate();
  24. } catch (SQLException e) {
  25. System.out.println( "sql数据库增删改异常");
  26. e.printStackTrace();
  27. }
  28. return i;
  29. }
  30. public static ResultSet selectSql(String sql){
  31. try {
  32. ps = conn.prepareStatement(sql);
  33. rs = ps.executeQuery(sql);
  34. } catch (SQLException e) {
  35. System.out.println( "sql数据库查询异常");
  36. e.printStackTrace();
  37. }
  38. return rs;
  39. }
  40. public static void closeConn(){
  41. try {
  42. conn.close();
  43. } catch (SQLException e) {
  44. System.out.println( "sql数据库关闭异常");
  45. e.printStackTrace();
  46. }
  47. }
  48. }
3.编写实体类

  
  
  1. package model;
  2. public class TestCase {
  3. private int id;
  4. private String caseName;
  5. private String caseDetail;
  6. private String caseDevice;
  7. public int getId() {
  8. return id;
  9. }
  10. public void setId(int id) {
  11. this.id = id;
  12. }
  13. public String getCaseName() {
  14. return caseName;
  15. }
  16. public void setCaseName(String caseName) {
  17. this.caseName = caseName;
  18. }
  19. public String getCaseDetail() {
  20. return caseDetail;
  21. }
  22. public void setCaseDetail(String caseDetail) {
  23. this.caseDetail = caseDetail;
  24. }
  25. public String getCaseDevice() {
  26. return caseDevice;
  27. }
  28. public void setCaseDevice(String caseDevice) {
  29. this.caseDevice = caseDevice;
  30. }
  31. }

4.新建一个分页实体类,以便后期数据做分页


  
  
  1. package model;
  2. import java.util.List;
  3. public class TestCaseTotal {
  4. private int total;
  5. private List<TestCase> rows;
  6. public TestCaseTotal() {
  7. }
  8. public TestCaseTotal(int total, List<TestCase> rows) {
  9. this.total = total;
  10. this.rows = rows;
  11. }
  12. public int getTotal() {
  13. return total;
  14. }
  15. public void setTotal(int total) {
  16. this.total = total;
  17. }
  18. public List<TestCase> getRows() {
  19. return rows;
  20. }
  21. public void setRows(List<TestCase> rows) {
  22. this.rows = rows;
  23. }
  24. }
5.基础操作写到一个接口里

  
  
  1. package model;
  2. import java.util.List;
  3. public interface TestCaseDao {
  4. public List<TestCase> getCaseAll();
  5. public boolean addCase(TestCase testCase) ;
  6. public boolean deleteCase(int id) ;
  7. public boolean updateCase(TestCase testCase) ;
  8. }
6.实现Dao接口

  
  
  1. package model;
  2. import java.sql.PreparedStatement;
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7. public class TestCaseDaoImpl implements TestCaseDao {
  8. private PreparedStatement ptmt = null;
  9. private ResultSet rs = null;
  10. @Override
  11. public List<TestCase> getCaseAll() {
  12. // TODO Auto-generated method stub
  13. List<TestCase> list = new ArrayList<TestCase>();
  14. try {
  15. DBconn.init();
  16. ResultSet rs = DBconn.selectSql( "select * from testcase");
  17. while(rs.next()){
  18. TestCase testCase= new TestCase();
  19. testCase.setId(rs.getInt( "caseId"));
  20. testCase.setCaseName(rs.getString( "caseName"));
  21. testCase.setCaseDetail(rs.getString( "caseDetail"));
  22. testCase.setCaseDevice(rs.getString( "caseDevice"));
  23. list.add(testCase);
  24. }
  25. DBconn.closeConn();
  26. return list;
  27. } catch (SQLException e) {
  28. e.printStackTrace();
  29. }
  30. return null;
  31. }
  32. @Override
  33. public boolean addCase(TestCase testCase) {
  34. // TODO Auto-generated method stub
  35. boolean flag = false;
  36. DBconn.init();
  37. int i =DBconn.addUpdDel( "insert into user(caseName,caseDetail,caseDevice) " +
  38. "values('"+testCase.getCaseName()+ "','"+testCase.getCaseDetail()+ "','"+testCase.getCaseDevice()+ "')");
  39. if(i> 0){
  40. flag = true;
  41. }
  42. DBconn.closeConn();
  43. return flag;
  44. }
  45. @Override
  46. public boolean deleteCase(int id) {
  47. // TODO Auto-generated method stub
  48. boolean flag = false;
  49. DBconn.init();
  50. String sql = "delete from testcase where caseId="+id;
  51. int i =DBconn.addUpdDel(sql);
  52. if(i> 0){
  53. flag = true;
  54. }
  55. DBconn.closeConn();
  56. return flag;
  57. }
  58. @Override
  59. public boolean updateCase(TestCase testCase) {
  60. // TODO Auto-generated method stub
  61. return false;
  62. }
  63. }
7.新建JsonServlet

  
  
  1. package model;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import com.google.gson.Gson;
  11. public class JsonServlet extends HttpServlet {
  12. private static final long serialVersionUID = 1L;
  13. @Override
  14. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  15. TestCaseDaoImpl testCaseDaoImpl= new TestCaseDaoImpl();
  16. List<TestCase> list=testCaseDaoImpl.getCaseAll();
  17. List<TestCase> list1 = new ArrayList<>();
  18. int size =list.size();
  19. TestCase testCase;
  20. for( int i= 0;i<size;i++){
  21. testCase= new TestCase();
  22. testCase.setId(list.get(i).getId());
  23. testCase.setCaseName(list.get(i).getCaseName());
  24. testCase.setCaseDetail(list.get(i).getCaseDetail());
  25. list1.add(testCase);
  26. }
  27. String page = req.getParameter( "page");
  28. // 将数据添加到数组
  29. List<TestCase> caselist = new ArrayList<TestCase>();
  30. //以下代码做分页,写的不好,不喜勿喷
  31. if (page == null || page.equals( "0")) {
  32. if(list1.size()> 9){
  33. for( int i= 0;i< 10;i++){
  34. caselist.add(list1.get(i));
  35. }
  36. }
  37. else{
  38. for( int i= 0;i<list1.size();i++){
  39. caselist.add(list1.get(i));
  40. }
  41. }
  42. }
  43. else {
  44. int caseSize=list1.size();
  45. int page1 =caseSize/ 10;
  46. int pageNum=Integer.parseInt(page);
  47. //String parm=Integer.toString(a);
  48. if(pageNum<page1){
  49. for( int i= 10*pageNum;i< 10*pageNum+ 10;i++){
  50. caselist.add(list1.get(i));
  51. }
  52. }
  53. else{
  54. for( int i= 10*pageNum;i<list1.size();i++){
  55. caselist.add(list1.get(i));
  56. }
  57. }
  58. }
  59. TestCaseTotal nt = new TestCaseTotal(caselist.size(), caselist);
  60. // 调用GSON jar工具包封装好的toJson方法,可直接生成JSON字符串
  61. Gson gson = new Gson();
  62. String json = gson.toJson(nt);
  63. // 输出到界面
  64. System.out.println(json);
  65. resp.setContentType( "text/plain");
  66. resp.setCharacterEncoding( "gb2312");
  67. PrintWriter out = new PrintWriter(resp.getOutputStream());
  68. out.print(json);
  69. out.flush();
  70. }
  71. @Override
  72. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  73. this.doGet(req, resp);
  74. }
  75. }
8.新建index.jsp

  
  
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  7. <html>
  8. <head>
  9. <base href="<%=basePath%>">
  10. <title>Test Json1 </title>
  11. <meta http-equiv="Content-Type" content="text/html"; charset=UTF-8>
  12. <meta http-equiv="pragma" content="no-cache">
  13. <meta http-equiv="cache-control" content="no-cache">
  14. <meta http-equiv="expires" content="0">
  15. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  16. <meta http-equiv="description" content="This is my page">
  17. </head>
  18. <body >
  19. <form action="getJson" method="get">
  20. <input type="submit" value="点击获取测试用例数据"/>
  21. </form>
  22. </body>
  23. </html>
9.修改web.xml文件如下

  
  
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  3. <display-name>JsonTest </display-name>
  4. <welcome-file-list>
  5. <welcome-file>index.jsp </welcome-file>
  6. </welcome-file-list>
  7. <servlet>
  8. <servlet-name>JsonServlet </servlet-name>
  9. <servlet-class>model.JsonServlet </servlet-class>
  10. </servlet>
  11. <servlet-mapping>
  12. <servlet-name>JsonServlet </servlet-name>
  13. <url-pattern>/getJson </url-pattern>
  14. </servlet-mapping>
  15. </web-app>

10.右击项目名-->选择Run as-->选择Run on Server

11.运行成功后如下:


每页只展示10条数据,若需要查看第二页数据传入参数page =1即可





猜你喜欢

转载自blog.csdn.net/HH1778981113/article/details/84865572