NO.64 servlet工作相关
1. post请求
(1)哪一些情况下,浏览器会发送post请求
设置表单的method="post"
(2)特点
a.不会将请求参数显示在浏览器地址栏,相对安全
注:并不会对请求参数加密。
b.会将请求参数添加到实体内容里面,所以,可以提交大量数据给服务器。
2.如何读取请求参数值?
(1)request提供的getParameter方法。
String getParameter(String paramName);
注:a.如果请求参数名写错,会返回null值。
b.如果不填写任何数据,会获得空字符串。
(2)request提供的getParameterValues
String[] getParameterValues(String paramName);
注:a.当有多个请求参数名相同时,用该方法。
b.多选框,如果不选择任何选项,浏览器不会发送任何数据给服务器。
3. 处理表单中文参数乱码问题
(1)为什么会有乱码?
表单提交时,浏览器会对中文参数值进行编码。服务器端默认会使用iso-8859-1来解码。
注:会使用表单所在的页面打开时使用的字符集来编码。
(2)如何解决?
1)情形1 表单提交方式为post
request.setCharacterEncoding("utf-8");
注:要加到所有的request.getParameter方法前面。
2)情形2 表单提交方式为get
设置配置文件Connector处增加URIEncoding="utf-8"
注: 只针对get请求有效。
练习:写一个Servlet,将所有员工信息以表格形式展现出来
step1.在EmployeeDAO类当中,添加
List findAll()
step2.测试findAll()
step3.写ListEmpServlet。
先将所有员工找出来: List employees = dao.findAll()
然后输出表格:
out.println("<table>")
ID姓名xxxx
for(int i = 0;i < employees.size(); i++){
Employee e = employees.get(i);
"<tr><td>"+ e.getId() + "</td>"+"..."+"</td><tr>"
}
out.println("</table>");
代码示例:
可以访问数据库某表的所有数据,并呈表格形式