简体   繁体   English

在Javascript中使用JSP值

[英]Using a JSP value in Javascript

So I have a chat system and currently a working login and registration, but even when the user logs in I still need them to enter a Nickname to chat with. 因此,我有一个聊天系统,并且当前可以正常登录和注册,但是即使用户登录,我仍然需要他们输入昵称才能与之聊天。

I want to change that and just use the login name they login with currently I just print the login name in the top right hand side I dont know who to use it with my javascript 我想更改它,只使用他们当前登录时使用的登录名,我只在右上角打印登录名,我不知道谁将其与我的javascript一起使用

The current code below just uses the value nickname taken from the login form I want to use the user_id instead and have the jaavscript pick that up 下面的当前代码仅使用从登录表单获取的昵称,我想改用user_id,并让jaavscript进行选择

Here is the Home.jsp 这是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>

Remember that JSPs are just a fancy way of writing servlets and that the whole thing is a template. 记住,JSP只是编写servlet的一种奇特的方式,整个过程都是一个模板。 Take the Java code you added to the body (from <%@ to the %> closing tag underneath out.println(message) and put it underneath the very first line in your file (the <%@page one). Remove the out.println(message) line. 把你加入到身体(从<%@到%>结束标记下的Java代码out.println(message) ,并把它放在第一行下在你的文件( <%@page之一)。取出out.println(message)行。

Then, in your <script> block, you can assign the value of user to a JavaScript variable by: 然后,在<script>块中,可以通过以下方式将user的值分配给JavaScript变量:

var user = "<%= user %>";

Just be careful and sanitize user , make sure that there are no quotes or backslashes in there. 请小心并清理user ,确保其中没有引号或反斜杠。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM