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);
}
}
()