javaWeb 复习系列(一)

学无止境,但也需要时常停下脚步,回头看看已经走过的路,温故知新。

学完 javaWeb 已经有一段时间了,不知道自己到底理解了多少东西,所以借写博客的机会,让自己重新回忆一遍 javaWeb 的知识点,所以准备写一些系列博客,让自己更加系统的掌握这些。

一、Servlet

servlet 是运行在 web 服务器中的 java 程序,这些程序实现了 Servlet 接口,可以响应来自客户端浏览器的请求。

1.Servlet 的生命周期

servlet 的生命周期分为4个阶段,分别为加载和实例化阶段、初始化阶段、响应客户请求阶段和销毁阶段。在加载和实例化阶段,Servlet 容器加载 Servlet 并执行它的无参构造函数,进行 Servlet 实例化。在初始化阶段,Servlet 容器先获取 ServletConfig 对象,这个对象可以从 web.xml 文件中读取 Servlet 的配置信息。然后 Servlet 容器调用 init() 方法,此方法只调用一次,它接收 ServletConfig 对象,获取 Servlet 配置信息并进行初始化。在响应客户请求阶段,Servlet 容器调用 service 方法对客户端的请求进行获取,在 service() 方法中,通过 ServletRequest 对象得到来自客户端的请求信息,经过处理后,通过 ServletResponse 对象向客户端设置响应信息。在销毁阶段,容器调用 destroy() 方法来销毁 Servlet 实例。

2.Servlet 接口的继承关系

  Servlet 接口定义了一个Servlet 所应有的方法,任何一个 Servlet 都应实现这个接口。GenericServlet  是一个抽象类,它是对 Servlet 的默认实现,它实现了 Servlet 中的大部分方法,只有 service() 方法需要使用者自行实现。HttpServlet 是专门处理 Http 请求的类,它继承自 GenericServlet ,并且实现了 service 方法,这个方法中判断了请求方式,并调用相应的 doXxx 方法,因此我们一般都直接继承自这个类,来完成我们的请求处理。以下是一个简单的 Servlet。

public class MyServlet extends HttpServlet {
 
    private static final long serialVersionUID = -1915463532411657451L;
 
    @Override
    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException 
    {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            // Write some content
            out.println("<html>");
            out.println("<head>");
            out.println("<title>MyServlet</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h2>Servlet MyServlet at " + request.getContextPath() + "</h2>");
            out.println("</body>");
            out.println("</html>");
        } finally {
            out.close();
        }
    }
 
    @Override
    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        //Do some other work
    }
}
还需要在 web.xml 文件中配置:

<?xml version="1.0"?>
<web-app     xmlns="http://xmlns.jcp.org/xml/ns/javaee"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
 
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_0.xsd"
 
            version="3.0">
 
    <welcome-file-list>
        <welcome-file>/MyServlet</welcome-file>
    </welcome-file-list>
 
    <servlet>
        <servlet-name>MyServlet</servlet-name>
        <servlet-class>com.yechoor.servlet.MyServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>MyServlet</servlet-name>
        <url-pattern>/MyServlet</url-pattern>
    </servlet-mapping>
 
</web-app>

以上就是最基本的servlet内容。


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值