下周要内部做个关于jetty的分享,就整理了关于jetty的种种,下面所有的信息都是基于jetty-9.0.5这个版本。
阅读全文…
分类存档: http
jetty的基本介绍
Hypertext Transfer Protocol 超文本传输协议 or 超文本转移协议?
Hypertext Transfer Protocol 超文本传输协议 or 超文本转移协议?
阅读全文…
Servlet周期
Servlet周期
Servlet的生命周期一般分为四个阶段,Servlet的产生,初始化,调用Servlet方法,最后是对Servlet的销毁.标志这个Servlet生命周期的结束.
1.Servlet的产生.
一个Servlet的产生是因为客户端有一个request请求的过来.这样服务器会生产一个Servlet.而且一个Servlet只生成一次.即服务器只加载对于一种Servlet只会加载一次.
在服务起内部首先会判断服务器的JVM是否已经加载了这个Servlet(内部是以这样的形式加载Class.forName(“Servlet名字”),该方法加载这个类,并生成该类的实例.)
如果没有就加载这个Servlet.若有,则直接跳过加载这步,进入初始化inti().
2.Servlet的初始化inti()
在加载一个Servlet后,服务器会自动调用inti()方法,默认的是调用有参的初始化方法
public void inti(ServletCongfig config)throws ServletException{
this.config=config;
inti();
}
生成一个config.这样在之后Servlet方法中可以直接调用ServletConfig()的一些方法,而不必在前面加getServletConfig().getIntiParameter()来获得自己想要的初始化参数.
2.1初始化方法的覆盖:
我们在初始化某个Servlet的时候有两种方法
2.1.1 直接覆盖有参的inti方法.
当我们生成一个Servlet后,服务器会默认的调用有参的inti(),那么若我们覆盖了这个方法,服务器首先调用的就是我们覆盖后的inti(),不会去调用父类的初始化方法,这样就无法生成一个config.所以我们的这种方法方式覆盖,需要我们在覆盖的方法中调用父类的inti(),即super.inti(config).
2.1.2 覆盖无参的inti()方法
由上可知,生成一个Servlet,会自动调用有参的inti()方法,生成一个config.而在有参的inti()方法中,有调用了无参的inti(),那么我们只需要覆盖无参的inti()方法,并在里面添加我们需要的信息即可.这种方法较为简单,推荐使用这种方式.
阅读全文…
http请求路径解析
1.request常见方法:
//完整的请求路径是 http://localhost:56231/test/action/pplibe?act=query
String scheme = request.getScheme(); //请求类型,一般为http
String serverName = request.getServerName(); //服务的ip地址,亦为服务的DNS服务名 localhost
int serverPort = request.getServerPort(); //服务端口 56231
String contextPath = request.getContextPath(); //应用名称 /test
String servletPath = request.getServletPath();//进入该servlet定义的路径 /action/*
String pathInfo = request.getPathInfo(); //自己定义的路径 /pplibe
String queryString = request.getQueryString();//即为?后面的参数 例如act=query
阅读全文…