基础的servlet,jsp,以及正则知识
目录结构

对中文的支持
- 对于字符串
1 | new String(str.getBytes("ios-8859-1"), "utf-8") |
- 对于jsp文件
1 | <% contentType="text/html;charset=utf-8"%> |
- servlet中
1 | request.setCharacterEncoding("UTF-8") |
- 直接修改配置文件
在配置文件server.xml中中为Connector添加属性URIEncoding=”UTF-8”(Tomcat8+不用)
上传文件的操作
对于前端,需要对form标签的 type 值修改为 multipart/form-data,同时需要使用post方法
对于后端,需要使用第三方jar包 commons-fileupload 和 commons-io 对request进行处理
首先,需要生成一个唯一的文件名,这里使用到类 UUID
1 | private String getFileName(String filename) { |
之后就可以进行操作了
1 |
|
http相关

- 请求转发 一次请求
- 请求重定向 两次请求
- restful风格获取url最后一项
/api/user/1
1 | String url = request.getRequestURL().toStirng(); |
三大作用域对象
- HttpServletRequest 请求对象
- HttpSession 用户回话对象
- ServletContext对象 全局的,只有一个
九大内置对象

exception内置对象使用时,需要在页面的page指令下增加isErrorPage属性pageContext是PageContext类的实例,代表当前页面的上下文对象,它封装了相应的方法来访问page,request,session,application范围的变量;可以获得其他的内置对象
web.xml一些配置
- web.xml设置全局参数
1 | <context-param> |
使用 context.getInitParameter("");获取
- 配置默认页面
1 | <error-page> |
- servlet tomcat已启动就执行
1 | <load-on-startup></load-on-startup> |
EL表达式
- 获取setAttribute中的值
${}用于替换out.print() 语句- ${student.name}
- 简化parameter输出
- ${param. …}
- pageScope
- requestScope
- sessionScope
- applicationScope
- 不写作用于对象,则从上到下依次获取
- 本质上是调用toString方法
JSTL
核心标签库
页头引入
1 | <%@ taglib prefix="c" uri=".." %> |
tld文件`定义了标签具体的使用形式输出
1 | <c:out value="" default=""></c:out> |
- 条件
1 | <c:if test="${...}"></c:if> |
- 循环
1 | <c:forEach var="p" items="${collection}" varStatus="idx"> |
fmt格式化输出 数字,日期
- yyyy 年
- MM 月
- dd 日
- HH 24h
- hh 12h
- mm 分钟
- ss 秒
- SSS 毫秒
1 | <fmt:formatDate value="..." pattern="..."/> |
0.000 后三位
1 | <fmt:formatNumber value="..." pattern="..."/> |
身份记录
- session
- 登陆成功后存在建议将登陆信息session中
- session 窗口当前回话 浏览器端,时效性为30min
- cookie中保存SessionId
在 web.xml中设置session的失效时间
1 | <!-- 设置session时间,0或负数表示永不失效,这里表示1min --> |
- cookie
- Cookie默认关闭浏览器就没有了 客户端
1 | new Cookie(..., ...) |
正则表达式
没啥说的,就把几个关键词记得就行了



