Страница 2 из 3
Добавлено: 30 июл 2004, 13:42
Oscar
AiK,
Прекрасно, а откуда будет вызываться stupidMethod?
Я догадывался, что именно "main", может и не нужен, но куда вписать следующую строку?
StupidClass.stupidMethod(new String(request.getParameter("v").getBytes("windows-1251")));
обычно есть main
для Threads есть run или start, кажется..
Я предполагал, что и для JSP файлов должно нечто подобное быть..
Функция, которая будет первой выполнена, при обращении к JSP файлу ..
Добавлено: 30 июл 2004, 14:59
AiK
куда вписать следующую строку
Куда угодно в странице в угловых скобках с процентиком. Более того, страница может не содержать ни единой строчки Java кода и при этом изюмительно работать. Как, спросишь ты? А очень просто, отвечу я. При первом обращении к странице из неё будет изготовлен сервлет, и все последующие вызовы будут перенаправляться к этому сервлету. Сервлет, это что-то наподобие аплета. Только аплет живёт в браузере, а сервлет - в контейнере сервлетов (сорри за масло-масляное

). Т.е. они сами по себе не запускается, а их запускают со стороны. Поэтому, как и у аплета, у него существуют методы, хотя бы один из которых должен быть реализован в зависимости каким HTTP методом был вызван сервлет. Для метода GET нужно реализовать метод doGet, а для метода POST - doPost. Впрочем, сервлеты после того как я на них последний раз пристально смотрел, бурно развивались, и возможно уже есть один метод на все случаи вызовов сервлета, не знаю.
Итак, если ты объявишь в JSP собственный класс с методом main, то никто кроме тебя его вызывать не будет. В аплете ты можешь тоже имплементировать метод main и запустить его как обычное java-приложение. Но в браузере вызова метода main не произойдёт, если только ты сам его не выполнишь...
Ежели ты просто попытаешься объявить метод main внутри JSP страницы, то это будет ошибкой - сервлет из неё не скомпилится.
Добавлено: 30 июл 2004, 15:24
Oscar
AiK, Вау! Супер, спасибо!! :-)
Именно то, о чем спрашивал !! ))
Добавлено: 30 июл 2004, 18:34
uncledm
Дали еще один вариант.
Код: Выделить всё
<%@ page import="java.io.*" session="false"%>
<%
final String filename = "data.txt";
final String parameterEncoding = "windows-1251";
final String fileEncoding = "windows-1251";
try {
request.setCharacterEncoding(parameterEncoding);
String text = request.getParameter("v");
PrintWriter writer = new PrintWriter(
new OutputStreamWriter(
new FileOutputStream(filename), "windows-1251"));
writer.print(text);
writer.close();
} catch (Exception e) {
}
%>
Добавлено: 30 июл 2004, 21:06
Oscar
uncledm,
"Дали" - добрые люди? ))
И что - тоже не работает? ))
А сервер вообще JSP поддерживает? ))
Добавлено: 31 июл 2004, 07:46
uncledm
Да "Дали" - добрые люди ((
И тоже не работает ((
А сервер вообще JSP поддерживает! (( (по утверждению тех отдела провайдера)
Добавлено: 02 авг 2004, 08:58
Deady
Oscar писал(а):uncledm,
"Дали" - добрые люди? ))
И что - тоже не работает? ))
А сервер вообще JSP поддерживает? ))
Aik, не читал твой пост целиком (лень было), но с певых строчек понял, что ты расписываешь сервлет, а не jsp.
<?php
$text=$HTTP_POST_VARS["v"];
$file=fopen("data.txt","w+");
@fwrite ($file, $text);
@fclose ($file);
?>
переписывается так:
index.jsp
====================================
<%@ page contentType="text/html; charset=windows-1251"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%
String text = request.getParameter("v");
PrintWriter f = new PrintWriter(new FileWriter("data.txt"));
f.println(text);
f.close();
%>
====================================
полученный файл (все, что между знаками =====) сохраняется и кидается на сервер. причем кинуть его надо в определенное место, админ должен сказать куда (зависит от платформы).
Добавлено: 02 авг 2004, 09:12
Deady
AiK писал(а):куда вписать следующую строку
Ежели ты просто попытаешься объявить метод main внутри JSP страницы, то это будет ошибкой - сервлет из неё не скомпилится.
скомпилится, только его надо будет объявлять так (обязателен символ '!'):
<%!
public static void main(String[] args) { }
%>
вызываться естественно не будет. автоматически вызывается только то, что заключено в <% %>.
Добавлено: 02 авг 2004, 11:37
AiK
Deady, про восклицательный знак не знал, 10х.
ты расписываешь сервлет, а не jsp
Так jsp суть сервлет, разве не так?

Добавлено: 02 авг 2004, 13:37
Deady
ну да, только если знаешь что такое сервлет и заешь про doGet и doPost (объединяет их кстати doRequest). а если не знаешь и необходимо всего-то лишь решить такую маленькуб задачу, то можно мыслить jsp не как сервлет, а как php скрипт - проще будет.