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常用操作的更多相关文章

  1. Servlet常用操作(基础)

    ----------------------------------------------------------------------------------------------[版权申明: ...

  2. JavaWeb response对象常用操作

      JavaWeb response对象常用操作 CreationTime--2018年7月18日10点42分 Author:Marydon 1.设置响应内容类型 方式一 response.setCo ...

  3. JavaWeb request对象常用操作

      JavaWeb request对象常用操作 CreateTime--2018年6月1日16点47分 Author:Marydon 一.前提 import javax.servlet.http.Ht ...

  4. java集成开发环境常用操作集

    1.简单搭建maven集成开发环境 一.     Jetty安装 下载地址(包涵windows和Linux各版本,Jetty9需要JDK7):http://download.eclipse.org/j ...

  5. java:Cookie(常用操作),Cookie和Session免登录实例

     1.常用操作: package cn.zzsxt.lee.web.cookie; import java.io.IOException; import javax.servlet.ServletEx ...

  6. 【三】用Markdown写blog的常用操作

    本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...

  7. php模拟数据库常用操作效果

    test.php <?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); ...

  8. Mac OS X常用操作入门指南

    前两天入手一个Macbook air,在装软件过程中摸索了一些基本操作,现就常用操作进行总结, 1关于触控板: 按下(不区分左右)            =鼠标左键 control+按下        ...

  9. mysql常用操作语句

    mysql常用操作语句 1.mysql -u root -p   2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...

随机推荐

  1. linux 内核大牛-谢宝友

    http://blog.chinaunix.net/uid/25845340.html 谢宝友:毕业于四川省税务学校税收专业,现供职于中兴通讯操作系统团队,对操作系统内核有较强的兴趣.专职于操作系统内 ...

  2. eclipse and systemtap

    http://wiki.eclipse.org/Linux_Tools_Project/Systemtap/User_Guide

  3. 国产Linux滋生腐败

    回想过去,2002年12月11日至12日,信息产业部与科技部联合主办"Linux软件与应用猜測研讨会".影响中国IT业的重要人士,包含政府决策者.学界权威.主要Linux推动厂商等 ...

  4. 转: "SMTP 服务器无法识别在 Mac 2011 Outlook 中发送电子邮件时错误。错误 17092"

    在 Mac 2011 Outlook 中发送电子邮件时,您可能会收到下面的错误消息: 无法发送邮件.SMTP 服务器无法识别任何 Outlook 所支持的身份验证方法.请尝试更改帐户设置中的 SMTP ...

  5. Python之“可变”的tuple

    前面我们看到了tuple一旦创建就不能修改.现在,我们来看一个"可变"的tuple: >>> t = ('a', 'b', ['A', 'B']) 注意到 t 有 ...

  6. chromium对网页获取favicon

    每一个网页都有一个favicon,在历史记录的保存中须要用到.在content文件夹下,这个没有实现. 以下说一下我的实现过程: web_contents_impl.cc文件里有方法:WebConte ...

  7. nginx: [emerg] "proxy_cache_path" directive is not allowed here in /usr/local/nginx/conf/nginx.conf:43

    1.它只能使用于http{  }部分,把proxy_cache_path放置于http部分即可解决此问题.注意图示的上下文

  8. 【SPOJ】【1825】Free Tour 2

    点分治 点分治的例题2(本题代码结果为TLE……) 强烈谴责卡时限QAQ,T了无数次啊无数次…… 不过在N次的静态查错中倒是加深了对点分治的理解……也算因祸得福吧(自我安慰一下) TLE后的改进:每棵 ...

  9. 3D屏保程序:汉诺塔

    学过程序的人一定记得汉诺塔.我们学的第一个程序是HelloWorld,而碰到的第一个坑就是汉诺塔,短短十几行代码,不知花费了多少时间精力去理解.我记得当年的开发环境还是蓝屏的,汉诺塔程序的输出还是一行 ...

  10. Linux系统教程 标准输入/输出和重定向

    1. 标准输入与输出 我们知道,执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘:标准输出文件(stdout)和标准错误输出文件(stderr), ...