apply-clients 3.5.5-9 → 3.5.5-91

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/build/dev-server.js +7 -6
  2. package/package.json +6 -4
  3. package/src/App.vue +25 -25
  4. package/src/components/QXClient.js +333 -0
  5. package/src/components/SignTools.js +65 -0
  6. package/src/components/android/AppCheckTakePic.vue +168 -168
  7. package/src/components/android/Process/AppChargeList.vue +8 -0
  8. package/src/components/android/Process/AppExplorationUser.vue +1 -2
  9. package/src/components/android/Process/AppServiceControl.vue +1755 -1755
  10. package/src/components/product/Function/Service/FunctionServiceControl.vue +4 -4
  11. package/src/components/product/Install/ContractCharge.vue +210 -210
  12. package/src/components/product/PcZhihuanManagement.vue +160 -160
  13. package/src/components/product/Print/BuildOrder/buildOrderList.vue +339 -339
  14. package/src/components/product/Process/Processes/contractModel.vue +49 -37
  15. package/src/components/product/Process/Processes/selectApply.vue +251 -251
  16. package/src/components/product/Process/Processes/selectBcakApply.vue +250 -250
  17. package/src/filiale/baiyin/android/ByAddMaterialScience.vue +2 -0
  18. package/src/filiale/fugou/android/AppAddMaterialScience.vue +444 -444
  19. package/src/filiale/fugou/android/AppAddReplacement.vue +512 -341
  20. package/src/filiale/fugou/android/AppChargeManagement.vue +739 -739
  21. package/src/filiale/fugou/android/AppDevicesManagement.vue +3 -1
  22. package/src/filiale/fugou/android/AppExplorationUser.vue +3 -3
  23. package/src/filiale/fugou/android/AppInstallationDetails.vue +2 -1
  24. package/src/filiale/fugou/android/AppServiceControl.vue +75 -17
  25. package/src/filiale/fugou/android/AppZhihuanManagement.vue +14 -2
  26. package/src/filiale/fugou/pc/AddReplacement.vue +511 -340
  27. package/src/filiale/fugou/pc/ApplyChargeList.vue +487 -480
  28. package/src/filiale/fugou/pc/Applybatchdispatch.vue +754 -0
  29. package/src/filiale/fugou/pc/ExplorationSelect.vue +3 -4
  30. package/src/filiale/fugou/pc/InstallationDetails.vue +1 -1
  31. package/src/filiale/fugou/pc/ServiceControl.vue +47 -20
  32. package/src/filiale/fugou/pc/StopApplyList.vue +291 -0
  33. package/src/filiale/fugou/pc/addMaterialScience.vue +481 -481
  34. package/src/filiale/fugou/pc/addressAndUserinfoManagement.vue +216 -216
  35. package/src/filiale/fugou/pc/chargeReport.vue +215 -143
  36. package/src/filiale/fugou/pc/devicesManagement.vue +1 -0
  37. package/src/filiale/fugou/pc.js +3 -1
  38. package/src/filiale/gongyi/pc/addressAndUserinfoManagement.vue +187 -0
  39. package/src/filiale/gongyi/pc.js +25 -24
  40. package/src/filiale/hongda/pc/addMaterialScience.vue +723 -723
  41. package/src/filiale/jinhuang/android/AppAddMaterialScience.vue +635 -0
  42. package/src/filiale/jinhuang/android.js +6 -0
  43. package/src/filiale/jinhuang/pc/ContractList.vue +220 -0
  44. package/src/filiale/jinhuang/pc/ExplorationSelect.vue +523 -0
  45. package/src/filiale/jinhuang/pc/ServiceControl.vue +7 -0
  46. package/src/filiale/jinhuang/pc/addMaterialScience.vue +638 -0
  47. package/src/filiale/jinhuang/pc/addressAndUserinfoManagement.vue +41 -1
  48. package/src/filiale/jinhuang/pc.js +3 -0
  49. package/src/filiale/qianneng/android/AppServiceView.vue +13 -13
  50. package/src/filiale/qianneng/pc/ApplyMaterialDetailed.vue +1 -1
  51. package/src/filiale/qianneng/pc/Applybatchdispatch.vue +786 -769
  52. package/src/filiale/qianneng/pc/Applydetail.vue +1 -1
  53. package/src/filiale/qianneng/pc/FunctionServiceControl.vue +10 -3
  54. package/src/filiale/qianneng/pc/ServiceControl.vue +1387 -1382
  55. package/src/filiale/ruihua/pc/ServiceControl.vue +2 -1
  56. package/src/filiale/yangchunboneng/android/AppChargeManagement.vue +527 -520
  57. package/src/filiale/yangchunboneng/android/AppContractCharge.vue +210 -210
  58. package/src/filiale/yangchunboneng/android/AppExplorationUser.vue +72 -5
  59. package/src/filiale/yangchunboneng/android/AppInstallationMaterial.vue +1116 -1087
  60. package/src/filiale/yangchunboneng/android/AppProcessSupervisory.vue +331 -0
  61. package/src/filiale/yangchunboneng/android/AppServiceControl.vue +219 -43
  62. package/src/filiale/yangchunboneng/android/MaterIialOne.vue +21 -1
  63. package/src/filiale/yangchunboneng/android.js +21 -20
  64. package/src/filiale/yangchunboneng/pc/ApplyChargeList.vue +32 -4
  65. package/src/filiale/yangchunboneng/pc/ApplyUpload.vue +392 -392
  66. package/src/filiale/yangchunboneng/pc/ExplorationSelect.vue +612 -547
  67. package/src/filiale/yangchunboneng/pc/ServiceControl.vue +4 -2
  68. package/src/filiale/yangchunboneng/pc/StopApplyList.vue +294 -0
  69. package/src/filiale/yangchunboneng/pc/SupervisoryControl.vue +141 -0
  70. package/src/filiale/yangchunboneng/pc/SupervisoryList.vue +54 -42
  71. package/src/filiale/yangchunboneng/pc/SupervisoryListNew.vue +5 -1
  72. package/src/filiale/yangchunboneng/pc/SupervisoryServiceView.vue +1 -1
  73. package/src/filiale/yangchunboneng/pc/buildOrderList.vue +421 -0
  74. package/src/filiale/yangchunboneng/pc/chargeManagement.vue +5 -1
  75. package/src/filiale/yangchunboneng/pc/constructionInfo.vue +84 -0
  76. package/src/filiale/yangchunboneng/pc/printBuildOrder.vue +175 -0
  77. package/src/filiale/yangchunboneng/pc.js +29 -24
  78. package/src/main.js +4 -3
  79. package/src/test/SessionTestServlet.java +0 -69
  80. package/webapp/WEB-INF/web.xml +0 -52
  81. package/webapp/session-test.jsp +0 -59
@@ -0,0 +1,175 @@
1
+ <template>
2
+ <style id="printBuildOrderStyle">
3
+ #printBuildOrder td{
4
+ height: 30px;
5
+ text-align: left;
6
+ padding-left: 10px;
7
+ vertical-align: middle;
8
+ }
9
+ #printBuildOrder table{
10
+ margin: auto;
11
+ width: 100%;
12
+ border-collapse:collapse;
13
+ border: 1px solid black;
14
+ }
15
+ #printBuildOrder h1,h2,h3,h4,h5,h6 {
16
+ text-align: center;
17
+ }
18
+ .sign {
19
+ vertical-align: top;
20
+ padding: 10px;
21
+ }
22
+ .material {
23
+ text-align: left;
24
+ vertical-align: top;
25
+ padding: 10px;
26
+ }
27
+ </style>
28
+
29
+ <div id="printBuildOrder">
30
+ <h2><span style="letter-spacing: 15px">阳春市博能燃气有限公司</span></h2>
31
+ <h2><span style="letter-spacing: 15px">工程派工单</span></h2>
32
+ <table border="1">
33
+ <tr>
34
+ <td style="width: 120px;">用户编号:</td>
35
+ <td style="width: 230px;">{{ selectdata.f_userinfo_code }}</td>
36
+ <td style="width: 120px;">工单编号:</td>
37
+ <td >{{ selectdata.f_child_apply_num }}</td>
38
+ <td style="width: 120px;">工程编号:</td>
39
+ <td >{{ selectdata.f_apply_num }}</td>
40
+ </tr>
41
+ <tr>
42
+ <td>用户名称:</td>
43
+ <td colspan="3">{{ selectdata.f_user_name }}</td>
44
+ <td>派工日期:</td>
45
+ <td>{{ selectdata.f_dispatch_date }}</td>
46
+ </tr>
47
+ <tr>
48
+ <td>地址:</td>
49
+ <td colspan="5">{{ selectdata.f_address}}</td>
50
+ </tr>
51
+ <tr>
52
+ <td>户数:</td>
53
+ <td>{{ selectdata.f_apply_count}}</td>
54
+ <td>用气点数量:</td>
55
+ <td>{{ selectdata.f_furnace_num }}</td>
56
+ <td>报建类型:</td>
57
+ <td>{{ selectdata.f_apply_type }}</td>
58
+ </tr>
59
+ <tr>
60
+ <td>区域:</td>
61
+ <td>{{ selectdata.f_apply_region }}</td>
62
+ <td>是否内投:</td>
63
+ <td>{{ selectdata.f_is_inward }}</td>
64
+ <td>报建性质:</td>
65
+ <td>{{ selectdata.f_gas_nature }}</td>
66
+ </tr>
67
+ <tr>
68
+ <td>联系人:</td>
69
+ <td>{{ selectdata.f_user_name }}</td>
70
+ <td>用户电话:</td>
71
+ <td>{{ selectdata.f_phone }}</td>
72
+ <td>预计通气时间:</td>
73
+ <td>{{ selectdata.f_yjgase_time }}</td>
74
+ </tr>
75
+ <tr>
76
+ <td>施工人:</td>
77
+ <td>{{ selectdata.f_shigong_people }}</td>
78
+ <td>用气设备:</td>
79
+ <td>{{ selectdata.f_gas_appliances }}</td>
80
+ <td>计划开工时间:</td>
81
+ <td>{{ selectdata.f_release_date }}</td>
82
+ </tr>
83
+ <tr>
84
+ <td>施工内容:</td>
85
+ <td >{{ selectdata.f_install_situation }}</td>
86
+ <td>计划完工时间:</td>
87
+ <td>{{ selectdata.f_commencement_date }}</td>
88
+ <td>安装位置:</td>
89
+ <td>{{ selectdata.f_install_position }}</td>
90
+ </tr>
91
+ <tr>
92
+ <td>备注:</td>
93
+ <td colspan="5">{{ selectdata.f_apply_remarks }}</td>
94
+ </tr>
95
+ <tr>
96
+ <td>派单人:</td>
97
+ <td colspan="3">{{ selectdata.sender }}</td>
98
+ <td>操作人:</td>
99
+ <td>{{ f_operator }}</td>
100
+ </tr>
101
+ </table>
102
+ </div>
103
+ <print-element v-show="false" v-ref:print id='printBuildOrder' styleid='printBuildOrderStyle'
104
+ top='10' left='30' width='100%' height='100%' :type="type">
105
+ </print-element>
106
+ </template>
107
+
108
+ <script>
109
+ Date.prototype.Format = function (fmt) {
110
+ var o = {
111
+ "M+": this.getMonth() + 1, //月份
112
+ "d+": this.getDate(), //日
113
+ "H+": this.getHours(), //小时
114
+ "m+": this.getMinutes(), //分
115
+ "s+": this.getSeconds(), //秒
116
+ "q+": Math.floor((this.getMonth() + 3) / 3), //季度
117
+ "S": this.getMilliseconds() //毫秒
118
+ };
119
+ if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
120
+ for (var k in o)
121
+ if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
122
+ return fmt;
123
+ }
124
+ export default {
125
+ title: '施工安装通知单',
126
+ props: {
127
+ selectdata: {
128
+ type: Object
129
+ },
130
+ type: {
131
+ type: String
132
+ }
133
+ },
134
+ data () {
135
+ return {
136
+ f_operator: this.$login.f.name,
137
+ showModal: false,
138
+ userfile: null
139
+ }
140
+ },
141
+ ready () {
142
+ },
143
+ methods: {
144
+ print () {
145
+ this.$refs.print.PrintTable()
146
+ }
147
+ },
148
+ computed: {
149
+ parse () {
150
+ return JSON.parse(this.selectdata.f_install_project).toString()
151
+ },
152
+ orgs () {
153
+ return this.$login.f.orgs
154
+ }
155
+ }
156
+ }
157
+ </script>
158
+
159
+ <style scoped>
160
+ .control-label-justify {
161
+ display: inline-block;
162
+ vertical-align: top;
163
+ width: 130px;
164
+ text-align: justify;
165
+ font-family: PingFang-SC-Bold;
166
+ }
167
+
168
+ .control-label-justify::after {
169
+ content: "";
170
+ display: inline-block;
171
+ width: 100%;
172
+ overflow: hidden;
173
+ height: 0;
174
+ }
175
+ </style>
@@ -1,24 +1,29 @@
1
- import Vue from 'vue'
2
-
3
- let specialComp = {
4
- 'exploration-user': (resolve) => { require(['./pc/ExplorationUser.vue'], resolve) },
5
- 'exploration-select': (resolve) => { require(['./pc/ExplorationSelect.vue'], resolve) },
6
- 'service-control': (resolve) => { require(['./pc/ServiceControl.vue'], resolve) },
7
- 'apply-charge-management': (resolve) => { require(['./pc/chargeManagement.vue'], resolve) },
8
- 'file-upload': (resolve) => { require(['./pc/FileUpload.vue'], resolve) },
9
- 'apply-upload': (resolve) => { require(['./pc/ApplyUpload.vue'], resolve) },
10
- 'installinfoselect': (resolve) => { require(['./pc/InstallInfoSelect.vue'], resolve) },
11
- 'installation-details': (resolve) => { require(['./pc/InstallationDetails.vue'], resolve) },
12
- 'apply-charge-list': (resolve) => { require(['./pc/ApplyChargeList.vue'], resolve) },
13
- 'add-material-science': (resolve) => { require(['./pc/addMaterialScience.vue'], resolve) },
14
- 'apply-devices-management': (resolve) => { require(['./pc/devicesManagement.vue'], resolve) },
15
- 'service-view': (resolve) => { require(['./pc/ServiceView.vue'], resolve) },
16
- 'supervisory-service-view': (resolve) => { require(['./pc/SupervisoryServiceView'], resolve) },
17
- 'other-charge-management': (resolve) => { require(['./pc/otherchargeManagement.vue'], resolve) },
18
- 'supervisory-service-control': (resolve) => { require(['./pc/SupervisoryServiceControl'], resolve) },
19
- 'supervisory-service-control-new': (resolve) => { require(['./pc/SupervisoryServiceControlNew'], resolve) },
20
- 'supervisory-list': (resolve) => { require(['./pc/SupervisoryList.vue'], resolve) },
21
- 'supervisory-list-new': (resolve) => { require(['./pc/SupervisoryListNew.vue'], resolve) },
22
- 'supervisory-control-new': (resolve) => { require(['./pc/SupervisoryControlNew'], resolve) }
23
- }
24
- exports.specialComp = specialComp
1
+ import Vue from 'vue'
2
+
3
+ let specialComp = {
4
+ 'exploration-user': (resolve) => { require(['./pc/ExplorationUser.vue'], resolve) },
5
+ 'exploration-select': (resolve) => { require(['./pc/ExplorationSelect.vue'], resolve) },
6
+ 'service-control': (resolve) => { require(['./pc/ServiceControl.vue'], resolve) },
7
+ 'apply-charge-management': (resolve) => { require(['./pc/chargeManagement.vue'], resolve) },
8
+ 'file-upload': (resolve) => { require(['./pc/FileUpload.vue'], resolve) },
9
+ 'apply-upload': (resolve) => { require(['./pc/ApplyUpload.vue'], resolve) },
10
+ 'installinfoselect': (resolve) => { require(['./pc/InstallInfoSelect.vue'], resolve) },
11
+ 'installation-details': (resolve) => { require(['./pc/InstallationDetails.vue'], resolve) },
12
+ 'apply-charge-list': (resolve) => { require(['./pc/ApplyChargeList.vue'], resolve) },
13
+ 'add-material-science': (resolve) => { require(['./pc/addMaterialScience.vue'], resolve) },
14
+ 'apply-devices-management': (resolve) => { require(['./pc/devicesManagement.vue'], resolve) },
15
+ 'service-view': (resolve) => { require(['./pc/ServiceView.vue'], resolve) },
16
+ 'supervisory-service-view': (resolve) => { require(['./pc/SupervisoryServiceView'], resolve) },
17
+ 'other-charge-management': (resolve) => { require(['./pc/otherchargeManagement.vue'], resolve) },
18
+ 'supervisory-service-control': (resolve) => { require(['./pc/SupervisoryServiceControl'], resolve) },
19
+ 'supervisory-service-control-new': (resolve) => { require(['./pc/SupervisoryServiceControlNew'], resolve) },
20
+ 'supervisory-list': (resolve) => { require(['./pc/SupervisoryList.vue'], resolve) },
21
+ 'supervisory-list-new': (resolve) => { require(['./pc/SupervisoryListNew.vue'], resolve) },
22
+ 'stop-apply-list': (resolve) => { require(['./pc/StopApplyList.vue'], resolve) },
23
+ 'supervisory-control-new': (resolve) => { require(['./pc/SupervisoryControlNew'], resolve) },
24
+ 'supervisory-control': (resolve) => { require(['./pc/SupervisoryControl'], resolve) },
25
+ 'build-order-list': (resolve) => { require(['./pc/buildOrderList'], resolve) },
26
+ 'apply-construction-Info': (resolve) => { require(['./pc/constructionInfo'], resolve) },
27
+ 'print-build-order': (resolve) => { require(['./pc/printBuildOrder'], resolve) }
28
+ }
29
+ exports.specialComp = specialComp
package/src/main.js CHANGED
@@ -9,11 +9,12 @@ import {material} from 'material-client'
9
9
  import apply from './apply'
10
10
 
11
11
  all()
12
- apply('fugou')
12
+ apply('gongyi')
13
13
  ldap()
14
- sale()
14
+ sale('qianneng')
15
15
  material()
16
- system(false)
16
+ system(false, 'qianneng')
17
+
17
18
  require('system-clients/src/styles/less/bootstrap.less')
18
19
  require('./expandcss.less')
19
20
  new Vue({
@@ -1,69 +0,0 @@
1
- package test;
2
-
3
- import java.io.IOException;
4
- import java.io.PrintWriter;
5
- import java.text.SimpleDateFormat;
6
- import java.util.Date;
7
- import java.util.Enumeration;
8
-
9
- import javax.servlet.ServletException;
10
- import javax.servlet.annotation.WebServlet;
11
- import javax.servlet.http.HttpServlet;
12
- import javax.servlet.http.HttpServletRequest;
13
- import javax.servlet.http.HttpServletResponse;
14
- import javax.servlet.http.HttpSession;
15
-
16
- @WebServlet("/session-test")
17
- public class SessionTestServlet extends HttpServlet {
18
- private static final long serialVersionUID = 1L;
19
-
20
- protected void doGet(HttpServletRequest request, HttpServletResponse response)
21
- throws ServletException, IOException {
22
- response.setContentType("text/html;charset=UTF-8");
23
- PrintWriter out = response.getWriter();
24
-
25
- HttpSession session = request.getSession();
26
- String sessionId = session.getId();
27
- String jvmRoute = "";
28
-
29
- // 从sessionId中提取jvmRoute
30
- if (sessionId.contains(".")) {
31
- jvmRoute = sessionId.substring(sessionId.lastIndexOf(".") + 1);
32
- }
33
-
34
- out.println("<!DOCTYPE html>");
35
- out.println("<html><head><title>Session测试</title>");
36
- out.println("<style>body{font-family:Arial;margin:20px;} .container{border:1px solid #ddd;padding:20px;}</style>");
37
- out.println("</head><body><div class='container'>");
38
- out.println("<h1>Tomcat集群Session测试</h1>");
39
-
40
- out.println("<h3>服务器信息</h3>");
41
- out.println("<p>服务器: " + request.getServerName() + ":" + request.getServerPort() + "</p>");
42
- out.println("<p>JVM路由: " + jvmRoute + "</p>");
43
- out.println("<p>Session ID: " + sessionId + "</p>");
44
-
45
- // 显示当前session中的所有属性
46
- out.println("<h3>当前Session属性</h3>");
47
- Enumeration<String> attributeNames = session.getAttributeNames();
48
- if (!attributeNames.hasMoreElements()) {
49
- out.println("<p>Session中没有属性</p>");
50
- } else {
51
- out.println("<ul>");
52
- while (attributeNames.hasMoreElements()) {
53
- String name = attributeNames.nextElement();
54
- out.println("<li>" + name + " = " + session.getAttribute(name) + "</li>");
55
- }
56
- out.println("</ul>");
57
- }
58
-
59
- // 添加一个新的session属性
60
- String timestamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
61
- session.setAttribute("lastAccess", timestamp);
62
-
63
- out.println("<h3>已添加新属性</h3>");
64
- out.println("<p>lastAccess = " + timestamp + "</p>");
65
-
66
- out.println("<p><a href='session-test'>刷新页面</a></p>");
67
- out.println("</div></body></html>");
68
- }
69
- }
@@ -1,52 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
3
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
5
- http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
6
- version="3.1">
7
-
8
- <!-- 启用会话复制 -->
9
- <distributable/>
10
-
11
- <!-- 会话配置 -->
12
- <session-config>
13
- <session-timeout>30</session-timeout>
14
- </session-config>
15
-
16
- <!-- 应用程序名称 -->
17
- <display-name>您的应用名称</display-name>
18
-
19
- <!-- 会话配置 -->
20
- <session-config>
21
- <!-- 会话超时时间(分钟) -->
22
- <session-timeout>30</session-timeout>
23
- <!-- Cookie配置 -->
24
- <cookie-config>
25
- <!-- 启用HttpOnly以提高安全性 -->
26
- <http-only>true</http-only>
27
- <!-- 如果使用HTTPS,可以启用secure -->
28
- <!-- <secure>true</secure> -->
29
- </cookie-config>
30
- <!-- 跟踪模式 -->
31
- <tracking-mode>COOKIE</tracking-mode>
32
- </session-config>
33
-
34
- <!-- 欢迎文件列表 -->
35
- <welcome-file-list>
36
- <welcome-file>index.html</welcome-file>
37
- <welcome-file>index.jsp</welcome-file>
38
- </welcome-file-list>
39
-
40
- <!-- 错误页面配置 -->
41
- <error-page>
42
- <error-code>404</error-code>
43
- <location>/error/404.html</location>
44
- </error-page>
45
- <error-page>
46
- <error-code>500</error-code>
47
- <location>/error/500.html</location>
48
- </error-page>
49
-
50
- <!-- 其他应用程序特定的配置... -->
51
-
52
- </web-app>
@@ -1,59 +0,0 @@
1
- <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
2
- <!DOCTYPE html>
3
- <html>
4
- <head>
5
- <meta charset="UTF-8">
6
- <title>Session共享测试</title>
7
- <style>
8
- body { font-family: Arial, sans-serif; margin: 20px; }
9
- .container { border: 1px solid #ddd; padding: 20px; border-radius: 5px; }
10
- .info { background-color: #f8f8f8; padding: 10px; margin: 10px 0; }
11
- .success { color: green; }
12
- .error { color: red; }
13
- </style>
14
- </head>
15
- <body>
16
- <div class="container">
17
- <h1>Tomcat集群Session共享测试</h1>
18
-
19
- <div class="info">
20
- <p><strong>服务器信息:</strong> <%= application.getServerInfo() %></p>
21
- <p><strong>JVM路由(jvmRoute):</strong> <%= System.getProperty("jvmRoute", "未设置") %></p>
22
- <p><strong>Tomcat实例名称:</strong> <%= System.getProperty("catalina.base") %></p>
23
- <p><strong>当前会话ID:</strong> <%= session.getId() %></p>
24
- </div>
25
-
26
- <%
27
- // 获取当前时间作为默认值
28
- String currentTime = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.util.Date());
29
-
30
- // 处理表单提交
31
- if ("POST".equalsIgnoreCase(request.getMethod())) {
32
- String sessionValue = request.getParameter("sessionValue");
33
- if (sessionValue != null && !sessionValue.trim().isEmpty()) {
34
- session.setAttribute("testValue", sessionValue);
35
- out.println("<p class='success'>会话值已设置为: " + sessionValue + "</p>");
36
- }
37
- }
38
-
39
- // 获取当前会话值
40
- String testValue = (String) session.getAttribute("testValue");
41
- %>
42
-
43
- <form method="post" action="session-test.jsp">
44
- <h3>设置Session值</h3>
45
- <input type="text" name="sessionValue" value="<%= currentTime %>" style="width: 250px;">
46
- <input type="submit" value="保存到Session">
47
- </form>
48
-
49
- <div style="margin-top: 20px;">
50
- <h3>当前Session值</h3>
51
- <% if (testValue != null) { %>
52
- <p>存储在Session中的值: <strong><%= testValue %></strong></p>
53
- <% } else { %>
54
- <p class="error">Session中没有存储值</p>
55
- <% } %>
56
- </div>
57
- </div>
58
- </body>
59
- </html>