一、Servlet—server applet 1. 概念:运行在服务器端的小程序 Servlet就是一个接口,定义了java类被浏览器访问到,即被tomcat所识别,的规则 将来我们自定义一个类,实现servlet接口,复写方法 2. 快速入门 1) 创建JavaEE项目 2) 定义一个类,实现servlet接口 3) 实现接口中的抽象方法 4) 配置servlet 一、Servlet—server applet Servlet 是 Java Web 开发中的核心组件之一,它是一个由 Java 编写的服务器端小程序,负责处理来自客户端(通常是浏览器)的请求并返回响应。Servlet 不是具体的类,而是一个接口,定义了如何与 Web 容器交互的规范。在实际开发中,我们会创建一个类去实现 Servlet 接口,并覆盖其中的方法来处理请求和生成响应。 1. 快速入门 创建 JavaEE 项目后,我们首先定义一个类,如 `MyServlet`,然后让这个类实现 `javax.servlet.Servlet` 接口。接下来,我们需要实现接口中的 `service()` 方法,这是Servlet的核心,用于处理客户端的请求。此外,为了简化开发,通常我们会继承 `javax.servlet.http.HttpServlet` 类,它已经为我们实现了 `service()` 方法,我们只需重写 `doGet()` 和 `doPost()` 方法即可。 2. 执行原理 当客户端发起请求到达服务器时,Tomcat 或其他 Web 容器会根据配置找到对应的 Servlet 实例,如果该实例不存在,容器会创建一个新的实例,然后调用 `service()` 方法,再根据请求类型调用 `doGet()` 或 `doPost()`。 3. Servlet 中的生命周期 Servlet 的生命周期包括加载、初始化、服务、销毁四个阶段。加载时,Web 容器会创建 Servlet 的单个实例。初始化阶段,容器调用 `init()` 方法。服务阶段,每次请求都会调用 `service()`。当服务器关闭或容器决定释放资源时,会调用 `destroy()` 方法。 4. Servlet3.0 Servlet 3.0 引入了许多改进,如注解配置,不再需要在 web.xml 文件中显式注册 Servlet,可以直接在类上使用 `@WebServlet` 注解进行声明。此外,还支持异步处理,使得 Servlet 可以在不阻塞线程的情况下处理长时间运行的任务。 5. IDEA 与 Tomcat 的相关配置 在 IntelliJ IDEA 中,可以通过内置的 Tomcat 插件配置并运行 Web 应用。设置服务器路径、部署应用等,确保正确配置 `web.xml` 文件或者使用注解的方式。 6. Servlet 的体系结构 Servlet 位于 Web 容器内,通过 `HttpServletRequest` 和 `HttpServletResponse` 接口与 HTTP 协议交互。它们提供了获取请求参数、设置响应状态码、写入响应体等功能。 7. Servlet 相关配置 在 `web.xml` 配置文件中,我们可以定义 Servlet 的映射路径、初始化参数、加载优先级等,也可以在这里配置过滤器和监听器。 二、HTTP HTTP 是互联网上的主要通信协议,用于从 Web 服务器传输超文本到客户端。它定义了客户端和服务器之间数据交换的格式和规则。 1. 概念 HTTP 是一种无状态、基于文本的协议,主要用于传输 HTML 文档,但也常用于传输 JSON、XML 等其他格式的数据。 2. 请求消息数据格式 请求消息由请求行、请求头和空行组成,请求行包含方法、URL 和 HTTP 版本,例如:`GET /index.html HTTP/1.1`。 3. 响应消息数据格式 响应消息包含状态行、响应头和空行,状态行包含 HTTP 版本、状态码和原因短语,如:`HTTP/1.1 200 OK`。 三、Request 对象 `HttpServletRequest` 对象代表客户端的请求,包含了请求参数、请求头等信息。 1. Request 和 response 对象的原理 这两个对象由 Web 容器创建并传递给 Servlet,它们封装了 HTTP 协议的细节,使开发者可以专注于业务逻辑。 2. request 对象继承体系结构 `HttpServletRequest` 继承自 `ServletRequest`,提供了访问请求参数、获取请求头、读取请求体等方法。 3. request 功能 - 获取请求方法(GET、POST等):`getMethod()` - 获取请求 URL:`getRequestURI()` - 获取请求参数:`getParameter(String name)` - 获取所有请求参数:`getParameterNames()` - 读取请求体(POST数据):`getInputStream()` 或 `getReader()` 四、案例:用户登录 1. 用户登录案例需求 用户提交用户名和密码,服务器验证信息,成功则允许登录,失败则显示错误信息。 2. 开发步骤 - 创建登录页面 `Login.html`,使用 `<form>` 标签指定提交的 action 和 method。 - 编写 Servlet 处理登录请求,获取 `HttpServletRequest` 中的参数,进行数据库验证。 - 设置 `HttpServletResponse` 的响应状态码和响应体,将结果返回给客户端。 3. Login.html 中 form 表单的 action 表单的 `action` 属性应设置为Servlet的URL映射,如 `/login`,`method` 设置为 `POST`,以便发送用户输入的数据到服务器。例如: ```html <form action="/login" method="post"> 用户名:<input type="text" name="username"><br> 密码:<input type="password" name="password"><br> <input type="submit" value="提交"> </form> ``` 以上内容涵盖了Java Web开发中的Servlet、HTTP协议、HttpServletRequest对象以及一个简单的用户登录案例,这些是构建动态网站基础架构的关键元素。理解并掌握这些概念和技术,将有助于你深入学习和开发更复杂的Web应用程序。
剩余27页未读,继续阅读
- 粉丝: 68
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助