Servlet的执行流程和生命周期
Servlet的执行流程
首先是浏览器地址:
http://IP+端口号/Servlet映射的名称
然后看一个web的xml文件
web.xml
<servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>cn.dl.servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/ms</url-pattern> </servlet-mapping>
servlet的执行流程:
1.从url-pattern开始,url-pattern是servlet的映射的名称
2.<servlet-mapping>中的servlet-name,这个servlet-name要与<servlet>中的servlet-name一致
3.通过servlet-name找到对应的servlet-class地址,通过反射的方式执行service()方法
另外:3.0之后的版本可以使用@WebServlet注解,而不需要配置web.xml
配置注解步骤:
- 创建java web项目,选择servlet版本3.0以上的,可以不创建web.xml文件
- 定义一个类,实现Servlet接口
- 重写方法
- 在类上使用注解@WebServlet("资源路径")进行配置
例如:
login.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <base href="http:localhost:8080/"/> </head> <body> <form action="/Login" method="post"> 用户名:<input type="text" name="username"/><br> 密 码:<input type="password" name="password" /><br> 登录:<input type="submit" value="登录" /> </form> </body> </html>
RegisterServlet.jsp
@WebServlet("/Login") public class LoginServletH extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); String username = request.getParameter("username"); String password = request.getParameter("password"); System.out.println("username:"+username); System.out.println("password:"+password); } }
Servlet的生命周期

1.被创建:执行init()方法,只执行一次
2.提供服务:执行service()方法,执行多次方法
3.被销毁:执行destroy()方法,只执行一次

浙公网安备 33010602011771号