Java Web——Servlet、HttpServlet

什么是Servlet?

  •  从广义上讲,Servlet规范是由Sun公司制定的一套技术标准,包含与Web应用相关的一系列接口(即Servlet是一个接口)
  • 从狭义上讲,Servlet指的是javax.servlet.Servlet接口及其子接口,也可以指实现了Servlet接口的实现类。
  • Servlet 作为服务器端的组件,它的本意是“服务器端的小程序”。

Servlet作用:

  •   接收来自客户端的请求
  •   处理来自客户端的请求
  •   完成响应(将处理结果回送给客户端(浏览器))

Servlet并不是所有请求都处理,一个Servlet只能处理一个指定的请求。

 

JavaWeb项目创建Servlet的方式:

  • 手动创建:implements Servlet →  需要自己配置web.xml  → 调用service()方法
  • 自动创建:extends HttpServlet   → 自动配置好web.xml → 调用doGet()/doPost()方法

        注:Post请求只有一种,就是Form表单提交,指定method="post"

               其余的例如超链接、img src="" .....均是Get请求

 

①手动编写Servlet的三个步骤:

  1. 创建自己的类XXXServlet,并实现Servlet接口  (Eclipse→New→Servlet)
  2. 实现service()方法
  3. 在web.xml中配置servlet信息

web.xml中配置事例:

<!--在servlet标签中配置servlet的类信息,告诉服务器我有这个servlet类--> 
 <servlet>
    <description></description>
    <!--配置servlet的名字,自己起的别名,给程序员看的-->
    <display-name>MessageServlet</display-name>
    <servlet-name>MessageServlet</servlet-name>
    <!--配置servlet类的全包名,给服务器看的-->
    <servlet-class>cn.lk.wjyl.web.servlets.MessageServlet</servlet-class>
  </servlet>
  <!--servlet映射信息-->
  <servlet-mapping>
    <servlet-name>MessageServlet</servlet-name>
    <!--用于配置此servlet处理哪个请求-->
    <url-pattern>/MessageServlet</url-pattern>
  </servlet-mapping>

Servlet生命周期:

  • Servlet是跑在Tomcat服务器上的, 所以Tomcat服务器可看做是Servlet的容器。
  • 当我们第一次访问Servlet时。
  1. 创建一个Servlet对象(即执行构造方法)
  2. 调用init()方法
  3. 调用Service方法处理请求
  • 之后的每次请求
  1. 只调用Service()方法来处理请求  即 整个WEB项目运行期间,Servlet只创建一次/个(单实例、多线程模式下运行)。
  • 当停止Tomcat服务器后(项目从服务器上卸载)
  1. 调用destory()方法
public class HelloServ implements Servlet{

	private ServletConfig config = null;
	
	public HelloServ() {
		
	}
	
	//Servlet初始化方法,由Tomcat服务器调用
	@Override
	public void init(ServletConfig config) throws ServletException {
		this.config = config;
	}
	
	//获取Servlet的配置信息
	@Override
	public ServletConfig getServletConfig() {
		return config;
	}

	//返回Servlet的描述信息
	@Override
	public String getServletInfo() {
		return null;
	}

	//处理请求
	@Override
	public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
		
	}
	
	//销毁Servlet对象,由Tomcat进行销毁。
	@Override
	public void destroy() {
		
	}
}

ServletConfig

详见:https://mp.csdn.net/postedit/93469033

 

②Eclipse自动创建Servlet

New → Servlet

@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public HelloServlet() {
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	}
}

 

HttpServlet

httpServlet专门为处理Http请求定制的Servlet  因为Web应用都是应用的Http,所以也就是为Web应用定制的。

HttpServlet原理如下:↓

 

HttpServletRequest request 代表封装浏览器请求信息的对象

HttpServletResponse response 代表要发送给浏览器的响应对象

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	  //1.可以给浏览器响应/回传一个字符串
	  PrintWriter writer = response.getWriter();
	  writer.write("Hello....");
	  //2.可以重定向到一个页面或者其他资源
	  response.sendRedirect("success.html");
	}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值