新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
可能大多数Jsp开发员在写完程序测试通过后,不太会关注Jsp生成的Java文件,其实,通过Java代码,更能体现程序代码的真正含义,对进一步研究程序代码的后台运行情况是非常有帮助的。例如,用Jsp编写代码时,有时候用%! %,有时候用% %,加不加感叹号,(Jsp代码加感叹号与不加感叹号的区别)这类问题在教程里一般不会涉及到,从这里找到问题的突破口——Jsp生成的Java文件!所以,对于Jsp开发,有必要知道这点技能。
专注于为中小企业提供成都做网站、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业曲周免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
(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-INF中建立一个weblogic.xml文件。增加
看看web应用在Weblogic中生成临时文件中,有Java文件了。
jsp的组成: jsp = html + java脚本 + jsp标签(指令)
jsp中无需创建即可使用的对象一共有9个,被称之为9大内置对象。例如:request对象、out对象
3种java脚本:
%...%:java代码片段
%=...%:java表达式
%!...%:声明,用来创建类的成员变量和成员方法
jsp其实是一种特殊的Servlet,在html中通过java脚本就可以嵌入java代码,输出一些内容。
应该是用struts作的吧,a.java是一个action类,在action类中将获得值保存到request或session中,也就是request.setAttribute("xxx",xxxx);在c.jsp中获得request或session中的值,%=request.getAttribute(xxx);% 这样就把后面的xxxx的值获得了。