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>


目录
相关文章
|
2天前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
【6月更文挑战第23天】构建Java Web应用,Servlet与JSP携手打造在线图书管理系统,涵盖需求分析、设计、编码到测试。通过实例展示了Servlet如何处理用户登录(如`LoginServlet`),JSP负责页面展示(如`login.jsp`和`bookList.jsp`)。应用基于MySQL数据库,包含用户和图书表。登录失败显示错误信息,成功后展示图书列表。部署到Tomcat服务器测试功能。此基础教程为深入Java Web开发奠定了基础。
|
1天前
|
存储 Java C++
Java虚拟机(JVM)在执行Java程序时,会将其管理的内存划分为几个不同的区域
【6月更文挑战第24天】Java JVM管理内存分7区:程序计数器记录线程执行位置;虚拟机栈处理方法调用,每个线程有独立栈;本地方法栈服务native方法;Java堆存储所有对象实例,垃圾回收管理;方法区(在Java 8后变为元空间)存储类信息;运行时常量池存储常量;直接内存不属于JVM规范,通过`java.nio`手动管理,不受GC直接影响。
11 5
|
1天前
|
算法 Java
垃圾回收机制(Garbage Collection,GC)是Java语言的一个重要特性,它自动管理程序运行过程中不再使用的内存空间。
【6月更文挑战第24天】Java的GC自动回收不再使用的内存,关注堆中的对象。通过标记-清除、复制、压缩和分代等算法识别无用对象。GC分为Minor、Major和Full类型,针对年轻代、老年代或整个堆进行回收。性能优化涉及算法选择和参数调整。
13 3
|
1天前
|
存储 Java C++
Java虚拟机(JVM)管理内存划分为多个区域:程序计数器记录线程执行位置;虚拟机栈存储线程私有数据
Java虚拟机(JVM)管理内存划分为多个区域:程序计数器记录线程执行位置;虚拟机栈存储线程私有数据,如局部变量和操作数;本地方法栈支持native方法;堆存放所有线程的对象实例,由垃圾回收管理;方法区(在Java 8后变为元空间)存储类信息和常量;运行时常量池是方法区一部分,保存符号引用和常量;直接内存非JVM规范定义,手动管理,通过Buffer类使用。Java 8后,永久代被元空间取代,G1成为默认GC。
10 2
|
14小时前
|
Java 应用服务中间件 Apache
Maven程序 tomcat插件安装与web工程启动
Maven程序 tomcat插件安装与web工程启动
5 0
|
14小时前
|
Java 机器人 数据库
Java中的Servlet编程:从基础到高级应用
Java中的Servlet编程:从基础到高级应用
|
1天前
|
人工智能 Java BI
Java程序代码实现的实例总结
Java程序代码实现的实例总结
|
1天前
|
人工智能 算法 搜索推荐
Java算法编程详解和程序实例
Java算法编程详解和程序实例
|
1天前
|
Java
java使用多线程编写服务端与客户端文件上传程序
java使用多线程编写服务端与客户端文件上传程序
4 0