`
chenhua_1984
  • 浏览: 1234439 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

servlet知识回顾笔记(二):servlet基础知识

阅读更多

1什么是servlet?

 答:一个运行在服务器端的,用java编写的程序,用来处理客户端的请求。

2HttpServlet基础知识?

  1httpservlet继承GenericServlet,是一个抽象类,public abstract class HttpServlet extends GenericServlet implements Serializable,主要用来处理get和post请求的。主要的方法:

 Apublic void doGet(HttpServletRequest req,HttpServletResponse res):doGet() 方法处理客户端作出的 GET 请求。

  protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException
    {
        String protocol = req.getProtocol();
        String msg = lStrings.getString("http.method_get_not_supported");
        if(protocol.endsWith("1.1"))
            resp.sendError(405, msg);
        else
            resp.sendError(400, msg);
    }

 Bpublic void doPost(HttpServletRequest req,HttpServletResponse res):doPost() 方法处理客户端作出的 POST 请求。

  protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException
    {
        String protocol = req.getProtocol();
        String msg = lStrings.getString("http.method_post_not_supported");
        if(protocol.endsWith("1.1"))
            resp.sendError(405, msg);
        else
            resp.sendError(400, msg);
    }

3javax.servlet 包的主要接口:

  1ServletConfig 接口:在初始化的过程中由 Servlet 容器使用

  2ServletContext 接口:定义 Servlet 用于获取来自其容器的信息的方法

  3ServletRequest 接口 :向服务器请求信息

  4ServletResponse 接口 :响应客户端请求

4javax.servlet 包的主要类:

  1ServletInputStream: 类用于从客户端读取二进制数据

  2ServletOutputStream 类:用于将二进制数据发送到客户端
5javax.servlet.http 包的接口:

  1HttpServletRequest 接口:提供 HTTP 请求信息

  2HttpServletResponse 接口:提供 HTTP 响应

6Servlet 的生命周期

  Servlet 容器创建 Servlet 的一个实例
  Servlet 的生命周期就是指创建 Servlet 实例之后其存在的时间以及何时消失
  生命周期的 3个方法为:init(),service(),destory().

7生命周期的各个阶段为:

     A 实例化:Servlet 容器创建 Servlet 的实例

     B 初始化:该容器调用 init() 方法
     C 服 务:如果请求 Servlet,则容器调用 service() 方法

     D 销 毁:销毁实例之前调用 destroy() 方法
     E 不可用:销毁实例并标记为垃圾收集
 8一个简单的 Servlet 实例:

简单实例 写道
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ClientServlet extends HttpServlet
{
protected void doGet(HttpServletRequest
 request, HttpServletResponse response)
throws IOException, ServletException
{
  response.setContentType(“text/html;charset=GBK”);
  PrintWriter out= response.getWriter();
  out.println(“<html><body> 您好!</body></html>”);
}
}

 
     9Servlet 的部署

  web.xml文件中配置Servlet:

web.xml 写道
<servlet>
<servlet-name>clientservlet</servlet-name>
<servlet-class>chapter2.ClientServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>clientservlet</servlet-name>
<url-pattern>/clientservlet</url-pattern>
</servlet-mapping>

 
一个处理get请求的例子:

 

处理get请求 写道
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
   response.setContentType(CONTENT_TYPE);
   response.setCharacterEncoding("GB2312");
   PrintWriter out = response.getWriter();
   try {
     String username = request.getParameter("username");
     String password = request.getParameter("password");
     if (username.equals("") || password.equals("")){
      userInterface(response);
     }
     else{
       out.println("<b>"+username + "</b> 欢迎第一次使用Servlet<br/>");
       out.println("<b>今天的日期是:</b>" + new Date());
   }
  }
   catch(Exception e){
   userInterface(response);
  }
 out.close();
 }
}

 

UserInterface 写道
public void userInterface(HttpServletResponse response)throws IOException
{
PrintWriter out=response.getWriter();
  out.println("<html>");
  out.println("<head><title>loginservlet</title></head>");
  out.println("<body bgcolor=\"#ffffff\">");
  out.println("<h1 align=center>欢迎第一次使用Servlet</h1>");
  out.println("<form method=post action=/ServletModule/loginservlet");
  out.println("<br/>");
  out.println("用户名:<input type='text' name='username'><br/>");
  out.println("密码:<input type='password' name='password'><br/>");
  out.println("<input type=submit value='提交'><br/>");
  out.println("</form>");
  out.println("</body>");
  out.println("</html>");
}

 10:总结:

   1Servlet 运行于服务器上,它接受请求并用请求的数据响应客户端
   2HTTP 是一个广泛使用的协议,用于在客户端和服务器之间传输数据
   3Servlet 广泛使用 HTTP 协议,因此称为 HTTP Servlet
   4HTTP Servlet 发送 HTTP 请求并接收 HTTP 响应
   5Servlet API 包含在两个包中,即 javax.servlet 和 javax.servlet.http 中
   6Servlet 的生命周期包含三种方法,分别是 init()、service() 和 destroy()
   7Servlet 既可以扩展 GenericServlet 类,也可以扩展 HttpServlet 类
  

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics