请求方式Get和Post的区别
来源:互联网 发布:仓库管理java源码下载 编辑:程序博客网 时间:2024/05/21 05:24
上午学了web项目常用的两种请求方式,做一个小结。
并通过一个Servlet例子来说明两者的区别。
一、Get请求方式
1、当需要向服务器请求制定的资源时使用的方法
2、它不应该用于一些会造成副作用的操作中(在网络应用中用它来提交请求是一种常见的错误用法)3、什么情况浏览器发送Get请求
- — 在地址栏输入一个地址
- — 点击链接
- — 表单默认提交
4、Get请求方式的特点
- 会将请求数据添加到请求资源路径的后面,所以只能提交少量的数据给Web服务器
- 请求参数显示在浏览器地址栏上,不安全。
(这两点不明不要紧,在后面的项目中还会提到。)
二、Post请求方式
1、向服务器提交需要处理的数据,这些数据写在请求的内容里,可以导致新资源的产生和已有资源的更新。
2、什么情况浏览器发送Post请求
— 设置表单method属性为Post
3、Post 请求方式的特点
- 请求参数添加到实体内容中,可提交大量数据
- 不会将请求参数显示在浏览器地址栏,相对安全。
三、案例实战
1、处理POST请求中的中文参数值
步骤
step1: 新建hello1.jsp页面并增加meta标记
新建hello1.jsp页面如下所示:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>Servlet program</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--增加的meta标记,使页面支持中文 --><meta http-equiv="content-type" content="text/html;charset=utf-8"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> </head> <body> <form action="hello1" method="post"> <!-- 此处用get不能输出中文名 --> 姓名:<input name="name"><br> 联系方式:<br> QQ<input type="checkbox" name="contact" value="qq"/> 电话<input type="checkbox" name="contact" value="电话"/> 微信<input type="checkbox" name="contact" value="WeChat"/> <br> <input type="submit" value="OK"> </form> </body></html>
Step2 : 新建Hello1Servlet.java文件
代码如下:
package web;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Hello1Servlet extends HttpServlet{protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{//保证正确读取Post提交来的中文request.setCharacterEncoding("utf-8");//保证正确输出中文response.setContentType("text/html;charset=utf-8");PrintWriter out=response.getWriter();//获取提交的name的值String name = request.getParameter("name");out.println("<h1>Hello,"+name+"</h1>");//获取提交的contact的值String[] contacts=request.getParameterValues("contact");if(contacts!=null){out.print("<h1>联系方式:</h1>");for(String info:contacts){out.print("<h1>"+info+"</h1>");}}out.close();}}
Step3: 修改web.xml文件
如下:
<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name></display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>hello1Servlet</servlet-name> <servlet-class>web.Hello1Servlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello1Servlet</servlet-name> <url-pattern>/hello1</url-pattern> <!-- 和JSP的名字相同 --> </servlet-mapping></web-app>
Step4:部署并访问工程
2、处理Get请求中的中文参数值
步骤
step1: 新建hello2.jsp页面并增加meta标记
新建hello2.jsp页面如下所示:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>Servlet program</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <form action="hello2" method="get"> 姓名:<input name="name"><br> 联系方式:<br> QQ<input type="checkbox" name="contact" value="qq"/> 电话<input type="checkbox" name="contact" value="Tel"/> 微信<input type="checkbox" name="contact" value="WeChat"/> <br> <input type="submit" value="OK"> </form> </body></html>
Step2 : 新建Hello2Servlet.java文件
代码如下:
package web;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Hello2Servlet extends HttpServlet{ protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{ //保证正确输出中文 response.setContentType("text/html;charset=utf-8"); PrintWriter out=response.getWriter(); //获取提交的name的值 String name = request.getParameter("name"); //保证正确读取get提交来的中文 name=new String(name.getBytes("iso-8859-1"),"utf-8"); out.println("<h1>Hello,"+name+"</h1>"); //获取提交的contact的值 String[] contacts=request.getParameterValues("contact"); if(contacts!=null){ out.print("<h1>联系方式:</h1>"); for(String info:contacts){ out.print("<h1>"+info+"</h1>"); } } out.close(); }}
Step3: 修改web.xml文件
如下:
<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name></display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>hello2Servlet</servlet-name> <servlet-class>web.Hello2Servlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello2Servlet</servlet-name> <url-pattern>/hello2</url-pattern> <!-- 和JSP的名字相同 --> </servlet-mapping></web-app>
Step4:部署并访问工程
注意看红色箭头标记的地址可看出区别。
0 0
- get和post请求方式的区别
- post和get请求方式的区别
- get和post请求方式的区别
- 请求方式Get和Post的区别
- get方式和post请求的区别?
- Post和Get请求方式的区别
- GET和POST请求方式的区别
- 面试-Http的请求方式GET和POST的区别
- http请求的post和get方式的区别
- post和get请求方式以及区别
- post和get请求方式以及区别
- post和get请求方式以及区别
- HTTP请求方式GET和POST的区别详解
- HTTP请求方式GET和POST的区别详解
- GET和POST两种请求方式的区别
- HTTP请求方式GET和POST的区别
- HTTP请求方式GET和POST的区别详解
- HTTP请求方式GET和POST的区别
- easyui combotree 动态模糊查询 后台 数据库
- 1003 图片
- php学习笔记--面向对象oop及注意点
- 不规则物体形状匹配综述
- libgdx经验
- 请求方式Get和Post的区别
- 我想叫醒一些创业者
- poj1182(加权值的并查集)
- OC学习:OC中的协议
- android 在加代码混淆时 ,搜集到的错误(一)
- win7下ndk环境搭建
- kd树简析
- 如何定位占用oracle数据库cpu过高的sql
- Oracle_导入大批量数据到表中的方法