5:Servlet程序-Java Web

简介: 5:Servlet程序-Java Web

5.1 Servlet要求

如果要开发一个可以处理HTTP请求的Servlet程序,首先是要继承HttpServlet类,而且在自定义的Servlet类中至少还要覆写HttpServlet类中提供的doGet()方法

• protected void doGet(HttpServletRequest req,HttpServletResponseresp) throws ServletException,IOException

5.2 创建Servlet

1.XXX extends HttpServlet
2.Override doGet doPost
3.copy to WEB-INF/classes
4.web.xml
1.<servlet><servlet-name><servlet-class></servlet>
2.<servlet-mapping><url-pattern> /
5.restart server

5.3 第一个Servlet

Servlet示例 HelloWorldServlet.java

• 需求:

编写一个生成纯文本的简单的Servlet类。• 目的:

了解Servlet的基本概念

• 在web.xml的配置

• 引入用到的包

• import javax.servlet.*;
• import javax.servlet.http.*;
• import java.io.*;

• 定义类并继承HttpServlet

• public class FirstServlet extends HttpServlet

• 编写成员方法

• 主要是重写方法doGet或doPost,成员方法service,根据浏览器请求的HTTP方法是get还是post,选择覆盖相应的方法doGet或doPost,通过接口传递的request和response对象接受客户请求,并作出响应。

• 必要时编写init、 destroy方法。

package com.org;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloWorldServlet extends HttpServlet{ //继承HttpServlet
    public void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
     //重写doGet()方法
        PrintWriter out=resp.getWriter();  //获得输出流对象
        out.println("<html><head><title>HelloWorldServlet</title></head>");  //向客户端实现输出
        out.println("<body><h1>Hello World!!!</h1>");
        out.println("</body></html");
      out.close();          //关闭流
    }
}

如何得到web.xml文件?

Tomcat安装目录下的webapps\Root\WEB-INF文件夹中可以找到web.xml文件,直接复制此文件再修改,不需要重新编写。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="https://xmlns.jcp.org/xml/ns/javaee
  https://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  version="3.1"
  metadata-complete="true">
    <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>com.org.HelloWorldServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/HelloServlet</url-pattern>
    </servlet-mapping>
</web-app>

Servlet 3.0中Servlet配置,不再需要在web.xml中配置访问的URL,直接在Servlet类中添加注解配置

package com.org;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/HelloServlet")
public class HelloWorldServlet extends HttpServlet{ //继承HttpServlet
    public void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
    //重写doGet()方法
        PrintWriter out=resp.getWriter();  //获得输出流对象
        out.println("<html><head><title>HelloWorldServlet</title></head>");  //向客户端实现输出
        out.println("<body><h1>Hello World!!!</h1>");
        out.println("</body></html");
            out.close();          //关闭流
    }
}

5.4 Servlet编译

• (1)Servlet是一个java类,可以使用任何java编译器进行编译(如使用Javac编译生成class文件)。

• (2)在eclipse中,保存文件时会自动编译。

5.5 Servlet配置

配置Servlet,以便能够被调用• 在应用的配置文件web.xml(位于WEB-INF下)中进行配置• 配置包括两部分,第一部分是Servlet的声明,第二部分是Servlet访问方式的设置。

• 首先是Servlet的声明

<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.org.HelloWorldServlet</servlet-class>
</servlet>

• 配置访问该Servlet的方式

<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>


目录
相关文章
|
25天前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
46 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
26天前
|
监控 前端开发 JavaScript
使用 MERN 堆栈构建可扩展 Web 应用程序的最佳实践
使用 MERN 堆栈构建可扩展 Web 应用程序的最佳实践
30 6
|
1月前
|
开发框架 搜索推荐 数据可视化
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
|
1月前
|
IDE Java 编译器
开发 Java 程序一定要安装 JDK 吗
开发Java程序通常需要安装JDK(Java Development Kit),因为它包含了编译、运行和调试Java程序所需的各种工具和环境。不过,某些集成开发环境(IDE)可能内置了JDK,或可使用在线Java编辑器,无需单独安装。
72 1
|
1月前
|
Java Maven Spring
Java Web 应用中,资源文件的位置和加载方式
在Java Web应用中,资源文件如配置文件、静态文件等通常放置在特定目录下,如WEB-INF或classes。通过类加载器或Servlet上下文路径可实现资源的加载与访问。正确管理资源位置与加载方式对应用的稳定性和可维护性至关重要。
57 6
|
1月前
|
存储 安全 搜索推荐
理解Session和Cookie:Java Web开发中的用户状态管理
理解Session和Cookie:Java Web开发中的用户状态管理
72 4
|
27天前
|
SQL 安全 Java
Java 异常处理:筑牢程序稳定性的 “安全网”
本文深入探讨Java异常处理,涵盖异常的基础分类、处理机制及最佳实践。从`Error`与`Exception`的区分,到`try-catch-finally`和`throws`的运用,再到自定义异常的设计,全面解析如何有效管理程序中的异常情况,提升代码的健壮性和可维护性。通过实例代码,帮助开发者掌握异常处理技巧,确保程序稳定运行。
40 0
|
1月前
|
数据可视化 数据库 开发者
使用Dash构建交互式Web应用程序
【10月更文挑战第16天】本文介绍了使用Python的Dash框架构建交互式Web应用程序的方法。Dash结合了Flask、React和Plotly等技术,让开发者能够快速创建功能丰富的数据可视化应用。文章从安装Dash开始,逐步介绍了创建简单应用程序、添加交互元素、部署应用程序以及集成更多功能的步骤,并提供了代码示例。通过本文,读者可以掌握使用Dash构建交互式Web应用程序的基本技巧和高级功能。
|
2月前
|
Java Maven 数据安全/隐私保护
如何实现Java打包程序的加密代码混淆,避免被反编译?
【10月更文挑战第15天】如何实现Java打包程序的加密代码混淆,避免被反编译?
235 2
|
2月前
|
安全 Java Linux
java程序设置开机自启
java程序设置开机自启
159 1