Hypertext Transfer Protocol 超文本传输协议 or 超文本转移协议?
阅读全文…
标签存档: http
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()方法,并在里面添加我们需要的信息即可.这种方法较为简单,推荐使用这种方式.
阅读全文…
《head first jsp》笔记
1. get 和post请求的区别
1.1 get请求的请求地址有一定的长度限制,请求的参数也是在请求的地址栏中显示。传递的数据量最大限制为2K
1.2 get请求是向服务器请求数据,post请求是向服务器传递数据
1.3 get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。
1.4 get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post的所有操作对用户来说都是不可见的。将数据放在消息体中
阅读全文…
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
阅读全文…