zoukankan      html  css  js  c++  java
  • JSP的部分知识(一)

    通过Servlet进行整个网站的开发是可以的。 不过在Servlet中输出html代码,特别是稍微复杂一点的html代码,就会给人一种很酸爽的感觉。 
    如果能够直接使用Html代码,然后在html中写java代码,就好了~ 
    JSP ... 就可以干这个事情。

     
    在web目录下下新建一个文件hello.jsp
    <%@page contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" import="java.util.*"%>
    。。。。。(省略)
    你好 JSP
     
    <br>
     
    <%=new Date().toLocaleString()%>

    代码解释:

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

    是JSP的<%@page指令;

    contentType="text/html; charset=UTF-8" 

     相当于response.setContentType("text/html; charset=UTF-8"); 通知浏览器以UTF-8进行中文解码;

    pageEncoding="UTF-8" 

     如果jsp文件中出现了中文,这些中文使用UTF-8进行编码;

    import="java.util.* 

     导入其他类,如果导入多个类,彼此用,逗号隔开,像这样 import="java.util.*,java.sql.*"

    <%=new Date().toLocaleString()%>

    输出当前时间,相当于在Servlet中使用response.getWriter()进行输出

    response.getWriter().println(new Date().toLocaleString());

    为什么JSP可以在html中运行java代码? 这是因为JSP被转译成了Serlvet

    执行过程

    1. 把 hello.jsp转译为hello_jsp.java
    2. hello_jsp.java 位于
    d: omcatworkCatalinalocalhost\_orgapachejsp
    3. hello_jsp.java是一个servlet
    4. 把hello_jsp.java 编译为hello_jsp.class
    5. 执行hello_jsp,生成html
    6. 通过http协议把html 响应返回给浏览器

    hello_jsp.java 为什么是Servlet

    我们说HelloServlet是一个Servlet,不是因为它的类名里有一个"Servlet",而是因为它继承了 HttpServlet
     
    打开转译hello.jsp 后得到的hello_jsp.java,可以发现它继承了类
    (D: omcatworkCatalinalocalhost\_orgapachejsphello_jsp.java)
    org.apache.jasper.runtime.HttpJspBase
    而HttpJspBase 继承了HttpServlet
    所以我们说hello_.jsp.java 是一个Servlet
     
     
     
    页面元素
     
    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中注释掉了

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

    <%="hello jsp"%> 

    就相当于

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

    out是jsp的隐式对象,可以直接使用。

    注: <%=%> 不需要分号结尾,<%%> 需要以分号结尾,和java代码一样

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

     

    for循环

    结合for循环在jsp里输出html是常见的做法。 只是第一次这么写会稍显别扭
    下面是一段实例,以供参考

    <%
        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>

     原文地址:http://how2j.cn/k/jsp/jsp-tutorials/530.html

     
  • 相关阅读:
    【Codeforces 475F】—Meta-universe(Set)
    【Codeforces 475F】—Meta-universe(Set)
    【UOJ #79】—一般图最大匹配(带花树)
    【UOJ #79】—一般图最大匹配(带花树)
    【NOIp2019模拟】题解
    【NOIp2019模拟】题解
    涉及到的业务逻辑总结
    2016-9-14
    Spring MVC
    2016-9-12
  • 原文地址:https://www.cnblogs.com/churujianghudezai/p/11470980.html
Copyright © 2011-2022 走看看