重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
jsp的组成: jsp = html + java脚本 + jsp标签(指令)
创新互联是一家专业提供富顺企业网站建设,专注与成都网站建设、网站设计、H5响应式网站、小程序制作等业务。10年已为富顺众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
jsp中无需创建即可使用的对象一共有9个,被称之为9大内置对象。例如:request对象、out对象
3种java脚本:
%...%:java代码片段
%=...%:java表达式
%!...%:声明,用来创建类的成员变量和成员方法
jsp其实是一种特殊的Servlet,在html中通过java脚本就可以嵌入java代码,输出一些内容。
%!
%是在service方法的外面定义变量和写入语句的,也就是在servlet中定义变量,而我们知道servlet在被container加载后只生成一个对象而已,然后所有的请求都在service方法里面被处理。所以如果你在servlet中定义了变量,那么所有的请求可以共用这一个变量了。
最简单的应用就是,你要计算有多少人访问了这一个JSP页面,那么就可以把变量i定义在servlet中,然后在JSP文件里面加一句i++;,这样就可以统计有多少人访问了你这个页面了。
至于%
%这个嘛,就是在service方法里啦。
JSP显示Java代码?这个问题…
这样告诉你把,JSP本质就是一个servlet,输出的就是一张HTML网页,能显示任何HTML能显示的东西。你要显示Java代码的话,直接把Java代码粘贴到JSP中就可以了。
但是,如果你的意思是在JSP中使用Java代码,那么可以用% 这里填Java代码 %的方式。如果是要显示Java变量中的值,可以用%=变量名%。如果是访问request、session等 内置对象中的对象的值,可以用el表达式,如${对象名.属性}
希望可以帮到你,有疑问可以随时追问
JSP中,嵌入的JAVA代码,可以直接引用JAVA的类
%
out.println(new java.util.Date());
%
~
jsp文件中存在一些java代码是在所难免的,不然也不用使用jsp了,纯html就好了嘛,但对于题目中的“一部分”是指多少并未可知,如果太多确实会有影响的,所以一般不建议这样做,影响大致如下所列:
1、根据MVC思想,JSP属于VIEW层,不宜存在太多java的代码,view层应该只有布局、样式相关的代码,jsp中包含太多java代码就和MVC思想有出入了。
2、可读性差,大多公司中,JSP是有专业的前台人员进行维护的,但这些前台人员,只需要具备HTML、JS、CSS、JQUERY等前端技术,一般都不懂得Java代码,在jsp中写太多java代码,会使可读性变差,不便于前台人员维护。
3、不便于维护。把多数java代码写在jsp页面中,而更多的代码还是在后台的java文件中的,这样在开发过程中就需要多个文件一起看,出了问题也要一起修改,这要造成了维护代码的负担。
4、不易于调试。其实更确切的说是不能调试。jsp文件中是无法加断点的,这样写出的代码如果存在问题却编译通过的话,想找起来会相当麻烦。
也正因为会有上述所说的这些影响,但开发者又有时需要在jsp中输入java代码,所以才有jstl、el表达式等技术出现可以在jsp页面替换掉那些复杂的java代码。
jsp中写java代码成为scriptlet,写在%%之间就可以了。
Scriptlet是包含在%和%之间的Java代码,在Web容器处理JSP页面时执行,通常会产生输出,并将输出发送到客户的输出流里。Scriptlet除了不能定义类和方法、不能用import引入类外,可以包含任何有效的Java代码。(Java类在Jsp外部定义,可用page指令的import属性引入,也可以Java Bean的形式使用。Java中的方法必须在类内定义,但Jsp允许使用声明定义方法。窗体(GUI)设计代码在Jsp中无效)。
Scriptlet例程:
%@ page contentType="text/html; charset=gb2312" %
html
head
titleJSP基本语法/title
/head
body
h1Scriptlet示例页面/h1
table border="1"
caption乘法口诀表/caption
%-- 在网页中嵌入Java代码的主要方法 --%
%
for(int i=1; i=9; i++) {
int j=1;
//out是JSP的一个内部对象,print方法用于向客户端输出数据
out.println("tr");
for(; j=i; j++) {
out.print("td" + j + "*" + i + "=" + j*i + "/td");
}
for(;j=9;j++) {
out.print("td /td");
}
out.println("/tr");
}
%
/table
/body
/html