所以我有一个聊天系统,目前正在进行登录和注册,但即使用户登录,我仍然需要他们输入昵称进行聊天。
我想改变它,只是使用他们登录的登录名,我只是在右上角打印登录名,我不知道在我的javascript中使用它的人
下面的当前代码只使用从我想要使用user_id的登录表单中获取的值昵称,并使用jaavscript选择
这是Home.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Soc Talk Home Page</title>
<script src="resource/js/jquery-1.10.2.min.js"></script>
<link rel="stylesheet" href="resource/css/bootstrap.min.css" />
<link rel="stylesheet" href="resource/css/style.css" />
<script>
var wsocket;
var serviceLocation = "ws://" + document.location.host + "/SocTalk/chat/";
var $nickName;
var $message;
var $chatWindow;
var room = '';
function _MessageRecived(evt) {
var msg = JSON.parse(evt.data);//API
var $messageLine = $('<tr><td class="received">' + msg.received + '</td><td class="sender">' + msg.sender + '</td><td class="message">' + msg.message + '</td></tr>');
$chatWindow.append($messageLine);
}
function _MessageSending() {
var msg = '{"message":"' + $message.val() + '", "sender":"'
+ $nickName.val() + '", "received":""}';
wsocket.send(msg);
$message.val('').focus();
}
function _ConnectToAChatServer() {
room = $('#chatroom option:selected').val();
wsocket = new WebSocket(serviceLocation + room);
wsocket.onmessage = _MessageRecived;
}
function _ExitRoom() {
wsocket.close();
$chatWindow.empty();
$('.chat-wrapper').hide();
$('.chat-signin').show();
$nickName.focus();
}
$(document).ready(function () {
$nickName = $('#nickname');
$message = $('#message');
$chatWindow = $('#response');
$('.chat-wrapper').hide();
$nickName.focus();
$('#enterRoom').click(function (evt) {
evt.preventDefault();
_ConnectToAChatServer();
$('title').text('@' + room);
$('.chat-wrapper h2').text('Chatroom @' + room);
$('.chat-wrapper h4').text('Currently logged in ' + $nickName.val());
$('.chat-signin').hide();
$('.chat-wrapper').show();
$message.focus();
});
$('#do-chat').submit(function (evt) {
evt.preventDefault();
_MessageSending()
});
$('#Exit-room').click(function () {
_ExitRoom();
});
});
</script>
</head>
<body id="Body">
<%@ page import ="java.sql.*" %><%@ page import ="javax.sql.*" %><%String user = request.getParameter("userid");
session.putValue("userid", user);
String pwd = request.getParameter("pwd");
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection con = DriverManager.getConnection("jdbc:mysql://localhost:8081/socusers", "root", "");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from users where user_id='" + user + "'");
String message = "";
if (rs.next()) {
if (rs.getString(2).equals(pwd)) {
message = "Welcome " + user;
} else {
message = "Invalid password try again";
//Redirect after 3 seconds back to login
}
} else {
message = "Invalid user try again";
//Redirect after 3 seconds back to login
}
out.println(message);
%>
<center>
<div class="container chat-signin">
<form class="form-signin">
<h2><i>NCI Soc Talk</i></h2>
<label for="nickname">Enter Nickname:</label> <input type="text" placeholder="Nickname" id="nickname">
<div>
<label for="chatroom">Select Chatroom</label> <select size="1" id="chatroom">
<option value="1">Gaming Soc</option>
<option value="2">Pokemon Soc</option>
<option value="3">Fashion Soc</option>
<option value="4">Other Soc</option>
</select>
</div>
<button type="submit" id="enterRoom">Sign in</button>
</form>
</div>
<div class="container chat-wrapper">
<form id="do-chat">
<h2></h2>
<h4></h4>
<table id="response" ></table>
<fieldset>
<legend>Enter your message..</legend>
<div>
<input type="text" placeholder="Your message..." id="message" style="height:60px; width:1000px;"/>
<br />
<input type="submit" value="Send message" />
<button type="button" id="Exit-room">Exit Room</button>
</div>
</fieldset>
</form>
</div>
</center>
</body>
</html>
答案 0 :(得分:1)
请记住,JSP只是编写servlet的一种奇特方式,而整个东西都是模板。获取您添加到正文中的Java代码(从&lt;%@到out.println(message)
下面的%&gt;结束标记,并将其放在文件的第一行(<%@page
)之下。 out.println(message)
行。
然后,在<script>
块中,您可以通过以下方式将user
的值分配给JavaScript变量:
var user = "<%= user %>";
请小心并清理user
,确保其中没有引号或反斜杠。