get与post区别
比较项 | Get | post |
---|---|---|
参数出现在URL中 | 是 | 否 |
长度限制 | 有 | 无 |
安全性 | 低 | 高 |
URL可传播 | 是 | 否 |
request对象
作用
处理客户端请求
方法
方法名称 | 说明 |
---|---|
String getParameter(String name) | 根据表单组件名称获取提交数据 |
String[ ] getParameterValues(String name) | 获取表单组件对应多个值时的请求数据 |
void setCharacterEncoding(String charset) | 指定每个请求的编码 |
RequestDispatcher getRequestDispatcher(String path) | 返回一个RequestDispatcher对象,该对象的forward( )方法用于转发请求 |
示例
<% //读取用户名和密码 String name = request.getParameter("name"); String pwd = request.getParameter("pwd"); ……//HTML页面 //读取复选框选择项 String[] channels = request.getParameterValues("channel"); if (channels != null) { for (String channel : channels) { out.println(channel); } } %>
内置对象
请求对象:request 输出对象:out 响应对象:response 应用程序对象:application 会话对象:session 页面上下文对象:pageContext 页面对象:page 配置对象:config 异常对象:exception
解决字符集编码问题
post方式
<% // 以POST方式提交数据时 // 设置读取请求信息的字符编码为UTF-8 request.setCharacterEncoding("UTF-8"); // 读取用户名和密码 String name = request.getParameter("name"); String pwd = request.getParameter("pwd"); %>
get方式1
<% // 以GET方式提交数据时 // 读取用户名和密码 String name = request.getParameter("name"); // 对请求数据进行字符编码 name = new String(name.getBytes("ISO-8859-1"), "UTF-8"); %>
get方式2
在Tomcat目录结构\conf\server.xml中设置字符集 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
response对象
作用
响应客户请求并向客户端输出信息
方法
void sendRedirect(String location)//重定向,客户端将重新发送请求到指定的URL
重定向与转发
转发
作用
转发是在服务器端发挥作用,将同一请求在服务器资源之间进行传递
特点
客户端浏览器的地址栏不会显示转向后的地址</