1.url传值
优点:传递参数较少时,操作方便,简单明了
缺点:参数会暴露,不利于保密,不适合多数据传输
.jsp文件代码
<a href="#" onclick="updateById(${user.id})">更新</a>
.servlet文件代码
String sql ="select * from user where id = "+id;
List<Map<String, String>> show =
mysqlUtil.show(sql, new String[] { "id", "account", "pwd" });
User u = new User();
for (Map<String, String> m : show) {//循环查出来的数据 整合到List<User> list
u.setId(Integer.parseInt(m.get("id")));
u.setAccount(m.get("account"));
u.setPwd(m.get("pwd"));
}
request.setAttribute("user", u);
request.getRequestDispatcher("update.jsp").forward(request, response);
2.form表单
form表单提交,当点击submit时,action="servletAction" method='get/post'
其中action中写后台接口,表单必须是submit,参数会把input框name属性和value属性按key/value的形式传到后台指定地址
提交方式get和post的主要区别在于传递的参数会不会在URL地址显示
<form action="StudentAddServlet" method="post" role="from">
<input type="text" name="id" placeholder="编号">
<input type="text" name="stuno" placeholder="学号">
<input type="text" name="name" placeholder="姓名">
<input type="text" name="gender" placeholder="性别">
<input type="text" name="age" placeholder="年龄">
<button type="submit" >提交</button>
</form>
3.JQuery中的ajax提交
数据多时构建json对象,转换成json格式的string后传递给后台
$.ajax({
type: 'POST',
url: 'TestJsonServlet',
data: {"id":id,"name":name},
dataType:"JSON",
success: function(data,msg){
console.log(data);
show(data.data);
},
error:function(xhr,errorMsg,error){
alert(xhr.status);
alert(errorMsg);
}
});
.servlet文件中使用字符串拼接构建json对象
String sql="select * from user";
List<Map<String,String>> show = mysqlUtil.show(sql,
new String[] {"id","account","pwd"});
String json="{\"code\":\"200\",\"data\":[";
for(Map<String,String>map:show) {
String id = map.get("id");
String account = map.get("account");
String pwd = map.get("pwd");
json +={\"id\":\""+id+"\",\"account\":\""+account+"\",\"pwd\":\""+pwd+"\"},";
}
json=json.substring(0,json.length()-1);
json += "]}";
response.getWriter().write(json);