Servlet In Web Application
来源:互联网 发布:js和jquery的事件区别 编辑:程序博客网 时间:2024/05/22 06:59
Servlet In Web Application
HttpServlet的执行步骤:
1. 容器收到调用请求的时候,先调用HttpServlet的service()方法;
2. 如果HttpServlet的service()方法没有被重写,那么就调用Servlet的service()方法,
3. 这个方法中,会根据requerst head中的method 参数来判断执行哪个函数。方法名称为:XXX ,那么就执行 doXXX()方法。
Note:
· 在http1.0中有三种方法:get,post,head.在http1.1中又增加了5个方法:put, options,delete,trace,connect.
· 如果HttpServlet中的service()被重写,那么就要人工的根据method判断需要调用的方法。
· 在浏览器中如果不指定request中的方法名,那么默认为get。比如链接,未声明method的表单,都默认是用get。所以当你想提交比较长的数据,或者不想把表单中的数据显示到链接的后面,那么就必须声明form的method方法为post.
HttpServletResponse:
1. getWriter() 和getOutputStream()方法在同一个ServletResponse中只能调用其中之一。否则会抛出IllegalStateException。但是同一个方法是可以多次调用的。
2. Reponse.setRedirect().方法要在response head发送到客户端之前调用,否则会抛出IllegalStateException。serRedirect()方法实际上就是通过response head告诉浏览器,转向到指定的地址。和重新在地址栏输入地址效果一样。原先发送过的request数据是没有的,更forward()方法有所区别。Forward方法对客户端来说是透明的,服务器端将收到的request转发给特定的资源。
Servlet Life Cycle
1. Servlet 实例默认在容器第一次受到对该Servlet的请求的时候初始化,也可以进行预加载,在描述文件中设置<load-on-startup>。
2. Servlet的初始化调用的是init(ServletConfig)函数,其中ServletConfig包含了在描述文件中对这个Servlet设置的初始化参数。这个函数运行完毕之后Servlet才能进入initialized状态。
3. GenericServlet(Servlet接口的一般实现)中还有一个不带参数的init() ,这方法是用来提供给用户重写的,当想在初始化的时候做些事情,重写这个方法既可,init(ServletConfig)方法会自动调用这个方法。在init()中如果想使用ServletConfig,可以通过函数getServletConfig()来获得。如果重写了init(ServletConfig)方法,那么记住要在方法中使用super.init(ServletConfig).
ServletContext
ServletContext是整个Web Application的公共对象,保存了这个应用的环境参数,也可以被共享所有Servlet的公共数据。他也有权利访问整个应用的说有资源。
ServletContext获得资源的方法有:
1. Java.net.URL getResource(String path)
2. java.io.InputStream getResourceAsStream(String path)
3. String getRealPah(String relativePath) //返回本地绝对路径,但是不能读取jar包里面的文件。
RequestDispatcher
有两种方式获得RequestDispatcher,通过ServletContext和ServletRequest,这两种方式获得的RequestDispatcher 的区别是:后者可以使用相对路径,而前者不可以。
两个函数:
1. Void forward(ServletRequest request,ServletResponse response)
在response commited 之前,可以将request 和 response路由到别的servlet或者jsp来继续处理。
2. Void include(ServletRequest request,ServletResponse response)
在response commited 之前,可以将request 和 response路由到别的servlet或者jsp来处理,但是处理完成后还会回到本servlet.
- Servlet In Web Application
- Web Application的invoker servlet
- Servlet:"action" failed to preload on startup in web application 问题的解决
- Issue of weblogic [Servlet: "action" failed to preload on startup in Web application]
- [HTTP:101216]Servlet: "FICMaster" failed to preload on startup in Web application
- Servlet [springDispatcherServlet] in web application [/SpringMVC-1] threw load() exception java.lang
- 严重: Servlet [login_fali] in web application [/StudyforJSP] threw load() exception javax.servl
- Charset in J2EE Web Application
- Stateful EJBs in web application
- Privilege Management in Web Application
- 18.2 Log4J in a Web Application
- Add web application project in VS 2005
- watir语法(Web Application Testing in Ruby)
- WatiN: Web Application Testing In .Net!
- Watir 语法(Web Application Testing in Ruby)
- Portal event in Web dynpro application
- using Camel in a Web Application
- Parse error in application web.xml
- 在两个表之间根据相同名称栏位拷贝描述
- 面试技巧
- DELPHI常用函数集及简要范例 3
- javascript弹出窗口总结
- 互联网造梦人的光荣与梦想:飞得更高
- Servlet In Web Application
- 生活
- Windows XP SP2防火墙的设置
- Model-View-Controller (MVC)
- 取得ListBox多选项的值方法
- 中国教育“善意的谎言”与恶果
- 中国的大学排行榜少了什么 作者/出处:国际在线
- 哈哈,我的blog开张了
- A few 2D mobile game labs