servlet常用操作
servlet常用操作
CreateTime--2017年9月7日09:36:43
Author:Marydon
1.获取当前应用程序对象
需要导入:
import javax.servlet.ServletContext;
实现
// 获取当前web应用程序
ServletContext webApp = this.getServletContext();
2.获取文件真实路径(磁盘路径)
2018/11/28
String fileName = request.getParameter("fileName");
方式一:先获取项目磁盘路径(推荐使用)
String filePath = webApp.getRealPath("");
filePath += "/WEB-INF/uploadFiles/" + fileName;
方式二:先获取项目磁盘路径
String filePath = webApp.getRealPath("/");
filePath += "WEB-INF/uploadFiles/" + fileName;
两者的区别在于:
调用getRealPath()方法时,如果声明入参为空"",拼接路径时必须再手动添加一个"/",否则路径不对;
调用getRealPath()方法时,如果声明了参数"/",拼接路径时就不需要再手动添加"/"(就算添了也不影响);
经测试发现,就算多加了一个"/",也没有影响,所以为了方便记忆,不管使用哪种方式,可以都手动加一个"/"。
方式三:先指定文件相对于项目的相对路径
String filePath = "WEB-INF/uploadFiles/" + fileName;
// 获取指定文件真实路径
filePath = webApp.getRealPath(filePath);// .../WEB-INF/uploadFiles/fileName
这种方式调用getRealPath()方法时,同样不需要手动添加"/"(就算添了也不影响)。
3.根据文件类型获取返回内容类型(设置文件MIME类型)
方法一:(推荐使用)
String contentType = webApp.getMimeType(fileName);
方法二:关于文件类型对应的mime类型,可以在Tomcat/conf/web.xml中549行左右的类型说明中找到!
4.设置响应内容类型
UpdateTime--2017年11月9日11:26:16
response.setContentType(contentType + ";charset=UTF-8");
// 或者
response.setHeader("Content-Type", contentType + ";charset=UTF-8");
作用:response.setContentType(MIME)的作用是让服务器告诉浏览器它发送的数据属于什么文件类型,使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。
例如:当Content-Type 的值设置为text/html和text/plain时,前者会让浏览器把接收到的实体内容以HTML格式解析,后者会让浏览器以普通文本解析。
UpdateTime--2017年10月25日15:07:20
5.设置请求参数编码
request.setCharacterEncoding("UTF-8");
6.设置响应数据字符集
response.setCharacterEncoding("UTF-8");
7.设置Content-Disposition(指定下载该文件时的文件名)
response.setHeader("Content-Disposition", "attachment;filename=" + formatFileName);
8.返回客户端数据
UpdateTime--2017年10月30日10:57:52
response.getWriter().print("String字符串");
注意:使用print(strParam)方法返回的数据只能是字符串格式
9.获取前台传参
9.1 根据name获取对应的参数值(一个name对应一个value)
String paramValue = request.getParameter("paramName");
9.2 获取前台提交的所有参数名称
Enumeration paramters = request.getParameterNames();
9.3 根据name获取对应的参数值(一个name对应多个value)
需要导入:
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
方法封装:
/**
* 获取前台提交的参数,并封装到Map中
* @description 将参数和参数值以key-value的形式存储到Map中
* @return Map
*/
public static Map getParameterMap(HttpServletRequest request) {
Map parametersMap = new HashMap();
Enumeration paramters = request.getParameterNames();
while (paramters.hasMoreElements()) {
String name = (String) paramters.nextElement();
String[] values = request.getParameterValues(name);
String value = "";
if (values != null) {
for (int i = 0; i < values.length; i++) {
value += values[i] + ',';
}
value = value.substring(0, value.length() - 1);
// value=value.replaceAll(".*([';]+|(--)+).*", " ");
}
parametersMap.put(name, value.trim());
}
return parametersMap;
}
举例:
Enumeration paramters = request.getParameterNames();
while (paramters.hasMoreElements()) {
String name = (String) paramters.nextElement();
String[] values = request.getParameterValues(name);
String value = "";
if (values != null) {
for (int i = 0; i < values.length; i++) {
value += values[i] + ',';
}
value = value.substring(0, value.length() - 1);
}
System.out.println("param:" + name + ",value:" + value);
}
UpdateTime--2017年11月14日11:50:29
10.获取请求路径
String currentURL = request.getRequestURI();
应用:过滤器登录验证
servlet常用操作的更多相关文章
- Servlet常用操作(基础)
----------------------------------------------------------------------------------------------[版权申明: ...
- JavaWeb response对象常用操作
JavaWeb response对象常用操作 CreationTime--2018年7月18日10点42分 Author:Marydon 1.设置响应内容类型 方式一 response.setCo ...
- JavaWeb request对象常用操作
JavaWeb request对象常用操作 CreateTime--2018年6月1日16点47分 Author:Marydon 一.前提 import javax.servlet.http.Ht ...
- java集成开发环境常用操作集
1.简单搭建maven集成开发环境 一. Jetty安装 下载地址(包涵windows和Linux各版本,Jetty9需要JDK7):http://download.eclipse.org/j ...
- java:Cookie(常用操作),Cookie和Session免登录实例
1.常用操作: package cn.zzsxt.lee.web.cookie; import java.io.IOException; import javax.servlet.ServletEx ...
- 【三】用Markdown写blog的常用操作
本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...
- php模拟数据库常用操作效果
test.php <?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); ...
- Mac OS X常用操作入门指南
前两天入手一个Macbook air,在装软件过程中摸索了一些基本操作,现就常用操作进行总结, 1关于触控板: 按下(不区分左右) =鼠标左键 control+按下 ...
- mysql常用操作语句
mysql常用操作语句 1.mysql -u root -p 2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...
随机推荐
- Error creating bean with name 'adminUserController': Injection of autowired dependencies failed;
spring 个坑爹地,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ...
- Oracle 12c on Solaris 10 安装文档
http://www.orasql.com/blog/archives/2013/08/20/12c_solaris.htm
- OpenCV 机器学习之 支持向量机的使用方法实例
用支持向量机进行文理科生的分类,根据的特征主要是 数学成绩与语文成绩,这两个特征都服从高斯分布 程序代码例如以下: 分类结果:
- MVC使用JCrop上传、裁剪图片
JCrop用来裁剪图片,本篇想体验的是: 在视图页上传图片: 上传成功,跳转到另外一个编辑视图页,使用JCrop对该图片裁剪,并保存图片到指定文件夹: 裁剪成功后,在主视图页显示裁剪图片: 当然,实际 ...
- arcgis新版本增加的功能
1.导出拓扑错误 2.应用图层的符号设置 3.创建 SQLite 数据库 4.最小包围体 5.图形缓冲 6.按属性分割
- wcf配置参数说明
Open/Close/Receive/Send本是HTTP/TCP/SOCKET的概念,Read/Write Operation则是Web Service的概念. 1.OpenTimeout 客户端与 ...
- Unity3d通用工具类之数据配置加载类-ini配置文件加载
Unity3d通用工具类之数据配置加载类-ini配置文件加载 上次我们讲过xml文件的加载配置管理,今天我们换个配置文件,也是比较常见的配置文件.ini格式的数据. 按照国际管理先贴一张啥是.ini文 ...
- TextView设置最多显示指定个字符,超过部分显示...(省略号)
今天在公司遇到一个需求:TextView设置最多显示8个字符,超过部分显示...(省略号),网上找了很多资料,有人说分别设置TextView的android:signature="true& ...
- [置顶] Django 微信开发(一)——环境搭建
Django 微信开发(一)——环境搭建 随着移动互联网时代的到来,微信——一个改变着我们生活的产品悄悄走近了我们的生活.我们不得不觉得自己很幸运,自己能在这个世界上遇到像QQ.微博.微信这样优秀的产 ...
- retrofit okhttp RxJava bk Gson Lambda 综合示例【配置】
项目地址:https://github.com/baiqiantao/retrofit2_okhttp3_RxJava_butterknife.git <uses-permission andr ...