Servlet
HttpServletResponse -> ServletResponse
响应:
响应行:
setStatus(302) getStatus()
响应头:
setHeader(“location”, “url”)
setIntHeader(name, value)
setDateHeader(name, value)
响应体:
getOutputStream(); // 文件复制/下载
// 通知浏览器打开文件的方式 - 以附件形式
setHeader("…",“attachment;filename=”);
getWriter();
write print println
setCharacterEncoding(); // response缓冲区编码
setContentType(“text/html;charset=utf-8”); 等同于html的// meta
重定向:
response.sendRedirct(“url/URI”);
HttpServletRequest -> ServletRequest
请求:
请求行:uri method
getMethod()
getRequestURI()
getRequestURL()
getQueryString() – 了解
客户端IP地址
请求头:客户端信息 Map
getHeader(“user-agent/referer”) cookie
getIntHeader()
getDateHeader()
referer、user-agent
请求体:post参数
post: form method=“post”
get: 直接访问、超链接、重定向、form method=“get”
获得请求参数 name=value name:value
String getParameter(name);
String[ ] getParameters(name);
集合 getParameterNames();
Map<String, String [ ] >getParameterMap();
Servlet 连接 Dao
BeanUtils.populate(bean, Map);
UUID.randomUUID().toString(); 36多了四个 - 代理主键、自然主键
id:
序列 sequence.nextVal
自增长 auto_increment
uuid
get/post 提交方式区别:
1.get参数在url上
post参数在请求体中
2.get参数有大小限制
post参数没有大小限制
3.get参数格式只能是字符串
post支持多种类型 - 文件
4.编码:
get 和tomcat编码一致 utf8
post ISO8859-1 - 不能改
Tomcat默认编码就是ISO8859-1
和eclipse进行了绑定 - 通过eclipse 开启的服务器 utf8
独立的tomcat单独启动 iso8859-1
Connector URIEncoding=“ISO8859-1”
某案例:实现注册页面输入数据,依靠Servlet,将数据存入数据库
0.页面
1.数据库准备
2.实体类准备
4.jar包:mysql驱动 c3p0*2 dbutils
3.Dao:QueryRunner DataSourceUtils c3p0-config.xml
5.前端页面准备:action name
6.接收请求 Servlet
7.封装对象
– 参数太多、属性太多,使用BeanUtils
BeanUtils.populate(user, request.getParameterMap());
– id是32位字符串,使用UUID
UUID.randomUUID().toString()
8.调用Dao方法
9.页面跳转