Servlet学习笔记

  在JAVA WEB中,jsp的本质即是Servlet。Web容器中的jsp页面最终会将其编译成对应的Servlet。但为什么不直接使用Servlet呢?其原因大致有两个:

  1. 开发效率低。特别是生存表现层页面时(即HTML页面),所有HTML标签都要使用out.println();来输出,这就足以看出其麻烦的程度。

  2. 非程序员(页面的美术设计人员)一般难以参与Servlet页面的开发,因为Servlet是标准java类。

 

  在写Servlet类的时候,必须继承HttpServlet。HttpServlet中提供了不同的方法用于响应客户端的请求:

    1. doGet   用于响应GET请求

    2. doPost    用于响应POST请求

    3. doPut   用于响应PUT请求

    4. doDelete   用于响应DELETE请求

    5. doOptions 用于处理OPTIONS请求

    6. doTrace  用于处理TRACE请求

  当客户端发出相应请求时,就会调用响应的方法。而要注意的是,在写Servlet类的时候,需要重新定义这些方法,以能够作对应处理。当然,除此之外还有另外的方法:

    1. service   用于判断客户端的请求类型,并调用相应的处理方法(若所有请求的处理是相同的,可直接重写这个方法)

    2. getAllDeclaredMethods 获取指定类的所有方法

    3. maybeSetLastModified 暂时不知道干嘛的

    4. init    用于创建Servlet实例时,初始化Servlet资源

    5. destroy  用于销毁Servlet实例时,回收资源

    ......

 

配置Servlet:

  有两种配置Servlet的方式:

    1. 在Servlet中用@WebServlet来配置(红色代码部分)

import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.PrintStream; @WebServlet(name="firstServlet",urlPatterns = {"/firstServlet"}) public class FirstServlet extends HttpServlet{ public void init() throws ServletException{ System.out.println("collected successful!"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,java.io.IOException{ request.setCharacterEncoding("GBK"); response.setContentType("text/html;charSet=GBK"); String num=request.getParameter("number"); //request.setAttribute("res",num); PrintStream out=new PrintStream(response.getOutputStream()); out.println("<html>"); out.println("<head>"); out.println("<title>firstServlet</title>"); out.println("</head>"); out.println("<body>"); out.println("res: "+(Integer.valueOf(num)*Integer.valueOf(num))); out.println("</body>"); out.println("</html>"); } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyyxpz.html