jsp输出脚本
1. JSP中声明,表达式和脚本的区别
1. 表达式
表达式: 是对数据的表示,系统将其作为一个值进行计算。
语法:<%= expression %>
例如:<%=user.getName() %>
表达式的本质:在将JSP页面转换成Servlet后,使用out.print()将表达式的值输出。这样如果user.getName()的返
回值是"liky", 那么实际上在servlet中就将转换成out.print("liky");
因此这里要注意以下两点:
1) 如果表达式是调用一个方法,那么这个方法必须要有返回值,而不应是void,也就是说void getName()这样的
方法是不能被调用的。
2) 在方法的后面不能有分号;例如<%=getName();%>这是不允许的。
2. 脚本
脚本:就是在<% %>里嵌入java代码,这里的Java代码和我们一般的Java代码没有什么区别,所以每一条语句
同样要以";"结束,这和表达式是不相同的
语法:<% code %>
脚本的本质:就是将代码插入到Servlet的service()方法中。
2. 3.jsp中的脚本标识包含哪些元素它们的作用及语法格式是什么
jsp中的脚本标识包含的元素有如下5种,以及语法格式:
1、JSP注释
<%--*****--%> 是不输出到客户端的注释符。
<%!--*****--%> 是输出到客户端的注释符。
2、指令元素
<%@ page contentType=”text/html” %> 设置指定页面内容类型
<%@ include ...%> 在翻译阶段引入一个文件
<%@ taglib ... %> 声明一个页面使用的,包含自定义行为的标记库。
3、行为元素
<jsp:useBean> 使一个JavaBeans组件在该页中可用
<jsp:setProperty> 设置JavaBeans的属性值
<jsp:forward> 将对请求的处理转交给一个servlet或JSP页面
4、脚本元素
<%this is a scriptlet%> 嵌入脚本代码
表达式元素
<%= this is an expression%> 嵌入java表达式
5、方法声明
<%! String a="1";%> 用于在JSP页面的实现类中声明变量和方法
3. 怎样查看Jsp编译后生成的Java文件
可能大多数Jsp开发员在写完程序测试通过后,不太会关注Jsp生成的Java文件,其实,通过Java代码,更能体现程序代码的真正含义,对进一步研究程序代码的后台运行情况是非常有帮助的。例如,用Jsp编写代码时,有时候用<%! %>,有时候用<% %>,加不加感叹号,(Jsp代码加感叹号与不加感叹号的区别)这类问题在教程里一般不会涉及到,从这里找到问题的突破口——Jsp生成的Java文件!所以,对于Jsp开发,有必要知道这点技能。
(1):对于Tomcat而言,JSP页面生成的Java文件放在work路径对应的Web应用下。例如:
D:/Tomcat5.5/webapps/test/test.jsp
生成对应的java文件
D:/Tomcat5.5/work/Standalone/localhost/test/
对于Resin而言,JSP页面生成的Java文件放在WEB-INF/work路径对应的Web应用下。例如:
D:/Resin3.1.6/webapps/test/demo/test.jsp
生成对应的java文件
D:/Resin3.1.6/WEB-INF/work/_demo/_test.java/
(2):Jsp与Servlet的关系
1、JSP文件必须在JSP服务器内运行。
2、JSP文件必须生成Servlet才能执行。
3、每个JSP页面的第一个访问者速度很慢,因为必须等待JSP编译成Servlet。
4、JSP页面的访问者无须安装任何客户端,甚至不需要可以运行Java的运行环境,因为JSP页面输送到客户端的是标准HTML页面。
5、JSP页面的静态内容、JSP脚本都会转换成Servlet的xxxService()方法,类似于自行创建Servlet时service()方法。
6、JSP声明部分,转换成Servlet的成员部分。所有JSP声明部分可以使用private,protected,public,static等修饰符,其他地方则不行。
7、JSP的输出表达式(<%= ..%>部分),输出表达式会转换成Servlet的xxxService()方法里的输出语句。
8、九个内置对象要么是xxxService()方法的形参,要么是该方法的局部变量,所以九个内置对象只能在JSP脚本和输出表达式中使用。
从上述第5、6点,其实就可以解释Jsp代码加感叹号与不加感叹号的区别的问题。
(3):在Tomcat下指定Jsp生成的Java文件路径:
当需要自定义Jsp生成的Java文件位置时,可以通过如下两种方法来实现:
方法1.在tomcat的配置文件server.xml(路径:tomcat路径\conf下面)里,找到:<Context docBase="D:/workspace/icinfo/trunk/web" path="" reloadable="false" debug="0" crossContext="true" workDir="D:/workspace/icinfo/trunk/web/WEB-INF/lib/CommonPKI/META-INF/work"/>,添加如上的workDir=""属性,""里写你的要看到.java/.class的路径.
方法2.到conf/Catalina/localhost下找到你项目的.xml培植文件,找到方法1中的代码,后续操作同方法1.
(4):保留Weblogic 中Jsp编译后生成的Java文件:
在weblogic.xml中加入:
看看web应用在Weblogic中生成临时文件中,有Java文件了。
4. 在jsp中的java脚本中输出数据时可以使用什么对象的pri
在jsp中的java脚本中输出数据时可以使用out对象的print。根据相关信息查询显示,在jsp中的java脚本中输出数据时可以使用out对象的print,是用来输出的。