一、前端页面传值给Servlet

(1)form表单

jsp页面编写代码:

//method:传值方式,“get”或“post”,
//get方法:传值可以url中对用户可见,不利于数据的安全性。
//post方法:传值方式用户不可见,利于数据安全。
//action:Servlet文件在项目中的地址。
<form method="post" action="servlet/RegisteredServlet">

    //要传输的值,以input为例
    //“name”:后台Servlet获取值得表示
    <input type="text" placeholder="用户名" name="Name"/>
	<input type="Password" placeholder="密码" name="Password"/>

    //使用按钮来递交
    <input type="submit" value="登录"/>
</form>

Servlet中使用:“request.getParameter("Name");”获取对应的数值。""内的值与jsp页面中name标签的值一致。

(2)url

 <a>标签的 href属性:其值得内容与action内容一样。例如“servlet/SelectServlet?Name=值”。

Servlet中使用:“request.getParameter("Name");”获取。

二、Servlet传值给jsp页面

(1)request.setAttribute()方法

Servlet代码:

//要传递的值,例如Error
request.setAttribute("Error", Error);

//要传递的页面路径,例如/jsp/Registered.jsp
//"forward":实现跳转
request.getRequestDispatcher("/jsp/Registered.jsp").forward(request,response);

页面中使用${传递的值}获取。

(2)json

Servlet中将数据分装为json格式。

Servlet代码:

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
		StringBuffer json = new StringBuffer();
		String a = "\"";
		json.append("[");
		try {
			response.setContentType("text/json");
			DeviceDAO device = new DeviceDAO();
			ResultSet rs = device.selectDevices();
			while (rs.next()) {
				json.append("{");
				json.append(a).append("ID").append(a).append(":").append(a).append(rs.getString("ID")).append(a).append(",");
				json.append(a).append("Num").append(a).append(":").append(a).append(rs.getString("Type")).append(a).append(",");
				json.append(a).append("Address").append(a).append(":").append(a).append(rs.getString("Address")).append(a).append(",");
				json.append(a).append("BuildTime").append(a).append(":").append(a).append(rs.getString("Time")).append(a).append(",");
				json.append(a).append("IsWork").append(a).append(":").append(a).append(rs.getString("Status")).append(a);
				json.append("},");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		//删除最后一次循环中出现的那个逗号
		json.deleteCharAt(json.length() - 1);
		json.append("]");
		PrintWriter outputStream = response.getWriter();    
		System.out.println(json);
		//搞完把json打印在本Servlet上,之后前台页面读这页的内容就可以了
		outputStream.println(json.toString());
		outputStream.close();
	}

页面使用Ajax获取:

jsp代码:

$.ajax({
				url:"servlet/SeekdeviceServlet",
				type:"post",
				contentType: "text/json,charset=utf-8",
				dataType:"text",
				success : function(data) {
					data = eval(data);
					//构造前先清空源节点
					document.getElementById("data").innerHTML = "";
					//设置一个文件碎片
					var frag = document.createDocumentFragment();
					//frag.appendChild(tr);
					//利用循环构造表格的每一行,把其放在文件碎片上面
					for (var i = 0; i < data.length; i++) {
						var tr = document.createElement("tr");
						tr.innerHTML = "<td>" + data[i].ID + "</td><td>"
								+ data[i].Num + "</td><td>"
								+ data[i].Address + "</td><td>"
								+ data[i].BuildTime + "</td><td>"
								+ data[i].IsWork + "</td>";
						var td = document.createElement("td");
						td.innerHTML = "<button οnclick='deleteRow(this);' style='text-align: center;border-left: 1px solid black;border-top: 1px solid black;'>删除</button>";
						td.className = "ListStyle";
						tr.appendChild(td);
						frag.appendChild(tr);
					}
					//此时文件碎片已经是一张表了,直接放网页就可以了
					document.getElementById("data").appendChild(frag);
				},error : function() {
					alert("出错了");
				}
				
			})

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐