一.Servlet的编写
通常,一个基于HTTP协议的Servlet程序需要继承自javax.servlet.http.HttpServlet 。譔类继承自javax.servlet.GenericServlet 。GenericServlet类实现了javax.servlet.Servlet 接口,它是一个抽象类,实现了Servlet接口的大部分功能。Servlet是与具体协议无关的Servlet接口,也是所有Servlet的老祖宗。 我们编写J2EE程序所用到的Servlet都是继承自HttpServlet。编写一个Servlet需要符合两个条件:
1:继承HttpServlet类
HttpServlet类继承GenericServlet抽象类。GenericServlet类没有实现service()方法。而 HttpServlet类实现了service()方法。HttpServlet根据HTTP协议的GET、POST、HEAD等不同类型的请求调用相应 的doGet、doPost、doHead等式方法。示例代码如下:
- package com.taoistwar.jsp.servlet;
- @SuppressWarnings("serial")
- public class HelloWorldServlet extends HttpServlet {
- }
我们编写一个Servlet通常是为了处理HTTP请求,为了达到此目的,我们需要重写相应的方法。最常见的HTTP请求是GET和POST请求。因此,只要重写doGet和doPost方法即可。示例代码如下:
- @Override
- protected void doGet(HttpServletRequest reques, HttpServletResponse response)
- throws ServletException, IOException {
- }
- @Override
- protected void doPost(HttpServletRequest reques, HttpServletResponse response)
- throws ServletException, IOException {
- }
- package com.taoistwar.jsp.servlet;
- import java.io.IOException;
- import java.io.PrintWriter;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- @SuppressWarnings("serial")
- public class HelloWorldServlet extends HttpServlet {
- @Override
- protected void doGet(HttpServletRequest reques, HttpServletResponse response)
- throws ServletException, IOException {
- this.doPost(reques, response);
- }
- @Override
- protected void doPost(HttpServletRequest reques, HttpServletResponse response)
- throws ServletException, IOException {
- System.out.println("doPost");
- PrintWriter out = response.getWriter();
- out.println("<a href=\"http://taoistwar.iteye.com\">taoistwar</a>");
- }
- }
编写好Servlet程序后,需要配置Servlet,方可使用。需要在WEB-INF下的web.xml中配置如下代码:
- <servlet>
- <servlet-name>HelloWorldServlet</servlet-name>
- <servlet-class>com.taoistwar.jsp.servlet.HelloWorldServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>HelloWorldServlet</servlet-name>
- <url-pattern>/HelloWorldServlet</url-pattern>
- </servlet-mapping>
1。servlet的名字<servlet-name>除了不能在web.xml里面存在相同名称,可以起其它任意的名称。但要在标 签<servlet>和<servlet-mappin>中的<servlet-name>相同。
2。<servlet-class>标签则不能任意起,而是要用servlet的全名即“包+类名”。
3。<url-pattern>是指访问的路径。如果发布后的项目名为jsp,访问路径为http://127.0.0.1:8181 /jsp,则该Servlet的访问路径为http://127.0.0.1:8181/jsp/HelloWorldServlet
至此,一个可以提供服务的Sevlet编写完成!
没有评论:
发表评论