servlet基础
http请求关键要素:
1.http方法(get,post)等
2.请求URL
3.参数
http响应关键要素:
1.状态码
2.内容类型(MIME类型)
3.内容
用post不用get的理由:
1.get携带数据量有限
2.get直接将查询串加到url后,安全性差
3.post不能被客户建立书签
get是幂等操作,post不是幂等操作。
servlet程序框架:
import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class MyServlet extends HttpServlet { public void doGet( HttpServletRequest request, HttpServletResponse response ) throws IOException { // some code } public void doPost( HttpServletRequest request, HttpServletResponse response ) throws IOException { // some code } }
servlet程序没有main方法,受控于容器。
容器提供的方便之处:
1.通信支持
2.生命周期管理
3.多线程支持
4.声明方式实现安全
5.JSP支持
servlet生命周期:
·容器加载类,调用servlet的无参构造函数,并调用servlet的init方法,初始化servlet
·init方法一生只调用一次,可覆盖
·init方法使servlet可以访问ServletConfig和ServletContext对象,servlet需要从这些对象得到有关servlet配置和web应用的信息
·容器通过调用destroy方法来结束servlet的生命
·对servlet的每个请求都在一个单独的线程中运行,任何特定的servlet类都只有一个实例
DD文件中对servlet类进行映射:
<servlet> <servlet-name>ServName</servlet-name> <servlet-class>com.example.web.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ServName</servlet-name> <url-pattern>/Servlet.do</url-pattern> </servlet-mapping>
servlet-name只能在DD文件中使用,servlet-class是实际类名,url-pattern是客户见到的目标页面。