J2EE基础教程(2):JSP初探

最原始的东西实际上是servlet。实际上二者的作用是相同。再使用servlet的时候,利用动态输出流产生html代码。而这样就导致了java和html语言的混杂。jsp将他们分开了一点,改为了在html语言中插入java的内容。静态部分无需java控制,可以交给html工程师。
实际上,jsp是servlet的一种简化。jsp也会由系统自动编译为servlet。

实例一
我们先来看一个基本的jsp页面的代码。首先,我们看到jsp是和html混在一起的。
现在浏览器都有浏览元代码的功能,然而,在源代码里,我们是找不到和jsp相关的代码的,而只能找到和html相关的代码。

<%@ page language="java" import="java.util.*"%>
<html>
  <head>    
    <title>My JSP 'index.jsp' starting page</title>
  </head>  
  <body>
    This is my JSP page. <br>
    <%!Date date = new Date(); %>>
    <%=date.toString() %>
  </body>
</html>

首先解释下整个的执行过程
(1)你的浏览器发送一个http请求给服务器。
(2)web服务器(tomcat)识别除了这个请求,并将这个请求传递给jsp引擎。
(3)jsp引擎读取jsp文件,将他们转化为servlet。将所有jsp元素转化为java代码。然后将servlet编译成可以执行的类,并将原始请求发送给servlet引擎。
(4)web服务器调用servlet引擎,并执行servelet类。在执行中产生html网页,并将其上交给web服务器。
(5)web服务器将静态网页返回。
整个过程可以简化为如下图
这里写图片描述

实例二
然后我们来看下面的代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>菜鸟教程(runoob.com)</title>
    </head>
    <body>
        Hello World!<br/>
        <%
        out.println("你的 IP 地址 " + request.getRemoteAddr());
        System.out.println("你的 IP 地址 " + request.getRemoteAddr());
        %>
        <p>
        今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
        </p>
    </body>
</html>

(1)注意到两种println并不相同,一个是打印在网页里,一个是打印在命令行里。另外一种输出到网页里的方式是采用<%= %>
(2)page指令使用来对当前页面进行说明的。有若干可选属性,说明如下
buffer 指定out对象使用缓冲区的大小
autoFlush 控制out对象的 缓存区
contentType 指定当前JSP页面的MIME类型和字符编码
errorPage 指定当JSP页面发生异常时需要转向的错误处理页面
isErrorPage 指定当前页面是否可以作为另一个JSP页面的错误处理页面
extends 指定servlet从哪一个类继承
import 导入要使用的Java类
info 定义JSP页面的描述信息
isThreadSafe 指定对JSP页面的访问是否为线程安全
language 定义JSP页面所用的脚本语言,默认是Java
session 指定JSP页面是否使用session
isELIgnored 指定是否执行EL表达式
isScriptingEnabled 确定脚本元素能否被使用
除此之外还有include指令,使用的方法如下
<%@ include file=”文件相对 url 地址” %>
这些统称为指令元素,指令元素在编译阶段起作用。

实例三
再看下面这一段代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
    <meta charset="utf-8">
        <title>菜鸟教程(runoob.com)</title>
    </head>
    <body>

        <h2>Jsp 使用 JavaBean 实例</h2>
        <jsp:useBean id="test" class="s1.TestBean" />

        <jsp:setProperty name="test" 
                    property="message" 
                    value="菜鸟教程..." />

        <p>输出信息....</p>

        <jsp:getProperty name="test" property="message" />

    </body>
</html>

主要讲解jsp的动作元素和如何使用javabean对应的javabean代码如下

package s1;
public class TestBean {
    private String message = "菜鸟教程";
    public String getMessage() {
        return(message);
    }
    public void setMessage(String message) {
        this.message = message;
    }
}

有如下常见的java动作元素
jsp:include 在页面被请求的时候引入一个文件。
jsp:useBean 寻找或者实例化一个JavaBean。
jsp:setProperty 设置JavaBean的属性。
jsp:getProperty 输出某个JavaBean的属性。
jsp:forward 把请求转到一个新的页面。
jsp:plugin 根据浏览器类型为Java插件生成OBJECT或EMBED标记。
jsp:element 定义动态XML元素
jsp:attribute 设置动态定义的XML元素属性。
jsp:body 设置动态定义的XML元素内容。
jsp:text 在JSP页面和文档中使用写入文本的模板
区别于指令元素,动作元素在执行阶段起作用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值