`

37、servlet--jsp

    博客分类:
  • mvc
 
阅读更多
     不管是JSP还是Servlet,虽然都可以用于开发动态web资源。但由于这2门技术各自的特点,在长期的软件实践中,人们逐渐把servlet作为web应用中的控制器组件来使用,而把JSP技术作为数据显示模板来使用。其原因为,程序的数据通常要美化后再输出:让jsp既用java代码产生动态数据,又做美化会导致页面难以维护。让servlet既产生数据,又在里面嵌套html代码美化数据,同样也会导致程序可读性差,难以维护。因此最好的办法就是根据这两门技术的特点,让它们各自负责各的,servlet只负责响应请求产生数据,并把数据通过转发技术带给jsp,数据的显示jsp来做。

JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。
  在JSP 2.0规范中共定义了三个指令:
page指令
Include指令
taglib指令

page指令用于定义JSP页面的各种属性,无论page指令出现在JSP页面中的什么地方,它作用的都是整个JSP页面,为了保持程序的可读性和遵循良好的编程习惯,page指令最好是放在整个JSP页面的起始位置。
JSP 2.0规范中定义的page指令的完整语法:
<%@ page 
    [ language="java" ] 
    [ extends="package.class" ] 
    [ import="{package.class | package.*}, ..." ] 
    [ session="true | false" ] 
    [ buffer="none | 8kb | sizekb" ] 
    [ autoFlush="true | false" ] 
    [ isThreadSafe="true | false" ] 
    [ info="text" ] 
    [ errorPage="relative_url" ] 
    [ isErrorPage="true | false" ] 
    [ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-8859-1" ] 
    [ pageEncoding="characterSet | ISO-8859-1" ] 
    [ isELIgnored="true | false" ] 
15 %>



在JSP中对于包含有两种语句形式:
@include指令
<jsp:include>指令

@include指令

  @include可以包含任意的文件,当然,只是把文件的内容包含进来。

  include指令用于引入其它JSP页面,如果使用include指令引入了其它JSP页面,那么JSP引擎将把这两个JSP翻译成一个servlet。所以include指令引入通常也称之为静态引入。

语法:<%@ include file="relativeURL"%>,其中的file属性用于指定被引入文件的路径。路径以“/”开头,表示代表当前web应用。

include指令细节注意问题:

被引入的文件必须遵循JSP语法。
被引入的文件可以使用任意的扩展名,即使其扩展名是html,JSP引擎也会按照处理jsp页面的方式处理它里面的内容,为了见明知意,JSP规范建议使用.jspf(JSP fragments(片段))作为静态引入文件的扩展名。
由于使用include指令将会涉及到2个JSP页面,并会把2个JSP翻译成一个servlet,所以这2个JSP页面的指令不能冲突(除了pageEncoding和导包除外)。
 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 3 <html>
 4   <head>
 5     <title>jsp的Include指令测试</title>
 6   </head>
 7   
 8   <body>
 9   <%--使用include标签引入引入其它JSP页面--%>
10     <%@include file="/jspfragments/head.jspf" %>
11     <h1>网页主体内容</h1>
12     <%@include file="/jspfragments/foot.jspf" %>
13   </body>
14 </html>

很有可能报异常的地方:
  1、重复定义变量
 


   使用@include可以包含任意的内容,文件的后缀是什么都无所谓。这种把别的文件内容包含到自身页面的@include语句就叫作静态包含,作用只是把别的页面内容包含进来,属于静态包含。

   jsp:include指令为动态包含,如果被包含的页面是JSP,则先处理之后再将结果包含,而如果包含的是非*.jsp文件,则只是把文件内容静态包含进来,功能与@include类似。<jsp:include>标签是动态引入, <jsp:include>标签涉及到的2个JSP页面会被翻译成2个servlet,这2个servlet的内容在执行时进行合并。
  而include指令是静态引入,涉及到的2个JSP页面会被翻译成一个servlet,其内容是在源文件级别进行合并。



jsp的内置对象:
1 pageContext javax.servlet.jsp.PageContext
2 request         javax.servlet.http.HttpServletRequest
3 response javax.servlet.http.HttpServletResponse
4 session         javax.servlet.http.HttpSession
5 application javax.servlet.ServletContext
6 config         javax.servlet.ServletConfig
7 out         javax.servlet.jsp.JspWriter
8 page         java.lang.Object
9 exception java.lang.Throwable


jsp的常用标签有以下三个

<jsp:include>标签 
<jsp:forward>标签 
<jsp:param>标签

<jsp:forward>标签用于把请求转发给另外一个资源,此跳转属于服务器端跳转。只要是服务器端跳转,则地址栏永远没有变化。
当使用<jsp:include>和<jsp:forward>标签引入或将请求转发给其它资源时,可以使用<jsp:param>标签向这个资源传递参数。
   <jsp:param name="parameterName" value="parameterValue|<%= expression %>" />
   <jsp:param>标签的name属性用于指定参数名,value属性用于指定参数值。在      <jsp:include>和<jsp:forward>标签中可以使用多个<jsp:param>标签来传递多个参数。
接收parm:
<h2><%=request.getParameter("parm1")%></h2>
<h2><%=request.getParameter("parm2")%></h2>
分享到:
评论

相关推荐

    servlet-api.jar和jsp-api.jar文件

    Servlet-api.jar和jsp-api.jar是Java Web开发中两个非常重要的库文件,它们包含了Servlet和JSP(JavaServer Pages)的相关API,使得开发者可以构建动态Web应用程序。这两个文件通常由Java EE(Enterprise Edition)...

    servlet-api.jar 和jsp-api

    servlet-api.jar 和jsp-api 工具jar包

    jsp-api.jar和servlet-api依赖包

    这两个API,即`jsp-api.jar`和`servlet-api.jar`,是开发基于Java的Web应用时不可或缺的库文件。 ### JSP API `jsp-api.jar`包含了JSP规范定义的所有接口和类,使得开发者能够创建、管理以及执行JSP页面。以下是...

    jsp-api.jar和servlet-api.jar

    jsp-api.jar和servlet-api.jar,jsp-api.jar和servlet-api.jarjsp-api.jar和servlet-api.jarjsp-api.jar和servlet-api.jar,实用

    servlet-api.jar 下载地址

    Servlet-api.jar是Java Web开发中不可或缺的一个库文件,它包含了Servlet和JSP(JavaServer Pages)规范的API接口。这个库文件主要用于与Web服务器交互,处理HTTP请求,并生成响应。在本文中,我们将深入探讨Servlet...

    servlet-api和jsp-api

    4. `javax.servlet.jsp.jsp-api`包下的其他接口和类:例如`PageContext`,它为JSP页面提供了一个统一的接口,可以访问Servlet和JSP的上下文对象。 在Tomcat 7.0环境中,servlet-api.jar和jsp-api.jar是运行Java Web...

    jsp-api.jar(2.3)与servlet-api.jar (3.1)

    标题提及的"jsp-api.jar(2.3)与servlet-api.jar (3.1)"指的是两个关键的Java Web开发库,它们是JavaServer Pages(JSP)和Servlet技术的API实现。JSP 2.3是用于创建动态网页的Java平台标准,而Servlet 3.1则是...

    activation.jar、jsp-api.jar、servlet-api.jar、mail.jar

    JSP-api.jar包含了JSP规范定义的接口和类,比如`javax.servlet.jsp.*`包下的类,这些类和接口提供了页面指令、脚本元素、表达式语言等JSP特性。开发者可以使用这些API来创建自定义标签库或者实现自定义JSP页面生命...

    servlet-api 各种版本

    Servlet-API是Java Servlet技术的核心部分,它定义了服务器端与客户端之间交互的一系列接口和类。这个压缩包包含了Servlet-API的多个版本,分别是2.2、2.3、2.4、2.5以及3.0。每个版本的发布都带来了新的功能和改进...

    javax.servlet---jsp-api jar包

    `javax.servlet` 和 `jsp-api` 是Java服务器端编程的重要组成部分,主要用于构建动态Web应用程序。这两个API是Java Servlet和JavaServer Pages(JSP)技术的核心接口和类库,由Java Community Process (JCP)制定并由...

    javax-servlet-api-3.0.1.jar

    7. `javax.servlet.jsp`包:虽然不是直接包含在Servlet API中,但通常与Servlet一起使用,提供了一个用于创建动态网页的简化的编程模型,如JSP页面。 在实际开发中,`javax-servlet-api-3.0.1.jar`通常作为项目的...

    使用jsp-servlet-service-dao四层结构完成用户信息的增删改查操作

    本文将深入探讨如何使用jsp-servlet-service-dao四层架构来实现这样的系统,包括用户信息的增删改查功能,以及权限控制机制。 首先,让我们理解这四层架构的每一层: 1. **JSP(JavaServer Pages)**:JSP是Java ...

    javax.servlet-api-4.0.1.jar

    《深入理解Java Servlet API 4.0.1与JSP自定义标签》 在Web开发领域,Java Servlet API和JSP(JavaServer Pages)是两个不可或缺的重要组件。本篇文章将聚焦于`javax.servlet-api-4.0.1.jar`这个jar包,它是Servlet...

    增加servlet-api.jar和jsp-api.jar依赖(csdn)————程序.pdf

    在本文中,我们将详细介绍如何在IntelliJ IDEA这样的集成开发环境(IDE)中添加`servlet-api.jar`和`jsp-api.jar`的依赖。 首先,`servlet-api.jar`包含了Servlet规范定义的所有接口和类,如`javax.servlet.Servlet...

    jsp所需jar包 1.jsp-api.jar; 2.servlet-api.jar

    jsp所需jar包 1.jsp-api.jar; 2.servlet-api.jar

    大家经常会用到的jar包servlet-api.jar&jsp-api.jar

    在Java Web开发中,`servlet-api.jar`和`jsp-api.jar`是非常关键的库文件,它们包含了Servlet和JSP(JavaServer Pages)的核心API,是每个Java Web开发者必备的基础工具。这两个jar包通常由Java EE(Enterprise ...

    Jsp-Servlet-JavaBean企业事务管理系统

    《Jsp-Servlet-JavaBean企业事务管理系统》 在IT领域,JSP(JavaServer Pages)、Servlet和JavaBean是构建Web应用程序的三大核心技术,尤其在企业级应用开发中扮演着重要角色。本系统——"Jsp-Servlet-JavaBean企业...

    servlet-api-2.5.jar和jsp-api-2.1.jar

    使用servlet-api-2.5.jar和jsp-api-2.1.jar,开发者可以在不依赖特定应用服务器实现的情况下,编写兼容Servlet 2.5和JSP 2.1标准的Web应用程序。这两个库通常作为依赖项添加到项目中,确保服务器端的正确运行和功能...

Global site tag (gtag.js) - Google Analytics