JSP中元素顺序的问题

Pet*_*ila 3 java jsp tomcat servlets

几天前,我开始学习Java EE和Web开发(首先是:Tomcat,Servlets,JSP).

所以现在我有了这个JSP页面代码.正如你所看到的,标题Hello World with JSP停留在<% ... %>块之前:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.*" %>

<html>
<body>
<h1 align=”center”>Hello World with JSP</h1>
<br>
<%
    List styles = (List)request.getAttribute("styles");
    for(Object style: styles){
    response.getWriter().println("<br>try: " + style);
    }
%>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

但是在结果网页结果中<% ... %>停留在Hello World with JSP标题之前.为什么?

截图

PS对不起术语,但我是网络开发的新手.

Rav*_*yal 5

JSP使用一个JspWriter被调用的隐式实例out来写入输出流.它与PrintWriter您收到的实例不完全相同,response.getWriter()因为它在实际写入流之前会执行一些额外的缓冲.

当你直接打印到PrintWriter你已经基本上写入流,然后JspWriter刷新缓冲区,因此你List会在"Hello World"HTML之前打印.

你需要,而不是什么是使用隐式JspWriter实例out

<%
    List styles = (List)request.getAttribute("styles");
    for(Object style: styles){
        out.println("<br>try: " + style);
    }
%>
Run Code Online (Sandbox Code Playgroud)

顺便说一句,现在不推荐使用JSP中的scriptlet <% %>.请查看JSP EL和JSTL标记.