java web开发要用到一些软件:
1.eclipse ee 开发web应用的软件 2.tomcat web应用的容器(我们所开发的web应用程序最终都是运行在tomcat容器里面的)
web应用 的目录结构 (一定要清楚) JavaResource
src 放的是普通的java类
build 放的是编译后的java字节码程序
WebContent的目录结构
html css js 等网页资源 WEB-INF > lib > web.xml
关于tomcat的目录: (一定要清楚)
lib : tomcat运行的时候需要用的jar包 bin : 小程序(可执行文件) conf : tomcat的配置文件 webapps : 我们自己写的web应用程序 temp 临时数据
静态网页和动态网页
静态网页:无论多少次运行这个网页,网页源代码不会发生改变
动态网页:多次打开网页,网页源代码会发生改变
servlet : 是开发动态网页的一种技术 怎么用servlet呢?(掌握)
1.在src目录下新建一个Servlet类 2.新建类的时候点next next 最后一个页面勾选doGet 和 doPost 3.在新建的servlet类中的doGet方法中可以往页面写出内容
请求(重点)
每当我们打开一个新的网页的时候,中间其实有很多操作,这些操作都是和请求相关
Http协议:约定了客户端和服务器通信的数据的格式
每一个请求 有几部分组成:(一定要掌握)
请求行
请求头
请求体(只有post请求才有请求提)
请求行: GET /day09/hello HTTP/1.1 ——–请求行
GET get请求 POST post请求 关于get请求和post请求的区别:
1.get请求会将请求参数拼接到url后面,post请求不会拼接,会将请求参数放到请求体中 2.get请求url后面所能够跟的信息是有限的(1kb),post请求请求参数没有限制 3.get请求不适合提交敏感数据
/day09/hello URI
URI : 统一资源标识符 URL : 统一资源定位符
每一个URL都由下面部分组成: http://localhost:8080/day08_02/1.html 协议 主机IP(端口号) URI(当前应用的资源路径)
请求头:(标红的掌握,其他了解)
Accept: text/html,image/* -- 浏览器接受的数据类型 Accept-Charset: ISO-8859-1 -- 浏览器接受的编码格式 Accept-Encoding: gzip,compress --浏览器接受的数据压缩格式 Accept-Language: en-us,zh- --浏览器接受的语言 Host: www.it315.org:80 --(必须的)当前请求访问的目标地址(主机:端口) If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT --浏览器最后的缓存时间 Referer: http://www.it315.org/index.jsp -- 当前请求来自于哪里 User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) --浏览器类型 Cookie:name=eric -- 浏览器保存的cookie信息 Connection: close/Keep-Alive -- 浏览器跟服务器连接状态。close: 连接关闭 keep-alive:保存连接。 Date: Tue, 11 Jul 2000 18:23:51 GMT -- 请求发出的时间请求体:只有post请求才有请求体(掌握) 关于httpServletRequest的常用方法:(掌握) 1.请求行的方法
request.getMethod() 获取请求的方法 request.getRequestURI() 获取请求的uri request.getProtocol() 获取请求的协议
2.请求头的方法
request.getHeaderNames() 获取所有的请求头名字
request.getHeader(“指定请求头”) 获取指定请求头的值
3.获取请求体的方法
request.getInputStream();
4.获取请求参数
request.getParamer(“参数”); 获取指定请求参数的值 request.getParamerNames(); 获取所有的请求字段
service方法(了解)
不管是post还是get方法提交过来的连接,都会在service中处理,然后,由service来交由相应的doPost或doGet方法处理,如果你重写了service方法,就不会再处理doPost或doGet了。
response(掌握)
响应行 响应头 响应体
响应行 HTTP/1.1 200 OK
HTTP/1.1 协议头
200 响应的状态码 302 请求需要进一步细化 404 访问的资源找不到(客户端自己的问题) 500 服务器内部发生了错误
常见的响应头:(红色部分掌握)
Location: http://www.it315.org/index.jsp -表示重定向的地址,该头和302的状态码一起使用。
Server:apache tomcat —表示服务器的类型
Content-Encoding: gzip – 表示服务器发送给浏览器的数据压缩类型
Content-Length: 80 –表示服务器发送给浏览器的数据长度
Content-Language: zh-cn –表示服务器支持的语言
Content-Type: text/html; charset=GB2312 –表示服务器发送给浏览器的数据类型及内容编码
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT –表示服务器资源的最后修改时间
Refresh: 1;url=http://www.it315.org –表示定时刷新
Content-Disposition: attachment; filename=aaa.zip –表示告诉浏览器以下载方式打开资源(下载文件时用到)
Transfer-Encoding: chunked Set-Cookie:SS=Q0=5Lb_nQ; path=/search –表示服务器发送给浏览器的cookie信息(会话管理用到)
Expires: -1 –表示通知浏览器不进行缓存
Cache-Control: no-cache Pragma: no-cache Connection: close/Keep-Alive –表示服务器和浏览器的连接状态。close:关闭连接 keep-alive:保存连接
响应体
服务发送给浏览器的真实的内容
HttpServletResponse的常用方法
1.响应行的方法 response.setStatus(404) 设置响应的状态码 response.sendError(404) 发送状态码以及页面
2.发送实体内容的方法 response.getWriter().write(“具体内容”) 向浏览器发送具体的响应内容
3.设置响应头 response.setHeader(“key”,”value”);
请求重定向的实现方式:
1.在服务器的servlet中添加如下代码 response.setStatus(302); response.setHeader(“location”, “/3.2Pro/hello.html”);
也可以直接使用以下方法来进行请求重定向 response.sendRedirect(“网址”)定时刷新(了解)
//每隔1秒刷新页面 //response.setHeader(“refresh”, “1”);
//3秒后跳转指定页面 response.setHeader(“refresh”, “3;url=’/3.2Pro/hello.html’”);