Так что я пытаюсь общаться с использованием сокетов TCP, создавая клиент на странице JSP, проблема заключается в том, что каждый раз, когда я отправляю форму на своей странице, она обновляет страницу и создает новый сокет клиента, стирающий информацию, которую я имел ранее (nomeUtilizador). Я искал способы отправки формы без обновления, и попробовал ее (AJAX), но она никогда не была разработана ...JSP-сокет без обновления страницы
Возможно, есть другие способы решить эту проблему, например, сделать так, чтобы сокет был создан только один раз .. . Или переменная nomeUtilizador становится доступным для каждого обновления ...
<% private void ClienteTCP(String host, int port) {
try {
s = new Socket(host, port);
System.err.println("Ligacao estabelecida");
in = new ObjectInputStream(s.getInputStream());
out = new ObjectOutputStream(s.getOutputStream());
System.err.println("Streams criadas");
} catch (UnknownHostException uhEx) {
System.err.println("UnknownHostException");
} catch (IOException ioEx) {
} catch (Exception e) {
}
}
ClienteTCP("localhost", 6000);
String nomeUtilizador = (String) session.getAttribute("nomeUtilizador");
String xmlUtilizador = "C:/Users/leonel/workspace/ParqueEstacionamento/WebContent/xml_clientes/"
+ nomeUtilizador.replaceAll("\\s+", "") + ".xml";
criarDocument(xmlUtilizador);
ArrayList<String> listaParques = getParques();
%><form name="botoes" id="botoes" method="post"
action="parqueOnline.jsp" onsubmit="submitForm()">
<input TYPE="HIDDEN" NAME="buttonName"> <input type="button"
name="botao" value="Estacionar" onclick="showDiv();"> <input
type="submit" name="botao" value="Pagar" onclick="pagar();">
<input type="submit" name="botao" value="Sair" onclick="sair();">
<br />
<div id="escolherParque" style="display: none;" class="escolherParque">
<label>Parques</label> <select name="parque">
<option value=""></option>
<%
for (int i = 0; i < listaParques.size(); i++) {
%>
<option value=<%=listaParques.get(i)%>><%=listaParques.get(i)%></option>
<%
}
%>
</select> <input type="submit" name="estacionar"
value="Escolha o Parque onde quer estacionar.."
onclick="escolherParque();">
</div>
</form>
<%
String botao = request.getParameter("buttonName");
if (botao != null) {
//do more stuff %>
Что вы пытаетесь заархивировать? Как я знаю, код в JSP работает на стороне сервера. Поэтому, когда вы создаете сокет с помощью кода, который вы опубликовали, сокет фактически создан на вашем сервере приложений, а не на стороне клиента. Чтобы создать сокет на стороне клиента с помощью java, вы должны использовать апплет. Если вам нужна связь в реальном времени между вашим браузером и сервером, вы можете использовать [веб-сокет] (http://www.html5rocks.com/en/tutorials/websockets/basics/) или [веб-рабочий] (http: // www.w3schools.com/html/html5_webworkers.asp) –
Спасибо за совет. – user3185775