|
Как лучше получить в сервлете на выходе XML?
|
|||
---|---|---|---|
#18+
Код тестовый, учебный можно сказать. В общем есть сервлет, коннект к базе, результат запроса. Как лучше его вывести с использованием XSLT. В коде ниже результат запроса я передаю в строку, но чувствую что это не совсем хорошо. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2004, 16:46 |
|
Как лучше получить в сервлете на выходе XML?
|
|||
---|---|---|---|
#18+
А чем тебе этот вариант не нравится (кроме того что sXml должен быть CтрингБуффер)? Всё как у людей :) Если скучно, можно разнести разные действия (коннект, выполнение запроса, трансформация результата) в разные методы, если не классы, что бы это не обросло потом геморроем. Можно обдумать процесс автоматизации поиска нужной xsl для заданного xml (по запросу к базе, по root-тагу xml, etc). Тогда ничто не помешает в будущем сделать кеш/пул для xsl трансформов, что бы не перезагружать их постоянно. У нас как ни как ООП, поэтому выносить определения переменных в начало метода не зачем (result, path). Где надо, там и используем. А вот, что res.setContentType("text/html"); делает в коде выполняющем преобразование xsl не ясно :) Если совсем не нравится обращение к rst.getString(), можно накидать полученные rst в класс наследник от StreamSource() и брать напрямую из bytes, благо доступ к Stream последовательный :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2004, 17:52 |
|
Как лучше получить в сервлете на выходе XML?
|
|||
---|---|---|---|
#18+
XSLT трансформацию можно делать как на сервере так и на клиенте. С сервером правда будет надежнее т.к. не все клиенты на сегодняшний день поддерживают XSL трансформацию. IE - первый браузер который реально поддержал XML-XSLT технологию ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2004, 19:52 |
|
Как лучше получить в сервлете на выходе XML?
|
|||
---|---|---|---|
#18+
Я бы еще посоветовал формировать XML используя API, а то если xml будет сложным, то замучеешься ты совсем со всеми вложенными елементами и аттребутами.. :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2004, 12:11 |
|
Как лучше получить в сервлете на выходе XML?
|
|||
---|---|---|---|
#18+
NotGonnaGetUs Тогда ничто не помешает в будущем сделать кеш/пул для xsl трансформов, что бы не перезагружать их постоянно. Можно поподробнее про кеш/пул для xsl трансформов. Может есть примерчик, а то я сейчас пишу веб-приложение, весь вывод у меня через xml/xsl преобразования, ложу в определенную область видимости объект(Node например, как в пред. посте) а затем кастом таг достает этот объект, загружает XSLT процессор и делает свое дело, и этот таг, делает это при каждом обращении, вот я сейчас и думаю над тем, как бы загрузить трансформатор один раз и юзать его потом со всех потоков, в плотную я этим еще не занимался, но думаю, что будет проблема с синхронизацией. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2004, 12:22 |
|
Как лучше получить в сервлете на выходе XML?
|
|||
---|---|---|---|
#18+
wessenМожно поподробнее про кеш/пул для xsl трансформов. Может есть примерчик, ... но думаю, что будет проблема с синхронизацией. Конечно будет. Transformer не синхранизирован. Поэтому каждому потоку нужно давать свой трансформер и поэтому нужен не столько кеш, сколько пул. В первом приближении это можно изобразить в виде ниже приведённого кода. Я его не тестировал, так что может где описался. В конце концов это просто иллюстрация идеи написанная в полвторого ночи :) Если какие вопросы возникнут - милости прошу :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2004, 02:22 |
|
Как лучше получить в сервлете на выходе XML?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2004, 13:20 |
|
Как лучше получить в сервлете на выходе XML?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2004, 09:30 |
|
Как лучше получить в сервлете на выходе XML?
|
|||
---|---|---|---|
#18+
NotGonnaGetUs wessen вот еще нарыл Мне тоже не нравилась идея с free & busy хранилищами :) Правда в статье предлагают хешить только фактори, а сами трансформеры создаются каждый раз заново. Вполне возможно, что из-за полного лока на чтение из пула (как у меня), быстрее будет создавать трансформеры заново, чем ждать своей очереди. Но для этого читающих потоков должно быть действительно много :) Кроме того, процедура апдейта кешированных значений упрощается если нет пула... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2004, 09:46 |
|
|
start [/forum/topic.php?fid=59&msg=32710135&tid=2153687]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
62ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 169ms |
0 / 0 |