繁体   English   中英

在JSP中使用Servlet

[英]Using A Servlet with JSP

这是我的JSP

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!doctype html>
<html>
<head>
    <script src='https://cdn.firebase.com/js/client/1.0.17/firebase.js'></script>
    <script src='https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js'></script>
    <link rel='stylesheet' type='text/css' href='../css/example.css'>
</head>
<body>
<div id='messagesDiv'></div>
<input type='text' id='nameInput' placeholder='Name'>
<input type='text' id='messageInput' placeholder='Message'>
<script>
    var myDataRef = new Firebase('https://shining-fire-5148.firebaseio.com/');
    $('#messageInput').keypress(function (e) {
        if (e.keyCode == 13) {
            var address1 = $('#nameInput').val();
            var address2 = $('#messageInput').val();
            myDataRef.push({Address1: address1, Address2: address2});
            $('#messageInput').val('');
        }
    });
    myDataRef.on('child_added', function(snapshot) {
        var message = snapshot.val();
        displayChatMessage(message.Address1, message.Address2);
    });
    function displayChatMessage(name, text) {
        $('<div/>').text(text).prepend($('<em/>').text(name+': ')).appendTo($('#messagesDiv'));
        $('#messagesDiv')[0].scrollTop = $('#messagesDiv')[0].scrollHeight;
    };
</script>
</body>
</html>

这是我的控制器程序包控制器;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

@WebServlet("/test.jsp")
public class MyServlet extends HttpServlet {


    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse
            response) throws IOException, ServletException {
        DateFormat dateFormat;
        PrintWriter out = response.getWriter();
        try {
            dateFormat = new SimpleDateFormat(request.getParameter("format"));
        } catch (Exception e) {
            dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:MM:ss");
        }
        String date = dateFormat.format(new Date());

        request.setAttribute("date",date);
//        request.getRequestDispatcher("/messages.jsp").forward(request, response);

    }
}

控制器将所有内容从我的页面中完全删除,为什么? 我只想将date变量传递给它,以便在我的jsp上可以调用$ {date} ...如何编写servlet以便不删除页面上现有的所有内容?

如果我理解你的问题,

控制器将所有内容从我的页面中完全删除,为什么?

代替

request.getRequestDispatcher("/messages.jsp").forward(request, response);

使用RequestDisplatcher.include(ServletRequest,ServletResponse)

request.getRequestDispatcher("/messages.jsp").include(request, response);

forward Javadoc中,

将请求从servlet转发到服务器上的另一个资源(servlet,JSP文件或HTML文件)。 此方法允许一个Servlet对请求进行初步处理,而另一种资源则可以生成响应。

include javadoc相比,

在响应中包括资源的内容(servlet,JSP页面,HTML文件)。 本质上,此方法启用程序化服务器端包含。

暂无
暂无

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

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