标签:host col javaweb 实现原理 -- 应用 jsp splay package
web服务器收到客户端的Servlet访问请求后,若是服务器装载并创建了Servlet的实列对象
1) Tomcat将http请求文本进行解析,然后封装称为HttpServletRequest类型的Requset对象
2) Tomcat将要响应的信息封装为HttpServletResponse类型的response对象进行返回
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { request; HttpServletResponse response; try { request = (HttpServletRequest)req; response = (HttpServletResponse)res; } catch (ClassCastException var6) { throw new ServletException("non-HTTP request or response"); } this.service(request, response); }
三 创建一个Servlet
3.1 Servlet的执行流程
首先,如果浏览器由这样一个输入:http://localhost:8080/demo/MyServlet
http:http协议
统一资源定位符URL。
格式:<协议>://<主机>:<端口>/<路径>
localhost:域名
8080:Tomcat端口号
demo: web应用的名称,在webapps下找是否存在demo的目录。
MyServlet:web资源,在demoweb的应用的应用下查找是否存在此资源。
/MyServlet资源就是我们的一个Servlet
-> 得到/MyServlet字符串
-> 使用/MyServlet到web.xml文件中查找每一个<servlet-mapping>下的<url-pattern>标签里的内容,然后得到sevlet-name
-> 使用sevlet-name去servlet标签中找到对应的相同名称的servlet配置。
-> 得到servlet配置中的servlet-class内容。
<servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
3.2 DIEA开发Servlet
1 新建JAVA EE Web Appication工程。
2 新建一个Servlet类。
3 导入需要依赖的tomcat目录下的servlet-api.jar包
4 编写FirstServlet的代码.
package javademo; import java.io.IOException; import java.io.PrintWriter; public class FirstrServlet extends javax.servlet.http.HttpServlet { protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { } protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { response.setContentType("text/html"); PrintWriter pw = response.getWriter(); pw.write("<h1> hello first servlet!</h1>"); } }
5 编写web,xml配置文件 dom4j才能正确解析
<servlet> <servlet-name>FirstrServlet</servlet-name> <servlet-class>javademo.FirstrServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>FirstrServlet</servlet-name> <!-- 响应所有请求--> <url-pattern>/FirstrServlet</url-pattern> </servlet-mapping>
3.3 详解Servlet实现原理
标签:host col javaweb 实现原理 -- 应用 jsp splay package
原文地址:https://www.cnblogs.com/zqoceean/p/9343491.html