1.jsp页面中嵌入java代码

jsp的脚本元素
jsp的指令元素
jsp的动作元素

1.1 jsp的脚本元素(直接嵌入java代码)

 第一种:表达式(expression)形式:<%= %>例如:<%="hello" %><%=1+1 %><%=s.getName() %>将来翻译到java文件中的位置:【_jspService方法中的out.print(..)里面的参数.】例如上面那几个例子会翻译成out.print("hello");out.print(1+1);out.print(s.getName());所以System.out.prntln()这个方法的参数可以写什么,那么我们这个jsp页面中表达式里面就可以写什么.注意:在jsp中的表达式里面不需要加;号。第二种:脚本(scriptlet)形式:<% ... %>或者<%....%>例如:<%Student s = new Student();String name = "tom";String username = s.getName();List<String> list = new ArrayList<String>();list.add("hello")%>将来翻译到java文件中的位置:【脚本中的代码将来会被直接翻译到_jspService这个方法中.】在一个普通的方法中我们可以写什么样的代码,那么在脚本中就可以写什么样的代码.注意:在脚本中所写的代码,代码的最后是要加上;号的.因为我们在一个方法里面所写的没一句代码后面都是要加;号。在脚本声明的变量,我们是可以在表达式里面使用的,但是要注意要先声明变量再使用变量.只要查看脚本和表达式分别翻译到java文件中的位置,就可以很清楚的认识到这一点.第三种:声明(declaration)形式:<%!.....%>例如:<%!private String name;public String go(){System.out.println("hello world "+name);return "this is go()";}%>将来翻译到java文件中的位置:【直接将声明中的代码翻译到java文件里面所定义的类中。】所以我们直接可以在一个类中写什么,就可以在声明中写什么.(一般在声明中会去定义一些类中的成员变量或者方法)注意:这里面的代码,定义变量的时候要加;号,定义方法的时候不用加;号,这是和我们写一个java类语法是一样的。

1.2 jsp的指令元素
jsp的指令是给jsp引擎看的,让jsp引擎在翻译jsp页面成java文件的时候,知道需要注意哪些地方的设置.比如页面中的编码、页面中脚本里面所用的编程语言、翻译的java文件中需要引入哪些其他包下的java类等等.

 写法: <%@指令名字  属性="值" ..  %>指令包含page include taglib三种page指令:1.表示当前页面中的编程语言是java,目前这个属性值只能写javalanguage="java"2.在当前页面中要引入哪些包下的类.import="java.util.HashMap"import="java.util.HashMap,java.sql.Connection"3.设置jsp页面文件保存时候所用的编码pageEncoding="UTF-8"4.设置服务器将来使用io把jsp页面内容一行一行的输出给浏览器的时候,使用什么编码向浏览器输出.contentType="text/html; charset=UTF-8"5.设置jsp页面被翻译成java文件的时候,java文件中的类要继承那个父类.这个属性不用设置,jsp引擎会给它一个默认的父类去继承的.extends=""6.设置当前这个jsp页面是否支持session对象的使用.默认是支持的.session="true"7.设置jsp页面是否是线程安全的.isThreadSafe="true"8.如果a.jsp页面中设置了errorPage="b.jsp",那么a.jsp页面在运行的时候一旦出错,就会自动跳转到b.jsp里面.errorPage=""9.如果一个页面中设置了isErrorPage="true",那么就表示这个页面是用来专门显示错误信息的页面.然后在这个页面中就能够使用到隐藏对象exception来显示出错误的信息了.(需要使用jsp的内置对象)isErrorPage=""include指令:<%@include file="" %>作用:在当前页面中使用include指令可以把另外一个页面的内容引入到当前页面。一个页面包含/引入另外一个页面有俩种方式:静态包含 动态包含。这个include指令就属于静态包含静态包含特点:例如a.jsp页面中静态包含了b.jsp页面,那么在翻译期间,jsp引擎在翻译a.jsp成为一个a_jsp.java文件的时候,发现jsp页面中有include指令,这时候jsp引擎就会把被包含的页面b.jsp中内容原封不动的拿到a_jsp.java中,然后用io输出出去.taglib指令:作用:在当前jsp页面中引入一些特殊的标签库.比如jstl标签库、struts2标签库、spring标签库等等【实际上都是封装好的Java代码】.

1.3 jsp的动作元素

 1.<jsp:useBean id="s" class="com.briup.bean.Student" scope="page"></jsp:useBean>相当于代码:<%Student s = null;s = (Student)pageContext.getAttribute("s");if(s==null){s = new Student();pageContext.setAttribute("s",s);}%>2.<jsp:setProperty property="name" value="tom" name="s"/>相当于代码:<%Student s = (Student)pageContext.getAttribute("s");s.setName("tom");%>3.<jsp:getProperty property="name" name="s"/>相当于代码:<%Student s = (Student)pageContext.getAttribute("s");out.write(s.getName());%>4.页面跳转<jsp:forward page="target.jsp"></jsp:forward>5.跳转的同时还可以传参数<jsp:forward page="target.jsp?name=tom"></jsp:forward>或者<jsp:forward page="target.jsp"><jsp:param value="tom" name="name"/></jsp:forward>6.这个动作元素专门是传参数使用的<jsp:param value="tom" name="name"/>7.动态包含<jsp:include page="foot.jsp"><jsp:param value="lisi" name="name"/></jsp:include>注意不能使用url?name=tom这种方式传动态包含特点:在把jsp文件翻译成java文件的期间,动态包含并不会去把被包含的页面原封不动的拿过来,而是会把动态包含这个标签翻译成一个方法的调用,将来运行页面调用到这个方法的时候才会去拿被包含页面的内容.同时还可以给动态包含的页面传参数.静态包含是不能传参数的。注意:总结和对比后,分析出动态包含和静态包含各自的特点,以及哪一个执行的效率更快一些.8.使用jsp的动作元素向浏览器输出一个标签<jsp:element name="font"><jsp:attribute name="color">blue</jsp:attribute><jsp:body>hello world</jsp:body></jsp:element>这个效果相当于在页面代码中直接写上<font color="blue">hello world</font>或者:<%out.println("<font color='blue'>hello world</font>");%>

jsp页面中嵌入java代码相关推荐

  1. JSP中嵌入java代码方式以及指令

    JSP中嵌入java代码的三种方式: (1)声明变量或方法 :  <%! 声明; %> :慎重使用,因为此方法定义的是全局变量 (2)java片段(scriptlet):  <% j ...

  2. 如何避免JSP文件中的Java代码?

    本文翻译自:How to avoid Java code in JSP files? I'm new to Java EE and I know that something like the fol ...

  3. 编写1个JSP页面,在JSP页面中使用Java程序片输出26个小写的英文字母表。

    编写1个JSP页面,在JSP页面中使用Java程序片输出26个小写的英文字母表. <%@ page language="java" contentType="tex ...

  4. jsp文件里java代码的作用_如何使用JSP 2避免JSP文件中的Java代码?

    小编典典 自从2001年标签库(例如JSTL)和EL(表达语言,那些东西)的诞生以来,在JSP中确实不建议使用scriptlet(那些东西).${} scriptlet的主要缺点是: 可重用性:您无法 ...

  5. 将图片转成base64字符串并在JSP页面显示的Java代码

    *本事例主要讲了如下几点:  * 1:将图片转换为BASE64加密字符串.  * 2:将图片流转换为BASE64加密字符串.  * 3:将BASE64加密字符串转换为图片. * 4:在jsp文件中以引 ...

  6. java图片文件字符串jsp_将图片转成base64字符串并在JSP页面显示的Java代码

    *本事例主要讲了如下几点: * 1:将图片转换为BASE64加密字符串. * 2:将图片流转换为BASE64加密字符串. * 3:将BASE64加密字符串转换为图片. * 4:在jsp文件中以引用的方 ...

  7. JSP页面中常用四种标签

    JSP页面常用四种标签: 1. EL表达式:  ${} 2. jstl表达式(sun apache): <%@ taglib prefix="c" uri="htt ...

  8. jsp 调用java_jsp中调用java代码小结

    原封不动的传送给客户端有两个小例外: 1. 如果想传送 , 由于它跟jsp的特殊符号一致, 所以必须使用转义字符转义, 2. 如果想传送注释, 在 jsp 编辑页面中出现, 而在生成的html文档不出 ...

  9. JSP 页面中java代码 ** can not be resolved to a type

    有时候我们需要直接在页面上写一段java代码,然后在定义一个变量来接收,然后在别的页面直接引用,但是我们经常遇到 ** can not be resolved to a type的异常,今天百度了很长 ...

最新文章

  1. Linux下怎么诊断网站性能异常
  2. centos打架django + mysql环境
  3. 汇编语言之寄存器(内存访问)
  4. #include 中的stat.h文件到底在哪个目录下面?
  5. windows 堆栈溢出简易测试代码
  6. 排序算法(5)----堆排序
  7. 同一个html自动跳转分页,一个页面有多个分页,相互影响
  8. win10高危服务_IPv6用户危险了!Win10出现严重安全漏洞
  9. 家里蹲太孤单?用 Python 画一只单身狗 | 原力计划
  10. tf.cast()的用法(转)
  11. 教你写页游自动化Python脚本,取色,大漠识别和后台点击
  12. 删除进程 linux,linux批量删除进程
  13. Windows10从 微软商店 安装 linux(ubuntu)
  14. matlab如何返回上一步
  15. django中的models的常用字段及属性
  16. PS基础-day03套索,魔棒,裁剪,修复画笔工具组,蒙版
  17. 网页 浏览器兼容性问题的解决
  18. java 大数据以及Hadoop相关概念介绍
  19. 介绍|三大前端框架之Vue
  20. 时序动作定位 | 面向时序行为定位任务的无监督预训练

热门文章

  1. Spring Boot + Bootstrap + FreeMarker分页 (JPA, Liquibase, H2)
  2. php fopen 文件路径,php – 使用fopen()将文件写入子目录
  3. 计算机操作系统感悟随笔--虚拟存储管理
  4. 计算机操作系统感悟随笔--文件和文件系统
  5. 算法:塔防游戏中的路径寻找
  6. js获取button的id属性
  7. python turtle五角星_Python利用turtle绘制五角星
  8. 怎么用电脑制作gif动态图片?教你快速做GIF的妙招
  9. mysql排序 latin,MySQL排序规则:latin1_swedish_ci Vs utf8_general_ci
  10. Unity碰撞检测的必要条件