get和post的区别
1:请求数据的大小不同。
因为get请求的数据是要追加到URL中,而URL的数据量一般不能超过2K,所以用get请求的方法对数据的大小有限制。而post请求方法是把数据放在消息体中,所以理论上对数据量没有限制。(但是实际操作中也不能能太大)
2:安全性不一样
因为get请求的数据是追加在URL中,外部用户能很方便的看到,从这个角度上来讲不安全。而post方法因为是讲请求放在消息体中,不会直接在URL中显示所以从这个角度来说数据会比较安全。
3:书签建立
get请求可以建立书签;post请求则不能。例如:假设你有一个页面允许用户指定搜索规则。用户可能一个星期之后才回来,想要得到原来的数据,但此时服务器上已经有新的数据了。
4:方法的使用
get用于得到某些东西,只是简单的获取,不会对服务器做任何的改变。post则用于发送数据来进行处理,看作是一个更新,来修改服务器上的数据。
ServletConfig
在Servlet 的配置文件中,可以用一个或多个<init-param>标签为servlet配置一些初始化参数。
当servlet配置了初始化参数之后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给Servlet。进而,程序员通过Servlet对象得到当前servlet的初始化参数信息。
ServletContext
1.多个Servlet通过ServletContext对象实现数据共享。
如:
在InitServlet的Service方法中利用ServletContext对象存入需要共享的数据
ServletContext context = this.getServletContext(); /*获取ServletContext对象*/
context.setAttribute("name", "haha"); //存入共享的数据
在其它的Servlet中利用ServletContext对象获取共享的数据
ServletContext context = this.getServletContext(); /*获取ServletContext对象*/
String name = context.getAttribute("name"); //获取共享的数据
System.out.println("共享的内容值是:"+name);
2.用于访问web应用参数(也在web.xml中)<context-param></context-param>
在DemoServlet的doPost方法中测试获取初始化参数的步骤如下:
ServletContext context = this.getServletContext(); /*获取ServletContext对象*/
String url = context.getInitParameter("url"); //获取指定名称的初始化参数
Enumeration<String> enumer = context.getInitParameterNames(); //获取web.xml文件中所有的初始化应用参数
while(enumer.hasMoreElements()){
String name = enumer.nextElement();
String value = context.getInitParameter(name);
System.out.println(name+"=========="+value);
}
其他功能见博客 https://blog.csdn.net/qiqiongran_luck/article/details/6889037
当有些表单类型输入是多个值的时候,例如复选框
<input type=checkbox name=sizes value="12oz">12 oz.<br>
<input type=checkbox name=sizes value="16oz">16 oz.<br>
<input type=checkbox name=sizes value="22oz">22 oz.<br>
如果你想看到数组内的所有内容,可以使用
PrintWriter out = response.getWriter();
String []sizes = request.getParameterValues("sizes");
for(int i=0;i<sizes.length;i++){
out.println(sizes[i]);
}
响应里不止可以放html,还可以放别的,例如
当用户想下载一个jar文件
response.setContentType("application/jar");
ServletContext ctx = getServletContext;
InputStream is = ctx.getResourceAsStream("/bookCode.jar");
int read =0;
byte [] bytes = new byte[1024];
OutputStream os = response.getOutputStream();
while((read=is.read(bytes))!=-1){
os.write(bytes,0,read);
}
输出
PrintWriter writer = response.getWriter();
writer.println("......");
ServletOutputStream out = response.getOutputStream();
out.write(".......");