Skip to content

Commit fe02a3e

Browse files
committed
modify valid
1 parent 303a16f commit fe02a3e

4 files changed

Lines changed: 85 additions & 19 deletions

File tree

src/main/java/org/ma5d/javamock/controller/MockController.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package org.ma5d.javamock.controller;
22

33
import jakarta.annotation.Resource;
4+
import jakarta.servlet.http.HttpServletRequest;
45
import org.ma5d.javamock.dto.SaveParam;
56
import org.ma5d.javamock.service.JavaMockServiceImpl;
7+
import org.springframework.beans.factory.annotation.Autowired;
68
import org.springframework.stereotype.Controller;
79
import org.springframework.ui.Model;
810
import org.springframework.web.bind.annotation.*;
@@ -14,8 +16,15 @@
1416
public class MockController {
1517
@Resource
1618
JavaMockServiceImpl javaMockService;
19+
@Autowired
20+
private JavaMockServiceImpl javaMockServiceImpl;
1721

1822
@GetMapping("/")
23+
public String index() {
24+
return "redirect:/index";
25+
}
26+
27+
@GetMapping("/index")
1928
public String index(Model model) throws SQLException {
2029
List<SaveParam> saveParams = javaMockService.queryAllLines();
2130
model.addAttribute("saveParams", saveParams);
@@ -35,4 +44,22 @@ public String detail(@PathVariable String timeStamp, Model model) throws SQLExce
3544
return "detail";
3645
}
3746

47+
@ResponseBody
48+
@GetMapping("/p/**")
49+
public String proxyGet(HttpServletRequest request) throws SQLException {
50+
String requestURI = request.getRequestURI();
51+
String pathWithParam = "/" + requestURI.split("/p/")[1];
52+
SaveParam saveParam = javaMockServiceImpl.getSaveParamByPathWithParam(pathWithParam);
53+
return saveParam.getResponse();
54+
}
55+
56+
@ResponseBody
57+
@PostMapping("/p/**")
58+
public String proxyPost(HttpServletRequest request) throws SQLException {
59+
String requestURI = request.getRequestURI();
60+
String pathWithParam = "/" + requestURI.split("/p/")[1];
61+
SaveParam saveParam = javaMockServiceImpl.getSaveParamByPathWithParam(pathWithParam);
62+
return saveParam.getResponse();
63+
}
64+
3865
}
Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,24 @@
11
package org.ma5d.javamock.dto;
22

33
import lombok.Data;
4+
import lombok.NoArgsConstructor;
45

56
import java.io.Serializable;
7+
import java.sql.ResultSet;
8+
import java.sql.SQLException;
69

710
@Data
11+
@NoArgsConstructor
812
public class SaveParam implements Serializable {
913
private String timeStamp;
1014
private String domainCom;
1115
private String pathWithParam;
1216
private String response;
1317

14-
public String[] toStringArray(){
15-
return new String[]{timeStamp, domainCom, pathWithParam, response};
18+
public SaveParam(ResultSet resultSet) throws SQLException {
19+
this.timeStamp = resultSet.getString("time_stamp");
20+
this.domainCom = resultSet.getString("adomain");
21+
this.pathWithParam = resultSet.getString("path_param");
22+
this.response = resultSet.getString("response");
1623
}
1724
}

src/main/java/org/ma5d/javamock/service/JavaMockServiceImpl.java

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public boolean saveConfig(SaveParam saveParam) throws SQLException {
2222
Connection connection = dataSource.getConnection();
2323
// language=SQLite
2424
String query = "insert into java_mock(time_stamp, adomain, path_param, response) values(?, ?, ?, ?)";
25-
PreparedStatement stmt = connection.prepareStatement(query, saveParam.toStringArray());
25+
PreparedStatement stmt = connection.prepareStatement(query);
2626
stmt.setString(1, saveParam.getTimeStamp());
2727
stmt.setString(2, saveParam.getDomainCom());
2828
stmt.setString(3, saveParam.getPathWithParam());
@@ -37,11 +37,7 @@ public List<SaveParam> queryAllLines() throws SQLException {
3737
ResultSet resultSet = connection.prepareStatement(query).executeQuery();
3838
List<SaveParam> saveParams = new ArrayList<>();
3939
while (resultSet.next()) {
40-
SaveParam saveParam = new SaveParam();
41-
saveParam.setTimeStamp(resultSet.getString("time_stamp"));
42-
saveParam.setDomainCom(resultSet.getString("adomain"));
43-
saveParam.setPathWithParam(resultSet.getString("path_param"));
44-
saveParam.setResponse(resultSet.getString("response"));
40+
SaveParam saveParam = new SaveParam(resultSet);
4541
saveParams.add(saveParam);
4642
}
4743
connection.close();
@@ -52,13 +48,27 @@ public SaveParam queryLine(String timeStamp) throws SQLException {
5248
Connection connection = dataSource.getConnection();
5349
// language=SQLite
5450
String query = "select time_stamp, adomain, path_param, response from java_mock where time_stamp = ?";
55-
ResultSet resultSet = connection.prepareStatement(query, new String[]{timeStamp}).executeQuery();
51+
PreparedStatement preparedStatement = connection.prepareStatement(query);
52+
preparedStatement.setString(1, timeStamp);
53+
ResultSet resultSet = preparedStatement.executeQuery();
5654
SaveParam saveParam = new SaveParam();
5755
while (resultSet.next()) {
58-
saveParam.setTimeStamp(resultSet.getString("time_stamp"));
59-
saveParam.setDomainCom(resultSet.getString("adomain"));
60-
saveParam.setPathWithParam(resultSet.getString("path_param"));
61-
saveParam.setResponse(resultSet.getString("response"));
56+
saveParam = new SaveParam(resultSet);
57+
}
58+
connection.close();
59+
return saveParam;
60+
}
61+
62+
public SaveParam getSaveParamByPathWithParam(String pathWithParam) throws SQLException {
63+
Connection connection = dataSource.getConnection();
64+
// language=SQLite
65+
String query = "select time_stamp, adomain, path_param, response from java_mock where path_param = ?";
66+
PreparedStatement preparedStatement = connection.prepareStatement(query);
67+
preparedStatement.setString(1, pathWithParam);
68+
ResultSet resultSet = preparedStatement.executeQuery();
69+
SaveParam saveParam = new SaveParam();
70+
while (resultSet.next()) {
71+
saveParam = new SaveParam(resultSet);
6272
}
6373
connection.close();
6474
return saveParam;

src/main/resources/templates/index.html

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,16 @@
22
<html xmlns:th="http://www.thymeleaf.org" lang="zh">
33
<head>
44
<title>Form Demo</title>
5+
<style>
6+
table {
7+
border: 1px solid black;
8+
border-collapse: collapse;
9+
}
10+
td, th {
11+
border: 1px solid black;
12+
padding: 8px; /* 可选:为单元格增加内边距 */
13+
}
14+
</style>
515
</head>
616
<body>
717
<table>
@@ -11,22 +21,34 @@
1121
<th>域名</th>
1222
<th>路径及参数</th>
1323
<th>返回数据</th>
14-
<th>操作</th>
1524
</tr>
1625
</thead>
1726
<tbody>
1827
<tr th:each="saveParam : ${saveParams}">
19-
<td th:text="${saveParam.timeStamp}"></td>
20-
<td th:text="${saveParam.domainCom}"></td>
21-
<td th:text="${saveParam.pathWithParam}"></td>
22-
<td th:text="${saveParam.response}"></td>
28+
2329
<td>
2430
<a th:href="@{http://{domainCom}/detail/{timestamp}(domainCom=${saveParam.domainCom}, timestamp=${saveParam.timeStamp})}"
25-
th:text="'访问 ' + ${saveParam.timeStamp}"></a>
31+
th:text="${saveParam.timeStamp}"></a>
2632
</td>
33+
34+
<td th:text="${saveParam.domainCom}"></td>
35+
36+
<td>
37+
<a th:href="@{http://{domainCom}/p{pathWithParam}(domainCom=${saveParam.domainCom}, pathWithParam=${saveParam.pathWithParam})}"
38+
th:text="${saveParam.pathWithParam}">
39+
</a>
40+
</td>
41+
42+
<td th:text="${#strings.length(saveParam.response) > 100 ? saveParam.response.substring(0, 100) + '...' : saveParam.response}"></td>
43+
2744
</tr>
2845
</tbody>
2946
</table>
47+
<a href="/new" style="text-decoration: none;">
48+
<div style="display: inline-block; padding: 8px 16px; background-color: #4CAF50; color: white; border: none; border-radius: 4px; cursor: pointer;">
49+
新增
50+
</div>
51+
</a>
3052

3153
</body>
3254
</html>

0 commit comments

Comments
 (0)