jsp中的java代码什么时候执行 jsp里面标签库是什么时候执行是在el表达式前还是后
大家好,今天小编来为大家解答jsp中的java代码什么时候执行这个问题,jsp里面标签库是什么时候执行是在el表达式前还是后很多人还不知道,现在让我们一起来看看吧!
jsp里面标签库是什么时候执行是在el表达式前还是后
每个jsp页面实质上都是一个servlet,tomcat本身会把jsp页面对应的URL映射到某个特定的
xml文件中,而非项目中WEB-INF下的web.xml文件,然后项目中的jsp页面编译后会形成两个文
件:一个是.class文件一个是.java文件,EL表达式中就是java代码,所以当jsp页面编译开始就被
解析,直接运行,然后才返回浏览器进行解析,显示视图.
结论就是:jsp中的标签库执行是在el表达式执行后......
下面是代码解析:
我使用的是java中ssm框架:
1.首先在Controller层中书写网页跳转代码,跳转细节就不写了
@RequestMapping("/test")
public String test(Map<String,String> map){
map.put("name","HELLO WORLD");//存入一个map值,在前端取出
return"home";//springmvc中的页面解析器获取后会进行页面跳转
}
2.在jsp层测试代码
上面<script>标签中写了一个if语句,如果标签先执行的话,el表达式${name}将不会显示出来,但是最后的结果如下:
这是跳转地址后所显示网页的源代码,大家明显的可以看出,${name}的值HELLO WORLD打印了出来,这就说明了我上面所说的结论:EL表达式先于Jap标签先执行.
jsp代码可以直接执行所以不会被翻译成java代码
因为tomcat服务器,当有请求访问JSP资源时,会将JSP页面翻译为java类,然后将整个java类进行动态的编译,编译成class文件,然后执行class文件,所以每个JSP在最终都会变成java类,所以能够书写Java代码。
注意:只有JSP页面被访问时,JSP页面才会被翻译成java文件,然后才会编译成class文件,然后进行加载执行。而且翻译只会翻译一次,所以第一次请求相对较慢。因为tomcat服务器,当有请求访问JSP资源时,会将JSP页面翻译为java类,然后将整个java类进行动态的编译,编译成class文件,然后执行class文件,所以每个JSP在最终都会变成java类,所以能够书写Java代码。
注意:只有JSP页面被访问时,JSP页面才会被翻译成java文件,然后才会编译成class文件,然后进行加载执行。而且翻译只会翻译一次,所以第一次请求相对较慢。
怎么控制jsp中java代码执行顺序
不管是JSP还action中甚至于其他语言,一般的代码执行顺序都是从上至下来执行的,否则整个逻辑就会乱掉;
如果你非要改变执行顺序,只能进行封装返回处理,比如执行了一半的程序,你可以调用之前封装好的方法,这个方法执行完毕后会继续执行接下来的代码;
求指教jsp中如何调用java代码
这是我改后的,你可以参考下。<%@ page language="java" import="java.util.*" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<%
int first=0;
int second=0;
if(request.getParameter("first")!=null&&request.getParameter("first").length()>0)
{
first=Integer.parseInt(request.getParameter("first"));
}
if(request.getParameter("second")!=null&&request.getParameter("second").length()>0)
{
second=Integer.parseInt(request.getParameter("second"));
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>求和JSP程序示例</title>
<script type="text/javascript">
function check()
{
if(this.document.forms[0].first.value.length==0)
alert("请输入第一个整数");
else if(this.document.forms[0].second.value.length==0)
alert("请输入第二个整数");
else if(isNaN(this.document.forms[0].first.value))
alert("输入的第一个数字必须是整型数据")
else if(isNaN(this.document.forms[0].second.value))
alert("输入的第二个数字必须是整型数据")
else
this.document.forms[0].submit();
}
</script>
</head>
<body>
<form action="Example.jsp" method="post">
<font size="2">
这个JSP页面的功能是求两个整数的和:<br>
请输入第一个数:<input type="text" name="first"/><br>
请输入第二个数:<input type="text" name="second"/><br>
这两个数的和为:<%=(first+second)%><br>
<input type="button" value="求和" onclick="check()"/><br>
</font>
</body>
</html>
我觉得你可以把这两个数的和的代码去掉,在点击求和时转到另一个页面,显示
求出来的和。这样简单很多,页面看起来也清晰易懂的
关于本次jsp中的java代码什么时候执行和jsp里面标签库是什么时候执行是在el表达式前还是后的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。