在我理解看来,发生请求后主要是通过域进行相互间的协调作用的。表单数据可以从request域中获得,也可以通过response域返回数据给前台。
当发起http请求后,已经启动的Tomcat服务器解析收到的请求的资源地址,并且根据web.xml文件创造了servlet对象,同时创造了代表请求的request对象和response对象,然后会执行该servlet的doget()方法,在doget()方法中就可以通过request.getParameter("key")从提交的表单中获得相应的数据。然后可以封装对象进行相应的service层和dao层的操作。
做了一个小的demo来进行简单的验证启动服务器后,是否能正常工作。如下:
1.在工程中创建了a.jsp文件,并编译如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>欢迎</title> </head> <body> 欢迎学习JavaWeb! </body> </html>
2.启动tomcat服务器成功后发布该工程项目。可在webapps目录下看到工程及该文件。
3.在浏览器中发出http请求可成功运行该文件。
并且在work目录中找到该jsp文件运行后的执行文件
于是我们也可以发现jsp文件在执行后会被翻译为servlet中的Java语句而执行,也就证明了jsp的本质是servlet。