Java Servlet基础

6.1 Servlet的部署、创建与运行

6.1.1 源文件及字节码文件

在开始编写Servlet之前,我们需要配置Java开发环境并确保已经正确安装了Java Development Kit(JDK)。在编写Servlet之后,我们需要将Java源文件编译成字节码文件(.class文件),以便在Web服务器上运行。

写一个创建 servlet 的类就是编写一个特殊类的子类,这个特殊的类就是 javax.servlet.http 包中的 HttpServlet 类。HttpServlet 实现了 Servlet 接口,实现了响应用户的方法。HttpServlet 的子类被习惯性地称作一个 Servlet 类,这样的类创建的对象习惯性的被称作一个 servlet。例如:

package moon.sun;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Example6_1 extends HttpServlet{
    public void init(ServletConfig config)throws ServletException{
        super.init(config);
}
    public void service(HttpServletRequest request,HttpServletResponse response)throws IOException{
    response.setContentType("text/html;charset = utf-8");
    printWriter out = response.getWriter();
    out.println("<html><body bgcolor = #ffccff>");
    out.println("<h1>hello servlet,你好 servlet</h1>");
    out.println("</body></html>")

}

}

6.1.2 编写部署文件web.xml

在将Servlet部署到Web服务器上之前,我们需要创建一个部署描述文件(Deployment Descriptor)web.xml。这个文件是一个XML文件,用于配置Servlet的属性、URL映射以及其他相关设置。

编写的 web.xml 文件必须保存到 Web 服务目录的 WEB-INF子目录中,例如:

<?xml version = "1.0" encoding = "utf-8">
<web-app>
    <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>moon.sun.Example6_1</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/lookHello</url-pattern>
    </servlet-mapping>
</web-app>

6.1.3 Servlet的创建与运行

要创建一个Servlet,我们需要编写一个Java类

目录

6.1 Servlet的部署、创建与运行

6.1.1 源文件及字节码文件

6.1.2 编写部署文件web.xml

6.1.3 Servlet的创建与运行

6.1.4 向Servlet传递参数的值

6.2 Servlet的工作原理

6.2.1 Servlet对象的生命周期

6.2.2 init方法

6.2.3 service方法

6.2.4 destroy方法

6.3 通过JSP页面访问Servlet

6.4 共享变量

6.5 doGet和doPost方法

6.6 重定向与转发

6.7 使用Session

总结


,并继承javax.servlet.http.HttpServlet类。在Servlet类中,我们可以实现一些特定的方法,例如doGet()doPost(),用于处理HTTP请求。

要运行Servlet,我们需要将编译后的字节码文件(.class文件)部署到Web服务器中。这通常涉及将文件复制到Web服务器的特定目录下,例如Tomcat服务器的webapps目录。一旦部署完成,Web服务器将负责处理客户端请求并执行相应的Servlet代码。

6.1.4 向Servlet传递参数的值

为了向Servlet传递参数值,我们可以通过URL查询字符串、表单数据、HTTP头等方式将数据发送到Servlet。Servlet可以通过HttpServletRequest对象来获取这些参数值,并根据需要进行处理。

6.2 Servlet的工作原理

6.2.1 Servlet对象的生命周期

Servlet对象的生命周期包括初始化、服务和销毁三个阶段。

在初始化阶段,Servlet容器负责创建Servlet实例并调用其init()方法。在这个方法中,我们可以进行一些必要的初始化操作,例如建立数据库连接或加载配置文件。

一旦初始化完成,Servlet容器将调用service()方法来处理客户端请求。在service()方法中,我们可以根据请求的类型(GET、POST等)执行相应的业务逻辑,并生成响应内容。

最后,在Servlet容器关闭或应用程序重新部署时,将调用Servlet的destroy()方法来进行善后处理,例如释放资源或保存状态。

6.2.2 init方法

在Servlet的init()方法中,我们可以执行一些初始化操作,例如读取配置文件、建立数据库连接或加载必要的资源。这个方法在Servlet实例创建后只会被调用一次,通常用于准备Servlet的运行环境。

6.2.3 service方法

Servlet的service()方法是处理客户端请求的核心方法。在这个方法中,我们可以根据请求的类型(GET、POST等)执行相应的业务逻辑,并生成响应内容。在处理完请求后,Servlet容器会负责将生成的响应发送回客户端。

6.2.4 destroy方法

在Servlet的destroy()方法中,我们可以进行一些善后处理操作,例如释放资源、保存状态或关闭数据库连接。这个方法在Servlet实例销毁之前被调用,通常用于清理Servlet的运行环境。

6.3 通过JSP页面访问Servlet

JavaServer Pages(JSP)是一种动态Web页面技术,它允许我们在HTML页面中嵌入Java代码。通过JSP页面,我们可以方便地访问Servlet并与其交互。

要在JSP页面中访问Servlet,我们可以使用JSP的内置对象requestresponse。通过这些对象,我们可以获取Servlet传递过来的参数值,并将结果显示在JSP页面上。

6.4 共享变量

Servlet容器允许在不同的Servlet之间共享数据,以便实现信息的交换和共享。我们可以使用ServletContext对象来存储和获取这些共享变量。ServletContext对象在整个Web应用程序中是唯一的,并且可以在所有的Servlet中访问到。

6.5 doGet和doPost方法

在Servlet中,doGet()doPost()方法用于处理HTTP的GET和POST请求。当客户端发送GET请求时,Servlet容器将调用doGet()方法来处理请求;当客户端发送POST请求时,容器将调用doPost()方法。

我们可以根据需要选择在这两个方法中实现相应的业务逻辑,并生成响应内容。

6.6 重定向与转发

在处理客户端请求时,Servlet可以使用重定向(redirect)或转发(forward)的方式将请求发送到其他资源。

重定向是通过发送特定的HTTP响应代码来告诉客户端将请求重新定向到另一个URL。这种方式适用于需要将请求发送到不同的Web应用程序或其他服务器的情况。

转发是将请求传递给另一个资源(如Servlet、JSP页面或静态文件)进行处理,并将其响应返回给客户端。转发是在服务器内部完成的,客户端对此一无所知。

6.7 使用Session

Servlet的HttpSession对象允许我们在多个请求之间存储和检索用户特定的信息。通过使用Session,我们可以跟踪用户的会话状态,并在不同的请求之间共享数据。

我们可以使用getSession()方法获取当前会话的HttpSession对象,并使用它来存储和获取会话数据。

总结

该章节介绍了Servlet的部署、创建和运行过程,讨论了Servlet的工作原理和生命周期。还探讨了如何通过JSP页面访问Servlet、共享变量的使用、不同HTTP请求方法的处理,以及重定向、转发和使用会话等方面的知识。通过深入了解Servlet的相关内容,我们可以更好地开发灵活、高效的Web应用程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值