1 转发
转发:一般查询了数据之后,转发到一个jsp页面进行展示
req.setAttribute("list", list);
req.getRequestDispatcher("student_list.jsp").forward(req, resp);
2 重定向
重定向:一般添加、删除、修改之后重定向到查找所有
resp.sendRedirect("/student");
重定向的状态码是302
,重定向的地址最终是由浏览器发送这个请求
3 Get
- 采用URL请求路径传输参数,参数拼接在URL后面
- 参数传输过程中隐私性较差,直接在URL后面
- 路径可以容纳的数据有限,只能传递少量参数
- form表单请求默认就是get
http://localhost:8080/student?method=deleteById&id=23
http://localhost:8080/student?name=zhangsan&age=12&gender=男
Get方式传参,不是非得在form表单里面,可以手动写,在超链接的href里面直接在地址后面加?id=2
4 Post
- 采用实体内容传参数
- 参数在传输过程中不可见,隐私性好
- 实体内容专门用来传输数据,大小没有限制
- 使用:在form上加method=“post”
不管是Get方式还是POST方式传参数,后台代码获取参数的方式都是一样的。
req.getParameter("name");
5 乱码问题总结
5.1 数据库创建时候选择utf-8编码
连接数据库url:
jdbc:mysql://localhost:3306/java?useUnicode=true&characterEncoding=UTF-8
5.2 解决post请求乱码问题 method=“post”
在处理相关信息的Servlet中req.getAttribute("parameter")
之前加一句
req.setCharacterEncoding("UTF-8");
5.3 服务器响应浏览器的乱码问题
暂时没遇到,待补充例子。
resp.setContentType("text/html;charset=utf-8");
6 前台往后台发请求方式
- form表单
- 超链接
<a href="/student?method=deleteById&id=1">删除</a>
- location.href(JS脚本)
- ajax
7 代码
Day17_Student_CRUD