Java эквивалент для кода в ASP.net? - PullRequest
1 голос
/ 16 декабря 2011

У меня довольно любопытный сценарий, и я уверен, что у огромного таланта, просматривающего вопросы здесь в stackoverflow, будет очень мало проблем, чтобы выручить меня.

У меня есть проект на Java, который в значительной степени делает что-то с получением файла и загрузкой его в систему обработки изображений. Код работает таким образом, что, учитывая путь к файлу, он берет его и загружает в нужную мне систему (это включает в себя множество бизнес-логики, которая не имеет смысла раскрываться).

Теперь я хотел бы иметь HTML-страницу с входом FILE, которая берет файл, а затем ВЫЗЫВАЕТ код, который я написал, который будет выполнять работу по взятию файла и его загрузке в систему.

Это означает, что мне нужно перенести мой Java-проект во что-то, что может быть вызвано.

Есть много сторонних jar-файлов, которые помогают запускать мой код.

  1. Первый сценарий заключается в том, чтобы как-то превратить код в скриптлет - весь другой код можно скомпилировать в jar. Я ненавижу иметь JSP, который делает дело, но просто чтобы довести его до стадии, где он работает, я хотел бы развлечь эту опцию. Мой вопрос теперь , куда идут файлы jar? Это будет работать в Apache Tomcat, так что, я полагаю, я просто поместил jar в каталог lib и перезапустил Tomcat, и что должно сработать? Есть ли какой-нибудь файл classpath, который нужно изменить, чтобы сервер Tomcat знал о новых jar-файлах?

  2. Второй сценарий будет иметь сервлет, а затем файлы будут отправлены в каталог WEB-INF? Пожалуйста, кто-нибудь направит меня с этим.

Как вы думаете, что будет лучшим способом "перенести" мой Java-код, который превращает бизнес-логику, во что-то, что можно вызвать из html-страницы? Что будет эквивалентом кода позади?

Большое спасибо заранее и надеюсь, что вы сможете немного разъяснить мне этот вопрос.

Ответы [ 2 ]

3 голосов
/ 16 декабря 2011

Это на самом деле довольно стандартный сценарий, и есть множество подходов, которые вы можете использовать в зависимости от того, насколько масштабируемой вы хотите, чтобы эта служба была, насколько безопасна и т. Д. Я начну с подхода, который требует наименьшего количества работы. на вашем конце:

  1. Создайте JSP, как вы упомянули при вводе файла.
  2. Создайте сервлет, который просто берет загруженный файл (Tomcat сохранит его во временной папке, вы можете сначала переместить его) и получает путь.
  3. Пусть ваш сервлет вызовет существующий код Java через ProcessBuilder и передаст путь к нему в качестве аргумента командной строки. Подождите, пока оно не завершится.
  4. При необходимости удалите временный файл.

Более тщательный подход предполагает, что ваш сервлет будет напрямую вызывать бэкэнд-код Java. Если у вас уже есть интерфейс, который вы можете вызвать, вы можете поместить файл jar в папку WEB-INF/lib вашего веб-приложения, и ваш сервлет сможет ссылаться на классы в файле jar, чтобы вы могли вызывать любой класс, который вам нужен. Если этот процесс будет занимать много времени, то вы не хотите задерживать сервлет и, следовательно, запрос, поэтому рекомендуется передавать его асинхронному потоку, который позаботится о том, чтобы выполнить все, что нужно с файл и очистка потом.

1 голос
/ 16 декабря 2011

Возможно, самым близким эквивалентом будет сервлет.В WEB-INF/web.xml Вы можете настроить сервлеты для обработки веб-запросов, приходящих на определенные URL-адреса.После обработки запроса пользователя в сервлете вы обычно перенаправляете ответный файл в файл .jsp.

Библиотеки сторонних производителей идут в WEB-INF/lib.(Другой подход заключается в размещении сторонних jar-файлов в папке lib tomcat. Я бы не рекомендовал этот подход, потому что, скажем, вы решили перейти на другую версию Tomcat.

...