<%
response.getOutputStream().write("123".getBytes());
%>

新建一个 Web Project 项目,jsp 文件新建在 WebRoot 目录下,在 Body 节点中加入以上代码,发布。

输出的页面如下:

<html><head></head><body>123</body></html>

在路径 X:\apache-tomcat-7.0.77\work\Catalina\localhost\day08\org\apache\jsp\index_jsp.java 下可以找着此文件

打开后会看到上面的 jsp 文件实现原理,相当于一个 Servlet。

需要注意的是: response.getOutputStream().write() 之后的语句都没有输出到浏览器。

<%
Date date = new Date();
out.write(date.toLocaleString());
%>

平时 jsp 中使用这段代码更为合适,此处 out = pageContext.getOut();


page 指令用于定义 JSP 页面的各种属性,无论 page 指令出现在 jsp 页面中的什么地方,它作用的都是整个 jsp 页面,一般放在 jsp 页面起始位置。
JSP 2.0 规范中定义的 page 指令的完整语法:
<%@ page
[language="java"]  // 定义此页面由 java 语言编写
[extends="package.class"]  // 
[import="{package.class | package.*}, ..."]  // 默认会导入 import="java.util.*"
[session="true | false"]  // 默认为 false ,此时可用 response.getSession() 引出。
[buffer="none | 8kb | sizekb"]  // 默认页面使用 8kb 缓存
[autoFlush="true | false"]  // 
[isThreadSafe="true | false"]  //
[info="text"]  //
[errorPage="relative_url"]  // 此处为相对路径。以 "/" 开头,表示Web应用的根目录,否则相对于当前页面。
[isErrorPage="true | false"]
[contentType="mimeType[;charset=characterSet]" | "text/html;charset="UTF-8"]
[pageEncoding="characterSet | UTF-8"]
[isELIgnored="true | false"]
%>
也可以在 web.xml 文件中使用 <error-page> 元素为整个 web应用 设置错误处理页面,
其中 <exception-type> 指定异常类的完全限定名,<location> 指定以 "/" 开头的错误处理页面的路径。
 
JSP 脚本有 表达式 和 语句块 两种
表达式(expression): <%= 变量 或 表达式 %> 此时没有 ; 来表示结束
语句块(scriptlet):<% 代码块 %> 此代码块使用 java 语法。
多个语句块中的代码属于同一作用域,可以相互访问。单个语句块中的  Java 语句可以不完整,但多个脚本片断组合后的结果必须是完整的 Java 语句。

JSP 声明:
JSP 页面编写的所有代码,都会翻译到 servlet 的 service 方法中,而 java 代码被翻译到 _jspService 方法的外面。
语法:

<%!
语句块
%>

此处多了一个 ! 符号,它可用于定义 JSP 页面转换成的 Servlet 程序的静态代码块、成员变量和方法。

多个静态代码块、变量和函数可以定义在一个 Jsp 声明中,也可以分别单独定义在多个 Jsp 声明中。

Jsp 隐式对象的作用范围仅限于 Servlet 的 _jspService 方法,所以在 JSP 声明中不能使用这些隐式对象。

[转][Java]Jsp入门的更多相关文章

  1. 自学 Java 怎么入门

    自学 Java 怎么入门? 595赞同反对,不会显示你的姓名     给你推荐一个写得非常用心的Java基础教程:java-basic | 天码营 这个教程将Java的入门基础知识贯穿在一个实例中,逐 ...

  2. Jsp入门学习笔记

    #Jsp入门 一.JSP基础语法 1.JSP指令: page inlcude taglib 2.JSP注释: a.html注释: <!-- abcdefghijklmn --> b.jsp ...

  3. JSP入门:介绍什么是JSP和Servlet(转)

    转自:http://developer.51cto.com/art/200907/134506.htm JSP入门:什么是jsp? JSP(Java Server Pages)是由Sun Micros ...

  4. JSP入门必读

    JSP基础知识:转自老师上课梳理的笔记,希望对大家有所帮助.有什么不妥当的地方还望大家批评指正. 特别适用于JSP入门的人员使用.1.JSP [1] 简介1.1 HTML    HTML擅长显示一个静 ...

  5. Java web 入门知识 及HTTP协议详解

     Java  web  入门知识 及HTTP协议详解 WEB入门 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资 ...

  6. 九、JSP入门(1)

    JSP入门 1 JSP概述 1.1 什么是JSP JSP(Java Server Pages)是JavaWeb服务器端的动态资源.它与html页面的作用是相同的,显示数据和获取数据. 1.2 JSP的 ...

  7. .NET/ASP.NET/C#/WCF/SQL Server/My SQL/Java/JSP/JDBC/Spring/Spring MVC/PHP/Python/Ruby/Shell/Agile/CSS/HTML/HTTP/Unix/Linux大量PDF书籍/电子书籍下载, Effective Java 下载

    223本电子书籍,囊括了.NET/ASP.NET/C#/WCF/SQL Server/My SQL/Java/JSP/JDBC/Spring/Spring MVC/PHP/Python/Shell/A ...

  8. day11(jsp入门&Cookie&HttpSession&一次性图片校验码)

    day11 JSP入门   1 JSP概述 1.1 什么是JSP JSP(Java Server Pages)是JavaWeb服务器端的动态资源.它与html页面的作用是相同的,显示数据和获取数据. ...

  9. JSP入门之自定义标签

    第二部分简单讲解:主要讲解el表达式,核心标签库.本章主要讲解:自定义标签库:404页面,505页面,错误页面配置方法 全部代码下载:链接 1.JSP自定义标签: 自定义标签是用户定义的JSP语言元素 ...

随机推荐

  1. SpringXML方式配置bean的懒加载lazy-init

    lazy-init(懒加载),表示该bean在容器初始化的时候不进行初始化. 例如: <bean name="role1" class="com.fz.entity ...

  2. MoreEffectiveC++Item35(异常)(条款9-15)

    条款9 使用析构函数防止内存泄漏 条款10 在构造函数中防止内存泄漏 条款11 禁止异常信息传递到析构函数外 条款12 理解"抛出一个异常''与"传递一个参数"或调用一个 ...

  3. react 生命周期图

    1. react v16 版本生命周期 2. react v17 (还未发布), 生命周期将被改动,下面红框的部分就是会被删除的部分,注意调整!

  4. JMter请求参数中文显示乱码

    如上图所示,上传的参数为中文的时候,显示不出来,解决方法如下: 1.进入Jmter安装文件bin文件夹,找到文件jmeter.properties 2.在该文件找到jsyntaxtextarea.fo ...

  5. word-break:break-all 打散文字,强制对齐

  6. restful 协议 +面试

    restful 协议:面向资源软件架构风格 API 定义 一些预先定义的函数,目的是能够让应用程序或开发人员能够具有访问指定网络资源的能力,而无需关心访问的远吗以及内部的工作机制细节. RESTful ...

  7. Buildroot 外部编译器配置

    /****************************************************************************** * Buildroot 外部编译器配置 ...

  8. 【C++】STL之队列queue

    1.头文件 # include<queue> 2.成员函数 empty() 当队列为空时,返回true size() 返回队列内元素个数 front() 返回队首元素 back() 返回队 ...

  9. 【java多线程】用户线程和守护线程的区别

    java中线程分为两种类型:用户线程和守护线程.通过Thread.setDaemon(false)设置为用户线程:通过Thread.setDaemon(true)设置为守护线程.如果不设置次属性,默认 ...

  10. LG1155 双栈排序

    题意 Tom最近在研究一个有趣的排序问题.如图所示,通过2个栈\(S_1\)和\(S_2\),Tom希望借助以下4种操作实现将输入序列升序排序. 操作a 如果输入序列不为空,将第一个元素压入栈\(S_ ...