Servlet简介

1.Servlet Java用来创建动态WEB应用的服务器端组件,可以被部署在Java WEB服务器中,例如:Tomcat、JBoss、WebLogic等主流服务器中。Servlet可以对用户发出的请求作出响应。

2.为什么需要动态创建Web页面?

Web页面给予用户提交的 数据

例如,搜索引擎的结果和在线商店的订单确认信息

Web页面基于用户提交的数据

例如,天气预报和新闻头条

页面信息来自数据库

例如,电子商务网站的每日销售商品的价格清单

3.Servlet的功能

读取客户端发来的显示信息(表单数据)

读取客户端发来的隐式信息(请求头信息)

生成相应结果

发送显示信息给客户端(HTML)

发送隐式数据到客户端(状态码和响应头信息)

实例

.xml代码

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>week3day301</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>MyServlet</display-name>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>com.geek99.demo.MyServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/index.jsp</url-pattern>
  </servlet-mapping>
</web-app>

MyEclipse代码

package com.hp.demo;

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;

/**
 * Servlet implementation class MyServlet
 */
public class MyServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * Default constructor. 
     */
    public MyServlet() {
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//HttpServletRequest request           请求
		//HttpServletResponse response         响应类
		
		PrintWriter out = response.getWriter();
		out.println("Hello Servlet");
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}



<think>嗯,用户想了解Servlet的基本概念和主要特性。首先,我需要回忆一下Servlet相关的知识。根据之前提供的引用内容,Servlet是运行在支持Java的服务器上的组件,用来扩展Web服务器的功能,特别是替代CGI。引用2提到Tomcat是Servlet容器,负责处理请求和响应,而Servlet则是处理业务逻辑的组件。 Servlet的生命周期由容器管理,包括初始化、处理请求和销毁。引用3和4提到容器加载Servlet,处理HTTP请求,之后请求和响应对象会被销毁。这说明Servlet是单例多线程的,每次请求会复用同一个实例,但每个请求在独立的线程中运行,这样可以高效处理并发。 主要特性方面,Servlet基于Java,所以跨平台;处理请求高效,因为避免了CGI的进程开销;支持各种HTTP方法,如GET、POST;生命周期管理由容器负责,开发者只需关注业务逻辑;还能与其他Java技术集成,比如JSP和JDBC。这些信息需要组织成用户容易理解的回答,结构要清晰,分点说明。 然后要生成相关问题。用户可能对Servlet与CGI的区别、生命周期、线程安全、与Tomcat的关系,以及实际应用场景感兴趣。结合引用中的内容,可以提出这些问题,帮助用户进一步学习。</think>### Servlet的基本概念及特性 #### 1. **Servlet是什么?** Servlet是运行在支持Java语言的服务器上的组件,主要用于扩展Web服务器的功能。它通过处理HTTP请求与响应,实现动态网页生成或业务逻辑处理,是Java EE(现Jakarta EE)规范的核心技术之一[^2][^3]。 #### 2. **Servlet的主要特点** - **基于Java语言**:跨平台且可复用性强。 - **高效性**:与传统的CGI(通用网关接口)相比,Servlet在多线程环境下运行,避免了每次请求创建进程的开销。 - **生命周期管理**:由Servlet容器(如Tomcat)控制初始化(`init()`)、请求处理(`service()`或`doGet()/doPost()`)和销毁(`destroy()`)过程[^3][^4]。 - **协议无关性**:虽然主要用于HTTP,但也可扩展支持其他协议。 - **集成性**:可与JSP、JDBC等技术结合,构建完整Web应用。 #### 3. **核心功能** - **处理HTTP请求**:解析客户端请求参数、头信息等。 - **生成动态响应**:返回HTML、JSON或二进制数据(如图片)。 - **会话管理**:通过Cookie或URL重写跟踪用户状态。 - **资源交互**:连接数据库、调用外部API等。 #### 示例:简单Servlet代码结构 ```java public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); out.println("<h1>Hello, Servlet!</h1>"); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值