一、JSP引言

  JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计。它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

  作用:替代在java web开发中负责显得的Servlet。

二、jsp编程语法

  1、脚本

    a、输出脚本(表达式脚本)

      作用:用于把java表达式的结果,输出到页面中。

      语法:<%=java表达式%>

    b、声明脚本

      作用:用于声明(定义)变量或者函数。

      语法:<%!java语法  声明变量或者函数%>

      注意:声明脚本中声明的内容,只能用于输出脚本或者普通脚本。

    c、普通脚本

      作用:可以应用一切的java语法,除了定义函数。

      语法:<% java语法 %>

    注意:脚本与脚本、脚本与html标签是不能嵌套的。

  2、指令

    a、page

      <%@page  attribute1=value1 attrubute2=value2%>

      (1)language="java"

      (2)contentType="text/html;charset=UTF-8"

        其中的charset=UTF-8,表示的是服务器相应client浏览器的编码方式。

      (3)pageEncoding="UTF-8"

        这个代表的是jsp转换成java源文件的字符集编码。

      (4)import="包1,包2"

      (5)session="true|false"

        true(默认):如果当前没有创建session,则创建session,有session的话,直接使用该session。

        false:如果当前有session,则使用该session,如果没有,则不应用session。

      (6)isElIgnored="true|false"

        true:忽略EL表达式。

        false(默认):不忽略EL表达式。

      (7)errorPage

        指定当发生错误时,跳转到该页面。

      (8)isErrorPage

        指定当前页面是否为错误页面

    b、include

      静态包含,源代码包含,将不同的jsp页面整合到同一个页面中。

      不建议在开发中使用,风险多。

    c、taglib

      作用:引入jsp中的标签库

      <%@taglib uri="" prefix="">

  3、动作

    a、include

      动态包含,输出包含,推荐使用这种包含,代码没有入侵性。

    b、forward

      jsp之间的跳转(没有任何意义)

  4、内置对象

    在jsp中的输出脚本,或者普通脚本中,不用创建便可以直接使用的java对象。

    a、request

      相关操作:

        request.setAttribute();

        request.getAttribute();

        request.getContextPath();  //用于动态获取应用名

    b、response(不怎么用)

    c、session

      相关操作:

        session.setAttribute();

        session.getAttribute();

    d、application(ServletContext作用域)

    e、out

      用于页面输出,等价于<%= %>

    f、config(ServletConfig)

    g、exception

      这个内置对象只能使用在声明isErrorPage的jsp页面中,代表上一张发生错误的页面产生的异常。

    h、page

      代表当前的jsp页面,类似于this。

    i、pageContext

      (1)pageContext可以获得其他的8种内置对象

        pageContext.getRequest();

        pageContext.getResponse();

        pageContext.getOut();

        ....

      (2)pageContext是一个作用域(request,session,application)

        pageConetxt在本页面有效。

        pageContext.setAttribute();

        pageContext.getAttribute();

      (3)pageContext可以操作设置其他的作用域

        pageContext.setAttribute("key","value",PageContext.REQUEST_SCOPE);

        pageContext.getAttribute("key",PageConetxt.REQUEST_SCOPE);

        ...

        

  

浅谈JSP(一)的更多相关文章

  1. 【sql注入】浅谈JSP安全开发之SQL注入

    [sql注入]浅谈JSP安全开发之SQL注入 本文转自:i春秋社区 前言不管是用什么语言编写WEB应用程序,他们都或多或少有一些地方存在漏洞.如果你想知道漏洞的运行原理,和防御方案,那么请看完本篇文章 ...

  2. 浅谈JSP中include指令与include动作标识的区别

    JSP中主要包含三大指令,分别是page,include,taglib.本篇主要提及include指令. include指令使用格式:<%@ include file="文件的绝对路径 ...

  3. 浅谈JSP注释

    HTML注释 JSP文件是由HTML尿急和嵌入的Java程序片段组成的,所以在HTML中的注释同样可以在JSP文件中使用.注释格式:<!--注释内容--> <!-- 欢迎提示信息! ...

  4. 浅谈JSP(二)

    一.EL表达式 作用:从作用域(pageContext,request,session,application)中取值,并显示在页面中. 本质:用于替换输出脚本(<%= %>). 1.从作 ...

  5. 【The Most Important】浅谈JSP表单Post方式中文乱码问题

    首先祝大家鸡年吉祥!在这里我要说下这两天里这个问题困扰着我,大过年的心情都被烦扰的不好了,所以我带着兴奋的心情来赶快完成这篇博客,解决大家的问题.我的问题是post方式传递表单数据,Tomcat服务器 ...

  6. 浅谈 JSP & Servlet

    body { text-align: center; } div.develon { background-color: #cccccc; font-size: 20px; } 背景 相信大家都见过这 ...

  7. 【安全开发】浅谈JSP安全开发之XSS

    前言     大家好,好男人就是我,我就是好男人,我就是-0nise.在各大漏洞举报平台,我们时常会看到XSS漏洞.那么问题来了,为何会出现这种漏洞?出现这种漏洞应该怎么修复?目录     1.XSS ...

  8. jsp内置对象浅谈

    jsp内置对象浅谈 | 浏览:1184 | 更新:2013-12-11 16:01 JSP内置对象:我们在使用JSP进行页面编程时可以直接使用而不需自己创建的一些Web容器已为用户创建好的JSP内置对 ...

  9. 浅谈struts2之chain

    转自:http://blog.csdn.net/randomnet/article/details/8656759 前一段时间,有关chain的机制着实困绕了许久.尽管网上有许多关于chain的解说, ...

随机推荐

  1. 【Win7激活工具2013版下载】适用于旗舰版、家庭高级版等所有版本32/64位 OEM激活

    虽然现在Win8已经发布了,但是身边总是还有一些朋友在用着Win7系统,而近期微软频繁的推送补丁包,导致之前的那些激活都失效了.找了网络上很多工具,之前的那些有的已经不能用了,激活不了,今天就推荐一些 ...

  2. python 读取utf8文件

    有时候默认是gbk编码,但是要读取utf8文件,所以会出现decode 错误. 使用codecs模块: import codecs file = codecs.open('filename','r', ...

  3. poj2390

    #include <stdio.h> #include <stdlib.h> int main() { int r,m,y,i; scanf("%d %d %d&qu ...

  4. openstack 开发step-by-step

    Set up your Open Stack There are several ways to deploy openstack, Devstack is easily for developer ...

  5. JAVA Layout

    /**  * baidu :组件不会直接放到框架上,而是放在若干个面板上,这些面板再放到窗格上?  * 实际上在JFrame上可直接添加Jbutton  *   * BorderLayout Flow ...

  6. HDU 3037 Saving Beans(Lucas定理的直接应用)

    解题思路: 直接求C(n+m , m) % p , 由于n , m ,p都非常大,所以要用Lucas定理来解决大组合数取模的问题. #include <string.h> #include ...

  7. DataUml Design 教程6-DataUML Design 1.1版本号正式公布(支持PD数据模型)

    从DataUML Design正式公布到如今有两个月了.因为近期比較忙,到如今才公布1.1版本号. 以后本人会一直坚持不断完好DataUML Design软件,希望广大程序员们多多支持. 一.1.1版 ...

  8. Objective-C时间戳转换的转换和时间

    什么是时间戳? 时间戳(timestamp),一般是一个字符序列.唯一地标识某一刻的时间.数字时间戳技术是数字签名技术一种变种的应用. 思考:简单来讲就是依据文件hash加密后生成的摘要和时间生成的时 ...

  9. 如何查看npm配置?

    npm config list //查看基本配置 npm config list -l //查看所有配置 npm本地安装与全局安装有什么区别? npm install grunt // 本地安装,则是 ...

  10. web - 清除浮动

    最理想的方式为 伪类 + content : 例如 div:after{content:"";display:block;clear:both;} div{zoom:1;} 另外, ...