how2j.cn

步骤 1 : 页面元素   
步骤 2 : <%=%>和 <%out.println()%>   
步骤 3 : for循环   

步骤 1 :

页面元素

jsp由这些页面元素组成:
1. 静态内容
就是html,css,javascript等内容
2. 指令
以<%@开始 %> 结尾,比如<%@page import="java.util.*"%>
3. 表达式 <%=%>
用于输出一段html
4. Scriptlet
在<%%> 之间,可以写任何java 代码
5. 声明
在<%!%> 之间可以声明字段或者方法。但是不建议这么做。
6. 动作
<jsp:include page="Filename" > 在jsp页面中包含另一个页面。在包含的章节有详细的讲解
7. 注释 <%-- -- %>
不同于 html的注释 <!-- --> 通过jsp的注释,浏览器也看不到相应的代码,相当于在servlet中注释掉了
页面元素
步骤 2 :

<%=%>和 <%out.println()%>


<%="hello jsp"%>

就相当于

<%out.println("hello jsp");%>


out是jsp的隐式对象,可以直接使用。一共有9种隐式对象,请参考 隐式对象 章节

注: <%=%> 不需要分号结尾,<%%> 需要以分号结尾,和java代码一样
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.*"%> <%="hello jsp"%> <br> <% out.println("hello jsp");%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8" import="java.util.*"%>

<%="hello jsp"%>
<br>
<% out.println("hello jsp");%>

步骤 3 :

for循环

结合for循环在jsp里输出html是常见的做法。 只是第一次这么写会稍显别扭

下面是一段实例,以供参考
for循环
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.*"%> <% List<String> words = new ArrayList<String>(); words.add("today"); words.add("is"); words.add("a"); words.add("great"); words.add("day"); %> <table width="200px" align="center" border="1" cellspacing="0"> <%for (String word : words) {%> <tr> <td><%=word%></td> </tr> <%}%> </table>


HOW2J公众号,关注后实时获知布最新的教程和优惠活动,谢谢。


问答区域    
2018-09-03 for循环这段代码怎么理解
shusy41
关于 J2EE-JSP-页面元素 的提问



<% for (String word : words) {%> <tr> <td><%=word%></td> </tr> <% } %> 这段代码怎么理解,把整个for循环写入<% %>标签中,然后for循环{},那么%> 怎么理解??
<%
for (String word : words)
 {%>
 
<tr>
    <td><%=word%></td>
</tr>
 
<%
}

%>

							


1 个答案

Faith123 答案时间:2018-09-05
我认为整个代码分为三段,第一段是java代码,<% for (String word : words) { %> 这里以<% 开始 %>结束,只把这一块java代码括起来 第二段是html代码 第三段又是java代码<% } %> ,把这个 } 单独括起来 我只是这样理解的,不知道是正确的不




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2018-03-28 站长,您那个80端口的Tomcat有毒啊
MilkPD
关于 J2EE-JSP-页面元素 的提问



用80端口的那个时好时坏,Servlet总是打不开,jsp也打不开,换成8080端口的就可以,我检查了N遍代码确认无误后,试了好几个项目都是这样。
//这是HelloServlet的代码
import java.io.IOException;
import java.util.Date;
 

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
public class HelloServlet extends HttpServlet{
	
	public void init() throws ServletException {
		// TODO Auto-generated method stub
		System.out.println("看这儿,HelloServlet被启动了");
	}
 
    public void doGet(HttpServletRequest request, HttpServletResponse response){
    	
        try {
            response.getWriter().println("<h1>Hello Servlet!</h1>");
            response.getWriter().println(new Date().toLocaleString());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
     
}

//这是Tomcat上的一些信息
信息: Starting Servlet Engine: Apache Tomcat/7.0.64
看这儿,HelloServlet被启动了
三月 28, 2018 9:17:13 上午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-bio-8009"]
三月 28, 2018 9:17:13 上午 org.apache.catalina.startup.Catalina start
信息: Server startup in 436 ms

							


1 个答案

马鹿 答案时间:2018-05-10
有可能是因为80端口被占用




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2018-01-27 为什么传参后还是2016,而不是2017?
2017-10-25 求助
2017-04-06 下面这两种 结果相同吗?
2016-10-23 坑了。。




提问之前请登陆
关于 J2EE-JSP-页面元素 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 902680467
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: http://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图