[Java Web开发]Servlet学习

一、什么是Servlet

Servlet是SUN公司提供的一门用于开发动态web资源的技术。它是Java Web三大组件 之一,它工作在客户端请求与服务器响应的中间层。

二、Servlet生命周期

代表生命周期的三个方法:init()、service()、destroy()。

  1. init():当Servlet第一次被装载时,Servlet引擎调用init()方法,只调用一次。
  2. service():这是Servlet真正处理请求的地方。对于每个请求,Servlet引擎将调用Servlet的service方法,并把Servlet请求和响应对象做为参数传递给它。
  3. destroy():当Servlet即将被卸载时由Servlet引擎来调用,这个方法用来清除并释放在init方法中所分配的资源,只调用一次。

在这里插入图片描述

三、Servlet工作过程

  1. 客户端对web服务器发出访问请求。
  2. web服务器接收到请求后将其发送给Servlet。
  3. Servlet容器为此产生一个实例对象并调用ServletAPI中相应的方法来对客户端HTTP请求进行处理,然后将处理的响应结果返回给WEB服务器。
  4. web服务器把从Servlet实例对象中收到的响应结果发送回客户端。
    在这里插入图片描述

四、Servlet项目实战

新建项目:
在这里插入图片描述

  1. Dnamic Web Project:If you want to create a content-based Web application that does not contain any dynamic content (such as servlets, JSP files, filters, and associated metadata) you might prefer to create a static Web project, as opposed to a dynamic Web project.
  2. Static Web Project:Create a Web project for static content (HTML files) only.

项目取名为:HelloServlet
在这里插入图片描述
如果Target runtime为空,请参考:安装和配置Tomcat详解 进行配置。

在这里插入图片描述
新建Servlet
方法一:
在这里插入图片描述
方法二:
在这里插入图片描述
包名和类名:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点Finish生成Hello类:
在这里插入图片描述
新建XML文件:
在这里插入图片描述
在这里插入图片描述
编辑Web.xml文件代码:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<servlet>
		<!-- 类名 -->
		<servlet-name>Hello</servlet-name>
		<!-- 所在的包 -->
		<servlet-class>com.lj.hello.Hello</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>Hello</servlet-name>
		<!-- 访问的网址 -->
		<url-pattern>/hello</url-pattern>
	</servlet-mapping>
</web-app>

在这里插入图片描述
com.lj.hello.Hello,不能写错了:包名+类名。

doGet里面加代码:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("HelloWorld!!!");

	}
	

在这里插入图片描述

运行项目:
在这里插入图片描述
没Server时:
在这里插入图片描述
有Server时:
在这里插入图片描述
如果报错:
在这里插入图片描述

在这里插入图片描述
如报:“HttpServlet cannot be resolved to a type”这种报错。
请参考:关于HttpServlet cannot be resolved to a type的解决方法

成功运行后:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

joinclear

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值