javaweb学习路线-myeclipse的配置和Servlet之request和response
Myeclipse的配置
1.General -->Workspace -->utf-8 //设置项目的编码格式,项目决定文件,文件决定文本
2.General -->Editors -->Associations -->JSP -->MyEclipse JSP Editors
3.搜索jsp -->utf-8
4.Java -->Instralled JREs -->添加
5.tomcat配置,先配置java环境,再配置本地tomcat环境
6.调整字体:General-->Appearance-->Colors and Fonts-->Basics-->Text Font-->Edit 选择Courier New字体
服务器处理请求的流程:
服务器每次收到请求时,都会为这个请求开辟一个新的线程。
服务器会把客户端的请求数据封装到request对象中,request就是请求数据的载体
服务器还会创建response对象,这个对象与客户端连接在一起,他可以用来向客户端发送响应
键值对的形式的头
适用于单值的响应头:response.setHeader("aaa","AA")
适用于单值INt类型的响应头:response.setIntHeader("Content-Type",888)//设置了888字节
案例一:重定向
发送302,设置Loaction头,完成重定向!
案例二:定时刷新(可以理解成定时重定向):response.setHeader("Refresh", "5;URL=/day10/EServlet");
案例三: 禁用浏览器缓存(三条语句适用范围广)
response.setHeader("Cache-Control", "no-cache");
response.setHeader("pragma", "no-cache");
response.setDateHeader("expires", -1);
响应体:通常是html或者图片
response常用的两个流:
PrintWriter:用来向客户端发送字符流!需要设置编码:PrintWriter pw=response.getWriter();
ServletOutputStream:用来向客户端发送字节流(图片):ServletOutputStream out=response.getOutputStream();
ServletOutputStream:
String s="hello world!";
byte [] bytes=s.getBytes();
//将字节流输出
response.getOutputStream().write(bytes);
把一张图片读取到字节数组中去:
1.String path="F:/F/白冰.jpg";
2.FileInputStream in=new FileInputStream(path);
3.byte[] bytes=IOUtils.toByteArray(in);//读取整个输入流中的字节到字节数组中去(导入的commons.io的包)
Request:封装了所有客户端的请求数据:
commons.io.
String getScheme():获取协议 返回的是http
String getServerName():获取服务器名 localhost
String getServerPort():获取服务器端口 8080
String getContextPath():获取项目名 /day_10
String getServletPath():获取servlet路径 /AServlet
String getRequestURI():获取请求URI,等于项目名+Servlet路径 /day_10/AServlet
String getRequestURL():获取请求URL,等于不包含参数的整个请求路径 http://localhost:8080/day_10/AServlet
使用Referer请求头完成防盗链:可以判断请求来自哪里