jsp传参,接受值为null
jsp中用ajax想另一个jsp传参,运行时接收的地方执行了两次,第一次接收到参数,第二次为null
传参的Ajax
<script>
function jump1(){
var start=document.getElementById("start").value;
var destination=document.getElementById("destination").value;
var flag="2";
$.ajax({
type:"POST",
dataType:"text",
url:"show.jsp",
async:false,
data: {
"start":start,"destination":destination,"flag":flag
},
success:function (){
let flag="2";
location.replace("show.jsp");
window.sessionStorage.setItem('flag', flag);
},
error:function (){
},
})
}
</script>
接收的jsp的部分代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.Objects" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="show.css">
</head>
<div class="container">
<script>
var flag = window.sessionStorage.getItem('flag');
console.log(flag);
</script>
<%
String start=request.getParameter("start");
String destination=request.getParameter("destination");
String flag=request.getParameter("flag");
System.out.println(start);
System.out.println(destination);
System.out.println(flag);
Connection conn= null;
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ticket","root","root");
} catch (SQLException ignored) {
}
try{
Class.forName("com.mysql.cj.jdbc.Driver");
System.out.println("驱动添加成功,可以进行数据库连接了");
}catch (Exception e){
System.out.println("驱动加载失败,错误原因是:"+e.getMessage());
}
执行结果
最终执行还是查询失败,应该是最终获取的参数为null
在网上看到执行两次是因为idea执行一次,tomcat服务器执行了一次,所以猜测是服务器没有拿到参数,不知道怎么解决
运行配置:idea,tomcat9,mysql