5.07每日总结
二、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("出错了");
}
})