jsp发送ajax请求给另一个jsp处理

总所周知,servlet一般是用在操作与后台数据有关的逻辑处理,而jsp的本质就是一个servlet,是不是可以用一个jsp专门处理简单的、不需要涉及到数据库的请求?

这个想法仅供学习,实际上现在开发的思想越来越趋向于前后端分离,模块解耦合,所以也造成了jsp慢慢被取代了,因为页面上镶嵌大量的代码对于后期的维护来说是致命的

这里有两个jsp文件,一个是展示效果的jsp,一个处理数据的jsp。还需要将这两个文件部署在Tomcat上,这个过程很简单就不再累赘了

展示效果的jsp
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" session="false"%>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<title>表格</title>
</head>
<body>
	<table id="myTable" cellpadding="0" cellspacing="1">
		<thead>
			<tr>
				<th style="text-align: center; width: auto;">姓名</th>
				<th style="text-align: center; width: 120px;">生日</th>
				<th style="text-align: center; width: 300px;">操作</th>
			</tr>
		</thead>
		<tbody id="tableData">
		</tbody>
	</table>

	<script>
		//ajax从获取数据
		$(function () {
			$.ajax({
				type: "get",
				//这个路径需要根据自己部署的情况来写JavaWeb是项目的名字
				url: "http://localhost:8080/JavaWeb/data.jsp?flat=getFaiList",
				data: {},
				success: function (result) {
					list = result;
					var tableTtml = "";
					for(var i in list){
						tableTtml += "<tr>";
						tableTtml += "<td>" + list[i].name + "</td>";
						tableTtml += "<td>" + list[i].birthday + "</td>";
						tableTtml += "<td>";
						tableTtml += "<input type='button' value='上移' οnclick='moveUp(this)'>";
						tableTtml += "<input type='button' value='下移' οnclick='moveDown(this)'>";
						tableTtml += "<input type='button' value='删除' οnclick='remove(this)'>";
						tableTtml += "<input type='button' value='修改' οnclick='edit(this)'>";
						tableTtml += "<input type='button' value='保存' οnclick='keep(this)'>";
						tableTtml += "</td>";
						tableTtml += "</tr>";
					}
					$("#tableData").html(tableTtml);
				}
			})
		});
	</script>
</body>
</html>
第二个jsp
<%@page import="import java.util.*"%>
<%@page contentType="application/json;charset=UTF-8" language="java"%>

<%
    String output = "";

    String flat = request.getParameter("flat");
    if (flat == null) {
        return;
    }
    else if (flat.equals("getFaiList")) {
        output = getFaiList();
    }
    //返回结果
    out.print(output);
%>



<%!
	public String getFaiList(){
        List<Map<String, String>> list = new LinkedList<>();

        Map<String, String> map1 = new HashMap<>();
        map1.put("name","张三");
        map1.put("birthday", "2010.1.1");

        Map<String, String> map2 = new HashMap<>();
        map2.put("name","张三");
        map2.put("birthday", "2010.1.1");

        Map<String, String> map3 = new HashMap<>();
        map3.put("name","张三");
        map3.put("birthday", "2010.1.1");

        list.add(map1);
        list.add(map2);
        list.add(map3);
		return list.toString();
	}
	%>
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.引入jQuery库 在jsp页面中,首先要引入jQuery库。可以使用CDN或者本地引入,如: <!-- CDN引入jQuery库 --> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <!-- 本地引入jQuery库 --> <script src="js/jquery.min.js"></script> 2.编写ajax请求代码 在jsp页面中,可以使用jQuery的ajax方法来发送ajax请求ajax方法中可以设置url、type、data等参数。 示例代码: $.ajax({ url: "test.jsp", //请求的url地址 type: "post", //请求方式 data: { //请求参数 name: "张三", age: 18 }, dataType: "json", //返回数据格式 success: function (data) { //请求成功回调函数 console.log(data); }, error: function (xhr, status, error) { //请求失败回调函数 console.log(error); } }); 以上代码表示向test.jsp页面发送一条POST请求请求参数为{name:"张三",age:18},返回数据格式为json。请求成功后,会执行回调函数success,请求失败后会执行回调函数error。 3.在jsp页面中处理ajax请求jsp页面中,可以使用Java代码来处理ajax请求。可以使用request.getParameter()方法获取请求参数,使用response.getWriter()方法返回响应结果。 示例代码: <% String name = request.getParameter("name"); int age = Integer.parseInt(request.getParameter("age")); JSONObject json = new JSONObject(); json.put("name", name); json.put("age", age); response.setContentType("application/json;charset=utf-8"); response.getWriter().write(json.toString()); %> 以上代码表示获取请求参数name和age,然后将其封装成json格式返回给前端页面。在返回响应结果之前,需要设置响应头的ContentType为application/json;charset=utf-8,表示返回的数据是json格式的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值