第三天——Http协议
协议就是标准,它规定了通信双方如何进行通信
Http超文本传输协议,基于tcp协议(请求、响应、通信)之上
默认端口80
略
http1.0响应完就断了,http1.1可以长连接
- 响应成功
404:请求资源没找到,客户端出错
500:有请求资源,服务器出错了
302:重定向,服务器会发送一个响应头location,它指定了新请求的URL地址
304:
第四天——servlet
- 它是javaWeb三大组件之一
Servlet:是一个动态资源
Filter
Listener
- Servlet负责的工作
用来处理请求:当客户端发出一个请求给服务器,服务器会通过web.xml配置文件找到相应的servlet来处理
一个servlet至少和一个URL绑定在一起,用户通过URL来访问Servlet
- Servlet处理请求过程
服务器在执行Servlet时,会传递到servlet请求,数据封装到Response
**************************************
Servlet
- 它是javax.servlet.Servlet接口
实现Servlet
- 实现javax.servlet.Servlet接口
- 继承javax.servlet.GenericServlet接口
- 继承javax.sevlet.http.HttpServlet抽象类(最佳选择)
- Servlet接口中的方法
Void iniit(ServletConfig)
Void Service(ServletRequest request, ServletResponse response)
Void destory()
String getServletInfo()
ServletConfig getServletConfig()
生命周期方法:
Void iniit(ServletConfig) ——》Servlet出生,只执行一次
Void Service(ServletRequest request, ServletResponse response) ——》这个可执行多次,每次执行就处理一次请求。
Void destory() ——》Servlet结束,只执行一次
客户端发出一个请求,服务器通过url找到相应的Servlet,但如果Servlet不存在,那么服务器就会创建一个servlet,创建对象后立马调用init(servletConfig)方法,传递ServletConfig
服务网器调用Servlet对象的service()方法,这需要传递给request和response。
当服务器再次访问Servlet时,这时servlet对象已经存在,就不会再次创建,Servlet是单例的。
当服务器需要销毁servlet的时候会调用destory()方法,然后再销毁。
- servlet入门
写一个Servlet的类
import java.io.IOException;
import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
//这是一个类不能直接访问,需要在web.xml中映射
public class helloServlet extends GenericServlet{
@Override
public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException {
// TODO Auto-generated method stub
arg1.getWriter().write("hello servlet");
}
}
再在web.xml中映射
<servlet>
<!-- 给你的servlet类取一个名字 -->
<servlet-name>HelloServlet</servlet-name>
<servlet-class>day02.firstServlet.helloServlet</servlet-class>
<!--实际对应的访问路径,写相对路径即firstServlet.helloServlet --> </servlet>
<servlet-mapping>
<!-- 给servlet一个映射地址 -->
<servlet-name>HelloServlet</servlet-name> //这个名和上面起的要一样
<url-pattern>/hello</url-pattern> //访问路径名
</servlet-mapping>
题外:eclipse主页恢复原样
Window——Perspective——Reset Perspective
- Servlet生命周期
Init——初始化
Service——服务
Destory——销毁
在目录下创建一个Servlet
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class lifeServlet
*/
@WebServlet("/lifeServlet")
public class lifeServlet extends HttpServlet {
//加一个构造方法 (构造方法不加返回值)
public lifeServlet() {
System.out.println("life servlet!");
}
//从写init
public void init() throws ServletException {
//sysc
System.out.println("servlet init!");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
System.out.println("servlet service !!!");
}
//重写destory
@Override
public void destroy() {
System.out.println("Servlet destory method");
}
}
二,常用快捷键
(1)Ctrl+Space
说明:内容助理。提供对方法,变量,参数,javadoc等得提示,
应运在多种场合,总之需要提示的时候可先按此快捷键。
注:避免输入法的切换设置与此设置冲突
(2)Ctrl+Shift+Space
说明:变量提示
(3)Ctrl+/
说明:添加/消除//注释,在eclipse2.0中,消除注释为Ctrl+\
(4)Ctrl+Shift+/
说明:添加/* */注释
(5)Ctrl+Shift+\
说明:消除/* */注释
(6)Ctrl+Shift+F
说明:自动格式化代码
(7)Ctrl+1
说明:批量修改源代码中的变量名,此外还可用在catch块上.
(8)Ctril+F6
说明:界面切换
(9)Ctril+Shift+M
说明:查找所需要得包
(10)Ctril+Shift+O
说明:自动引入所需要得包