栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Servlet开发流程及运行流程

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Servlet开发流程及运行流程

Servlet运行流程
  • 浏览器根据用户输入的url发送请求到达服务器
  • tomcat服务器会根据浏览器发送来的请求找到对应的项目
  • 根据项目名后面的url-pattern去web.xml中寻找对应的Servlet
    + 如果找到了执行当前Servlet类中的service方法
    + 如果没找到则404
    + 如果找到了代码运行报错,则500
Servlet开发流程
  1. 导入jar包

  2. 编写一个Servlet类
    创建一个类继承HttpServlet
    并重写service方法(该方法相当于J2SE项目中的main方法)

package net.wanhe.j2ee.test;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class MyServlet extends HttpServlet {
	
	
	@Override
	protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
		System.out.println("HelloWorld!");
	}
	
}
  1. 配置 web.xml


  j2ee
  
  
  
  	
  	myServlet
  	
  	net.wanhe.j2ee.day07.MyServlet
  
   
  
  	myServlet
  	
  	/a
  
 

  1. 运行与部署

  2. URL

http://localhost:8080/项目名/url-pattern
eg:http://localhost:8080/j2ee/a
  • 服务启动时
    + 将指定的项目打包存放到tomcat的webapps文件夹中
  • localhost:8080
    + 找到了本地计算机中的tomcat服务
  • /项目名
    + 找当前tomcat服务中指定的项目
  • /url-pattern
    + 运行当前项目中的哪一个Servlet类
    + url-pattern不能重复,一个url-pattern只能对应一个Servlet类
响应数据

当用户在浏览器发送了一个请求到达服务器时

  • Servlet会产生两个对象
  • 请求对象:HttpServletRequest
    + 记载了请求信息(客户端传输过来的信息)
  • 响应对象:HttpServletResponse
    + 空的没有任何内容
    + 当service方法执行完毕后,服务器会自动将该对象传回客户端
    • 浏览器会自动读取响应对象中的内容,在页面展示(识别标签)
package net.wanhe.j2ee.test;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Test01 extends HttpServlet {
	
	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println(1111);
		//输出流  用于向响应对象中写入数据
		PrintWriter out = response.getWriter();
		//将数据写到响应对象中
		out.write("

大家好"); } }

获取请求数据

localhost:8080/j2ee/test01?key=value&key=value

package net.wanhe.j2ee.test;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Test01 extends HttpServlet {
	
	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//用户发送请求 请求的数据全部存放在request中
		//从请求对象中获取指定的参数的值
		//如果指定的key在请求中不存在 则取到的值为null
		String loginName = request.getParameter("loginName");
		String password = request.getParameter("password");
		System.out.println(loginName);
		System.out.println(password);
	}
}
WEB项目完整运行流程
  • tomcat服务启动,读取web.xml配置文件,将该文件中的内容加载到注册列表中
  • 用户在浏览器发送请求
  • 请求到达服务器
  • 根据请求信息,找到服务器中对应的项目
  • 根据url-pattern去注册列表中寻找对应的Servlet类
  • 如果没找到,则会报错,404
  • 如果找到了,并且是第一次访问这个类,那么tomcat会为这个类创建对象,并且调用该对象的service方法
  • 如果不是第一次访问,则直接调用已经存在的当前对象的service方法
  • 在每一次调用service方法之前,都会创建两个对象HttpServletRequest,HttpServletResponse
    + 将这两个对象交给即将调用的service方法
  • 综上所述,Servlet对象只会被创建一次,第一次访问时创建
  • service方法执行结束后,服务器会将响应对象交给浏览器
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/827106.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号