Servlet之详解

Servlet之详解

1.什么是servlet?

Servlet是一种运行在服务器端的java应用程序,可以动态生成web页面。Servlet由服务器加载并运行。

2.Servlet的作用

a.Servlert什么时候被调用?

启动web服务器时或者客户端第一次请求服务时,自动装入Servlet。

b.Servlet什么时候被销毁?

web服务器关闭时。

Servlet功能很广,可以完成以下功能:

  (1)创建并返回一个包含基于客户请求性质的、动态内容的完整HTML页面。

  (2)读取客户端发来的隐藏数据

  (3)读取客户端发来的显示数据

  (4)与数据库进行通信

  (5)通过状态码和响应头向客户端发送隐藏数据。(response)

3.Servlet的生命周期

(1)加载并初始化

web服务器负责加载和实例化Servlet。在web服务器启动时完成,也可以在web服务器收到请求时完成,或者在两者之间的某个时刻。在整个生命周期只需要执行一次,主要由init()方法负责执行。无参的init()和init(ServletConfig config).一般不需要重写该方法。也可以重写。

(2)调用

web服务器调用service(HttpServletRequest request, HttpServletResponse reqponse)方法

service()再调用自身的doGet()和doPost方法处理请求。

(3)销毁

当服务器不再需要Servlet对象时,或者需要重新装入Servlet时,会执行destory()方法。只执行一次。

(4)Servlet的API

javax.servlet.Servlet

javax.servlet.GenericServlet

javax.servlet.http.HttpServlet

用户自定义Servlet


一个Servlet的Demo,重写了doGet()方法。

package henu.servlet;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import henu.bean.UserRent;
import henu.factory.DaoFactory;
/**
 * Servlet implementation class UserRentServlet
 */
@WebServlet("/UserRentServlet")
public class UserRentServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public UserRentServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html; charset=utf-8");
        UserRent userRent = new UserRent();
        userRent.setUsername(request.getParameter("username"));
        userRent.setBiketype(request.getParameter("biketype"));
        userRent.setBikenum(request.getParameter("bikenum"));
        userRent.setBikeid(request.getParameter("bikeid"));
        userRent.setStarttime(request.getParameter("starttime"));
        userRent.setOrdertiem(request.getParameter("ordertime"));
        int result = DaoFactory.getIUserRentDaoInstance().saveRent(userRent);
        System.out.println(result);
        if(result>0){
            response.sendRedirect("./jsp/MyRent.jsp");
        }
        else{
            response.sendRedirect("./jsp/RentForm.jsp");
        }
        List<UserRent> userRentList = new ArrayList<>();
        userRentList = DaoFactory.getIUserRentDaoInstance().findAll();
        for(UserRent userRent2:userRentList){
            System.out.println(userRent2);
        }
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}


()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值