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>


目录
相关文章
|
1月前
|
Java 流计算
利用java8 的 CompletableFuture 优化 Flink 程序
本文探讨了Flink使用avatorscript脚本语言时遇到的性能瓶颈,并通过CompletableFuture优化代码,显著提升了Flink的QPS。文中详细介绍了avatorscript的使用方法,包括自定义函数、从Map中取值、使用Java工具类及AviatorScript函数等,帮助读者更好地理解和应用avatorscript。
利用java8 的 CompletableFuture 优化 Flink 程序
|
1月前
|
安全 测试技术 数据库
维护的Web应用程序
【10月更文挑战第4天】维护的Web应用程序
47 4
|
19天前
|
数据可视化 数据库 开发者
使用Dash构建交互式Web应用程序
【10月更文挑战第16天】本文介绍了使用Python的Dash框架构建交互式Web应用程序的方法。Dash结合了Flask、React和Plotly等技术,让开发者能够快速创建功能丰富的数据可视化应用。文章从安装Dash开始,逐步介绍了创建简单应用程序、添加交互元素、部署应用程序以及集成更多功能的步骤,并提供了代码示例。通过本文,读者可以掌握使用Dash构建交互式Web应用程序的基本技巧和高级功能。
35 3
|
28天前
|
Java Maven 数据安全/隐私保护
如何实现Java打包程序的加密代码混淆,避免被反编译?
【10月更文挑战第15天】如何实现Java打包程序的加密代码混淆,避免被反编译?
42 2
|
30天前
|
安全 Java Linux
java程序设置开机自启
java程序设置开机自启
|
1月前
|
JavaScript 前端开发
如何使用Vue.js构建响应式Web应用程序
【10月更文挑战第9天】如何使用Vue.js构建响应式Web应用程序
|
1月前
|
前端开发 JavaScript 测试技术
构建响应式Web应用程序:React实战指南
【10月更文挑战第9天】构建响应式Web应用程序:React实战指南
|
1月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
35 1
|
1月前
|
存储 JavaScript 前端开发
如何使用React和Redux构建现代化Web应用程序
【10月更文挑战第4天】如何使用React和Redux构建现代化Web应用程序
|
1月前
|
Java Python
如何通过Java程序调用python脚本
如何通过Java程序调用python脚本
27 0

热门文章

最新文章