Servlet程序设计
2008-03-07 – 19:27 - 792 viewsJava Servlet是一种使用Java编写的CGI程序
- CGI:通用网关接口
- 与传统的CGI不同,Servlet是一种多线程处理模式--性能较高
- 在Servlet中可以控制输出HTML代码,则所有的HTML代码必须使用out.println()一行一行输出
Servlet的生命周期
- 初始化(1次)
- public void init(ServletiConfig config) throws ServletException
Servlet初始化有两种方式- init():当不需要传递初始化参数时使用
- init(ServletConfig config) :如果使用这种初始化方法,则上面的无参初始化方法无效,这种方式适用于需要传递初始化参数
- public void init(ServletiConfig config) throws ServletException
- 服务(多次)
- doGet();表单和地址输入都为GET请求
- doPost(); 只有表单输入为POST请求
- 销毁(1次)
- 服务器关闭
- 此Servlet长时间不使用
简单Servlet编写
- Servlet直接继承直HttpServlet
- 在doPost(doGet)方法中写入相应的程序代码
- 配置WEB.XML文件
- JSP程序的功能与Servlet一致,意味着Servlet程序同样可以被外部所访问,就必须有一个地址,这只能通过WEB映射解决
- 修改web.xml文件可以配置映射地址
//表示要使用一个Servlet
<servlet>
//在web.xml文件内部起作用的名字
<servlet-name>Simple</servlet-name>
//servlet程序所在包.类名称
<servlet-class>net.hialex.Servlet.SimpleServlet</servlet-class>
</servlet>
//servlet映射地址
<servlet-mapping>
//在web.xml文件内部起作用的名字,与上面的名字一致
<servlet-name>Simple</servlet-name>
//具体映射路径,前面必须要有一个/
<url-pattern>/demo</url-pattern>
</servlet-mapping>
- 修改web.xml文件可以配置映射地址
- JSP程序的功能与Servlet一致,意味着Servlet程序同样可以被外部所访问,就必须有一个地址,这只能通过WEB映射解决
- 注意:
- 在编译servlet时可能会遇到找不到servlet包的问题,这是因为servlet为JDK的扩展包,所以在使用时需要指定classpath
- 若不指定classpath可以将servlet.jar文件拷贝到JSK安装路径下的jre\lib\ext下
- 结论:在Tomcat中,存在servlet的全部库文件(%Tomcat_HOME%\lib\servlet-api.jar)
HttpServlet类
- 继承自GenericServlet类并增加了doGet()、doPost()等七个方法
- doGet()方法:当客户端发送get请求时就调用doGet()方法,HTTP缺省的就是Get
- doPost()方法:当客户端发送HTTP请求调用POST方法调用doPost()方法
对于一个基本的Servlet程序必须注意以下几点:
- 首先一定要符合Servlet程序的开发框架
- 配置web.xml文件
- Servlet的缺点是不适合输出大量的HTML代码
多个名称映射同一Servlet:
- <servlet-mapping>
<servlet-name>simple</servlet-name>
<url-pattern>/demo</url-pattern>
</servlet-mapping> - <servlet-mapping>
<servlet-name>simple</servlet-name>
<url-pattern>/demo.simple</url-pattern>
</servlet-mapping> - <servlet-mapping>
<servlet-name>simple</servlet-name>
<url-pattern>/demo/*</url-pattern>
</servlet-mapping> - 只要保持<servlet-name>一致,就可以有多个<servlet-mapping>
只要映射名称为*,就可以任意匹配 - 在servlet中解决路径问题的唯一原则:在地址栏中拼凑出完整路径
Servlet接口与JSP对象比较:
Servlet接口 JSP内置对象 HttpServletRequest request HttpServletResponse response ServletConfig config HttpSession Session,通过request.getSession()取得 ServletContext application
取得两种方式(对应两种初始化方法)
1.无参数初始化方法
2.如果针对有参构造[init(ServletConfig)]则必须通过Config对象取得
您喜欢本文吗?即刻订阅"Alex's Blog",精彩文章不再错过!点击下列按钮收藏本文.