jsp页面中的Onclick事件及servlet实现弹框点击确认后跳转页面。

加载jsp页面的顺序

jsp中的Java代码是服务端代码;
js代码是客户端代码。
java是在服务器端运行的代码,jsp在服务器的servlet里运行,而JavaScript和HTML都是在浏览器端运行的代码。所以服务器端先执行,执行后将信息传给客户端。
.jsp实际上也是java一个类,html中的标签通过这个类中的一个方法通过out.write()显示在页面上,而.jsp文件中通过<%... %>方式穿插的java代码则是直接写在该类中。

加载jsp页面的执行顺序是java->jsp->js,加载jsp的时候先编译java代码,有错误的话直接报错,没错的话会执行jsp代码,最后加载js代码。

测试代码如下:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
	<button id="btn" Onclick="test()">click</button>
	<script type="text/javascript">
		function test(){
			alert("这是一个弹窗");
			System.out.println("输出测试");//无法识别但不影响代码运行
			<%System.out.println("输出到控制台");%>
		}
	</script>
</body>
</html>

ps:第二行代码直接在js中写java语句,不加<%…%>虽然不会影响代码的运行但是当你把页面跑到浏览器按F12检查页面元素会发现:
在这里插入图片描述

自动触发且再次触发无效

在.jsp文件中编写java语句在编译时都会立即执行所以onclick事件不用单击就直接触发了,但是当再次点击按钮会发现java语句无效。
[video(video-cLzO1ely-1677597220219)(type-csdn)(url-https://live.csdn.net/v/embed/279176)(image-https://video-community.csdnimg.cn/vod-84deb4/5cb2b400b77771ed90400764a0fd0102/snapshots/43454822162f4b15bf04504b854d5518-00002.jpg?auth_key=4831195886-0-0-8a6fd4632d7e23ca964376d6e53d8bbe)(title-jsp点击事件测试)]

解决办法

将按钮改成一个submit的imput标签,通过表单提交,将需要实现的java代码写在Servlet中。
或者
通过表单提交一个标志flag到本页面,通过request.getParameter()获取该标志,然后利用该标志的值判断是否执行java代码

servlet中实现弹框且点击确认后跳转页面

在做一个jsp和servlet的项目时,由于动态生成信息的页面时servlet,则需要出现弹框且点击后实现页面跳转,最开始直接写了

//错误code
PrintWriter out = response.getWriter();
out.print("alert('success!')");

发现直接输出了符号串:alert(‘success’),并未实现弹窗功能,百度了解之后更改代码。

PrintWriter out = response.getWriter();
out.print("<script>alert('登录success!');window.location.href='跳转页面'</script>");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值