Skip to content

Commit 9ab9888

Browse files
committed
Java:Boot 系列和 JFinal 的 Demo 都为 Parser 传入 requestURL 方便调试
1 parent 8afc7cd commit 9ab9888

File tree

3 files changed

+36
-25
lines changed

3 files changed

+36
-25
lines changed

APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -100,9 +100,14 @@
100100
public class DemoController extends APIJSONController {
101101
private static final String TAG = "DemoController";
102102

103+
// 可以更方便地通过日志排查错误
104+
@Override
105+
public String getRequestURL() {
106+
return httpServletRequest.getRequestURL().toString();
107+
}
108+
103109
//通用接口,非事务型操作 和 简单事务型操作 都可通过这些接口自动化实现<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
104110

105-
106111
/**获取
107112
* @param request 只用String,避免encode后未decode
108113
* @param session
@@ -1102,9 +1107,9 @@ public void remove(String key) {
11021107
}
11031108

11041109
@Autowired
1105-
HttpServletRequest request;
1110+
HttpServletRequest httpServletRequest;
11061111
@Autowired
1107-
HttpServletResponse response;
1112+
HttpServletResponse httpServletResponse;
11081113

11091114
/**代理接口,解决前端(APIAuto等)跨域问题
11101115
* @param exceptHeaders 排除请求头,必须放在最前面,放后面可能被当成 $_delegate_url 的一部分
@@ -1152,7 +1157,7 @@ public String delegate(
11521157
body = obj.toJSONString();
11531158
}
11541159

1155-
Enumeration<String> names = request.getHeaderNames();
1160+
Enumeration<String> names = httpServletRequest.getHeaderNames();
11561161
HttpHeaders headers = null;
11571162
String name;
11581163
if (names != null) {
@@ -1171,16 +1176,16 @@ public String delegate(
11711176
if (name != null && exceptHeaderList.contains(name.toLowerCase()) == false) {
11721177
//APIAuto 是一定精准发送 Set-Cookie 名称过来的,预留其它命名可实现覆盖原 Cookie Header 等更多可能
11731178
if (SET_COOKIE.toLowerCase().equals(name.toLowerCase())) { //接收到时就已经被强制小写
1174-
setCookie = Arrays.asList(request.getHeader(name)); // JSON.parseArray(request.getHeader(name), String.class);
1179+
setCookie = Arrays.asList(httpServletRequest.getHeader(name)); // JSON.parseArray(request.getHeader(name), String.class);
11751180
}
11761181
else if (ADD_COOKIE.toLowerCase().equals(name.toLowerCase())) {
1177-
addCookie = Arrays.asList(request.getHeader(name));
1182+
addCookie = Arrays.asList(httpServletRequest.getHeader(name));
11781183
}
11791184
else if (APIJSON_DELEGATE_ID.toLowerCase().equals(name.toLowerCase())) {
1180-
apijsonDelegateId = Arrays.asList(request.getHeader(name));
1185+
apijsonDelegateId = Arrays.asList(httpServletRequest.getHeader(name));
11811186
}
11821187
else {
1183-
headers.add(name, request.getHeader(name));
1188+
headers.add(name, httpServletRequest.getHeader(name));
11841189
}
11851190
}
11861191
}
@@ -1215,7 +1220,7 @@ else if (APIJSON_DELEGATE_ID.toLowerCase().equals(name.toLowerCase())) {
12151220
}
12161221

12171222
//可能是 HTTP POST FORM,即便是 HTTP POST JSON,URL 的参数也要拼接,尽可能保持原样 if (method == HttpMethod.GET) {
1218-
Map<String, String[]> map = request.getParameterMap();
1223+
Map<String, String[]> map = httpServletRequest.getParameterMap();
12191224

12201225
if (map != null) {
12211226
map = new HashMap<>(map); //解决 throw exception: Unmodified Map
@@ -1259,7 +1264,7 @@ else if (APIJSON_DELEGATE_ID.toLowerCase().equals(name.toLowerCase())) {
12591264
}
12601265

12611266
SESSION_MAP.put(session.getId(), session);
1262-
response.setHeader(APIJSON_DELEGATE_ID, session.getId());
1267+
httpServletResponse.setHeader(APIJSON_DELEGATE_ID, session.getId());
12631268

12641269
return entity.getBody();
12651270
}

APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/boot/DemoController.java

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -100,9 +100,14 @@
100100
public class DemoController extends APIJSONController {
101101
private static final String TAG = "DemoController";
102102

103+
// // 取消注释可以更方便地通过日志排查错误
104+
// @Override
105+
// public String getRequestURL() {
106+
// return httpServletRequest.getRequestURL().toString();
107+
// }
108+
103109
//通用接口,非事务型操作 和 简单事务型操作 都可通过这些接口自动化实现<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
104110

105-
106111
/**获取
107112
* @param request 只用String,避免encode后未decode
108113
* @param session
@@ -1090,7 +1095,7 @@ public void remove(String key) {
10901095
public static final SessionMap SESSION_MAP;
10911096

10921097
public static final String ADD_COOKIE = "Add-Cookie";
1093-
public static final String APIJSON_DELEGATE_ID = "APIJSON-DELEGATE-ID";
1098+
public static final String APIJSON_DELEGATE_ID = "Apijson-Delegate-Id"; // 有些 Web 框架会强制把全大写改为全小写或大驼峰
10941099
public static final List<String> EXCEPT_HEADER_LIST;
10951100
static {
10961101
SESSION_MAP = new SessionMap();
@@ -1102,9 +1107,9 @@ public void remove(String key) {
11021107
}
11031108

11041109
@Autowired
1105-
HttpServletRequest request;
1110+
HttpServletRequest httpServletRequest;
11061111
@Autowired
1107-
HttpServletResponse response;
1112+
HttpServletResponse httpServletResponse;
11081113

11091114
/**代理接口,解决前端(APIAuto等)跨域问题
11101115
* @param exceptHeaders 排除请求头,必须放在最前面,放后面可能被当成 $_delegate_url 的一部分
@@ -1152,7 +1157,7 @@ public String delegate(
11521157
body = obj.toJSONString();
11531158
}
11541159

1155-
Enumeration<String> names = request.getHeaderNames();
1160+
Enumeration<String> names = httpServletRequest.getHeaderNames();
11561161
HttpHeaders headers = null;
11571162
String name;
11581163
if (names != null) {
@@ -1171,16 +1176,16 @@ public String delegate(
11711176
if (name != null && exceptHeaderList.contains(name.toLowerCase()) == false) {
11721177
//APIAuto 是一定精准发送 Set-Cookie 名称过来的,预留其它命名可实现覆盖原 Cookie Header 等更多可能
11731178
if (SET_COOKIE.toLowerCase().equals(name.toLowerCase())) { //接收到时就已经被强制小写
1174-
setCookie = Arrays.asList(request.getHeader(name)); // JSON.parseArray(request.getHeader(name), String.class);
1179+
setCookie = Arrays.asList(httpServletRequest.getHeader(name)); // JSON.parseArray(request.getHeader(name), String.class);
11751180
}
11761181
else if (ADD_COOKIE.toLowerCase().equals(name.toLowerCase())) {
1177-
addCookie = Arrays.asList(request.getHeader(name));
1182+
addCookie = Arrays.asList(httpServletRequest.getHeader(name));
11781183
}
11791184
else if (APIJSON_DELEGATE_ID.toLowerCase().equals(name.toLowerCase())) {
1180-
apijsonDelegateId = Arrays.asList(request.getHeader(name));
1185+
apijsonDelegateId = Arrays.asList(httpServletRequest.getHeader(name));
11811186
}
11821187
else {
1183-
headers.add(name, request.getHeader(name));
1188+
headers.add(name, httpServletRequest.getHeader(name));
11841189
}
11851190
}
11861191
}
@@ -1191,7 +1196,7 @@ else if (APIJSON_DELEGATE_ID.toLowerCase().equals(name.toLowerCase())) {
11911196
if (sessionId != null) {
11921197
HttpSession s = SESSION_MAP.get(sessionId);
11931198
if (s != null) {
1194-
s = session;
1199+
session = s;
11951200
}
11961201
}
11971202

@@ -1215,7 +1220,7 @@ else if (APIJSON_DELEGATE_ID.toLowerCase().equals(name.toLowerCase())) {
12151220
}
12161221

12171222
//可能是 HTTP POST FORM,即便是 HTTP POST JSON,URL 的参数也要拼接,尽可能保持原样 if (method == HttpMethod.GET) {
1218-
Map<String, String[]> map = request.getParameterMap();
1223+
Map<String, String[]> map = httpServletRequest.getParameterMap();
12191224

12201225
if (map != null) {
12211226
map = new HashMap<>(map); //解决 throw exception: Unmodified Map
@@ -1259,7 +1264,7 @@ else if (APIJSON_DELEGATE_ID.toLowerCase().equals(name.toLowerCase())) {
12591264
}
12601265

12611266
SESSION_MAP.put(session.getId(), session);
1262-
response.setHeader(APIJSON_DELEGATE_ID, session.getId());
1267+
httpServletResponse.setHeader(APIJSON_DELEGATE_ID, session.getId());
12631268

12641269
return entity.getBody();
12651270
}

APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/jfinal/DemoController.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,7 @@
3333
import static apijson.framework.APIJSONConstant.VISITOR_;
3434
import static apijson.framework.APIJSONConstant.VISITOR_ID;
3535

36-
import java.io.UnsupportedEncodingException;
37-
import java.net.URL;
3836
import java.net.URLDecoder;
39-
import java.nio.charset.Charset;
4037
import java.rmi.ServerException;
4138
import java.util.Map;
4239
import java.util.Map.Entry;
@@ -93,6 +90,10 @@ public Parser<Long> newParser(HttpSession session, RequestMethod method) {
9390
if (parser instanceof APIJSONParser) {
9491
((APIJSONParser) parser).setSession(session);
9592
}
93+
// // 取消注释可以更方便地通过日志排查错误
94+
// if (parser instanceof AbstractParser) {
95+
// ((AbstractParser<?>) parser).setRequestURL(getRequest().getRequestURL().toString());
96+
// }
9697
return parser;
9798
}
9899

0 commit comments

Comments
 (0)