Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/10: Рейтинг темы: голосов - 10, средняя оценка - 4.70
anele

Проблемы с CLASSPATH в jsp

25.11.2009, 10:40. Показов 2009. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
У меня возникла следующая проблема. Существует такая цепочка:
Jsp-страница --> Сервлет, перенаправляющий данные другому сервлету и jsp ---> Сервлет и jsp.
Данные передаются в виде bean-объекта. Проблема с пакетами. Все файлы данного приложеньица находятся в каталоге ExampleBean. Всего 2 сервлета, 2 jsp и 1 класс бина. Код такой:
1-ая jsp-страница
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
<%@page import='ExampleBean.*'%>
<HTML>
<HEAD>
<style>
a.ssilka {color=#600020;}
</style>
<TITLE>Bean component - example </TITLE>
</HEAD>
<BODY>
<center>
<h1><i>Bean's message</i></h1><p>
<jsp:useBean id='stringBean' scope='application' class='ExampleBean.StringBean' />
the message is <font color=red><jsp:getProperty name='stringBean' property='message' /></font>
</center>
</BODY>
</HTML>

Код сервлета - обработчика такой:
package ExampleBean;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import ExBean.*;

public class ExBean extends HttpServlet{

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
String message = request.getParameter('message');
StringBean bean ;
bean = new StringBean();
bean.setMessage(message);
getServletContext().setAttribute('string Bean', bean);
RequestDispatcher generalServlet = getServletContext().getRequestDispatcher ('/servlet/ExampleBean.generalServlet');
RequestDispatcher generalJsp = getServletContext().getRequestDispatcher ('/ExampleBean/generalJsp.jsp');
generalServlet.include(request, response);
generalJsp.include(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
doGet(request, response);
}

}
При компиляции этого сервлета javac начинает ругаться, говорит
cannot resolve symbol
и указывает на строки
StringBean bean ;
bean = new StringBean();
Класс StringBean записан в другом файле и выглядит так
package ExBean;

public class StringBean{
private String message = 'No message specified!';

public void StringBean(){
}

public String getMessage(){
return(message);
}

public void setMessage(String message){
this.message = message;
}

}
Как только я помещаю этот код в файл с кодом для сервлета, все нормально. Но с jsp же такой номер не пройдет, сервер ругается. У меня Windows 2000 Professional. Переменную CLASSPATH я установила так:
CLASSPATH = .; %system root%javaclasses;H:MyServlets;
H:MyServlets - это каталог, в котором находится ExampleBean с файлами jsp и сервлетов. Что мне сделать, чтобы все это заработало нормально? Помогите, пожааалуйста!
Заранее спасибо огромное!
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.11.2009, 10:40
Ответы с готовыми решениями:

Проблемы кодировки в JSP
Всем добрый день. Как видно из темы, у меня проблемы с кодировкой в JSP. Не спешите отправлять меня на google.com, - я там уже был:) ...

JSP - проблемы с аплоадом
Please, send me a sample project using file upload in JSP. Thanks, Bupyc. ;-)

Пересылка запроса с jsp страницы на эту же jsp с другими параметрами
Хочу реализовать паджинацию страницы, на страницу приходить запрос со списком объектов, jsp страница отображает часть этого списка в...

12
mishgun
26.11.2009, 06:09
Вообще то сервлеты и бины надо складывать в папку спецонистую на вебсервере вашем(обычно это папка WEB-INF)
anele
27.11.2009, 09:13
Но у меня же javac не компилирует сервлет вообще...
mishgun
28.11.2009, 04:47
Во-первых jsp вам компиллировать не надо вообще. Они должны находится в директории которая исполняется сервером грубо говоря(посмотрите доку у разных серверов это разные названия)
Необходимо компиллировать сервлеты и Бины
>>Все файлы данного приложеньица находятся в каталоге ExampleBean. >>Всего 2 сервлета, 2 jsp и 1 класс бина
Эта строка мне понятна мне непонятно где находится у вас каталог ExBean?
Сделайте так под директорией MyServlet создайте две поддиректории одна-ExBean вторая -ExampleBean;
Первым скомпилите StringBean потом ExBean.
И потом если уж у вас имена одинаковые - в программировании это моветон указывать имя файла и имя пакета одинаковым регистром
mishgun
28.11.2009, 04:55
Да ещё компиллируйте так ->
H:MyServlet>javac ExBean.StringBean.java
H:MyServlet>javac ExampleBean.ExBean.java(усли я ничего не напутал))
1 / 1 / 1
Регистрация: 03.06.2008
Сообщений: 101
29.11.2009, 07:41
Чтобы скомпилировать сервлет, вам надо включить в classpath файл servlet.jar

по поводу StringBean, то этот класс должен поидее находиться в папке H:MyServletsExBean

а компилировать так:
H:MyServlets>javac ExBeanStringBean.java
H:MyServlets>javac -classpath servlet.jar ExBean.java
0
mishgun
30.11.2009, 05:51
А с чего компилить с servlet.jar? Переменные окружения выставляются при установке сервера и если все ровно то компилить совсем необязательно так как вы указали, а если неровно то и сервак сам пахать не будет Я вообще никогда так не компиллирровал.
1 / 1 / 1
Регистрация: 03.06.2008
Сообщений: 101
30.11.2009, 06:21
Точно знаю, что переменая окружения classpath не устанавливается томкатом.

Цитата (anna_malova)

CLASSPATH я установила так:
CLASSPATH = .; %system root%javaclasses;H:MyServlets;

Что то я не вижу прописаный servlet.jar
а без него компилятор как минимум не поймет класс HttpServlet, HttpServletRequest, HttpServletResponse и остальные в пакетах javax.servlet и javax.servlet.http
0
mishgun
30.11.2009, 07:10
ну прочитайте на что ругается у анны компиллятор.А ругается он не на HttpSrlvlet и прочее а на StringBean так что я думаю что прописыван всё таки он.И потом если вы пропишите Catalina_Home=C:la-bla то не надо городить огород и компилить с сервлетным джаром.Я и под Томкат так компилял(года два назад было может счас изменили они всё ... не буду врать про сейчас не знаю)
anele
30.11.2009, 13:41
Привет!
jsp у меня уже работают. Просто я ошиблась в синтаксисе при указании местонахождения bean-класса. А потом проверила все как следует и нашла свою глупую ошибку. Я там директиву Import указала для bean-класса. А насчет сервлетов ... у меня с пакетами проблема. а classpath нормальный (то есть, он немного ненормальный -)) Про servlet.jar я указала в System/ Enviroment/Varialbles. Если я текст класса StringBean помещаю в файл с классом сервлета, потом компилирую, все нормально, javac не возникает. Затем помещаю класс сервлета в WebßInf/classes/packege_name и работаю.
anele
30.11.2009, 13:46
2 space center
Этот CLASSPATH указан не там, где System/Enviroment/Variables, а после команды regedit сразу появляется переменная classpath, вот ее я и установила. Ее значение по умолчанию было %system root%/java/classes.
mishgun
01.12.2009, 05:50
Anna
сделайте плизз как я сказал или как space_center(что в принципе одно и тоже)
под директорией WEB-INFclasses создайте две директории
ExBean для StringBean и ExampleBean Для ExBean(который у Вас сервлет)
скомпиллируйте сначала StringBean
С:yourserverrootWEB-INFclasses>javac ExBeanStringBean.java
потом
С:yourserverrootWEB-INFclasses>javac ExampleBeanExBean.java
и тогда не надо будет мучаться с компилляцией в одном месте и последующим переносом в нужную директорию
1 / 1 / 1
Регистрация: 03.06.2008
Сообщений: 101
01.12.2009, 06:52
2 anna_malova:
8) может я что то пропустил? но пожалуйста раскажите, где в реестре храниться эта переменая. (не поймите за сарказм, просто интересно)

2 mishgun: всегда стараюсь работать с самыми последними релизами томката 8), ну не получается у меня компилировать без jar
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.12.2009, 06:52
Помогаю со студенческими работами здесь

[JSP] Назначать класс элементов в header.jsp на разных страницах
Есть header.jsp, который я включаю в свои страницы: &lt;link href=&quot;${contextPath}/resources/css/header.css&quot;...

Как реализовать аналог <b onclick="<jsp:forward page=xxx.jsp/>menuN</b> ??
Smysl zadachi v sledujuschem: menu.jsp - formiruet menu ishodia iz znachenii v baze dannuh. Tam neskolko kategorii, i na etoi starnice...

Не могу передать значения из jsp в сервлет и снова в jsp
Имеется солидный проект, в котором суть такова: Сайт с просмотром новостей (меню новостей, название новости и текст новости, данные...

jsp и intellij idea (не реагирует на изменение jsp нишка)
есть web проект , файл jsp где в html прописаны divы и подключены cssники , я могу менять вид сайта изменяя css , но изменения jsp браузер...

Jsp-servlet-jsp, нужен совет
Доброго времени суток. Помогите разобраться есть сервлет и две jsp страницы. Код сервлета. import java.io.IOException; import...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru