当前位置:   article > 正文

JavaWeb实验报告_4

javaweb实验报告

1.引言

   本实验对应JavaWeb课程的P10和P11两节课。由于缺乏集成开发环境,导致开发Web App以及将其配置到Tomcat的过程是非常繁琐的。本实验的目的是使用IDEA工具开发Servlet,包括如何建立符合规范的文件目录结构、如何正确地导入相关类库、如何正确配置相关配置文件(web.xml)以及如何正确配置Tomcat,最终通过浏览器访问相关路径实现Web App的功能。在本实验中,Web App的功能是从数据库中查询某张表的信息,因此还涉及到JDBC的使用。
  此外,探寻Servlet的生命周期也是我们感兴趣的地方,包括Servlet对象的实例化(即调用构造函数的时机)、Service函数执行的时机以及Servlet消亡的时机(即调用destory方法的时机)。

2.实验过程

  1. 首先在IDEA中建立一个项目,选择JDK17作为该项目的JDK版本,如图1-1所示。在新建好的项目名上右键添加一个Module,命名为Servlet_01,如图1-2所示。如图1-3所示,在Servlet_01这一模块上右键,选择add framework support,选择Web Application,就可以在文件目录中新建一个WEB-INF,其中包含了web.xml文件。
    在这里插入图片描述

    图1-1
    在这里插入图片描述
    图1-2

  2. 在Servlet_01这个Module下新建一个src文件夹,并建立一个Java源文件,取名为com.bjpowernode.studentServlet。其中,com.bjpowernode为包名。由于该studentServlet需要实现Servlet接口,而IDEA并没有servlet-api.jar这个包,于是需要从外部引入External libraries中去,如图1-3所示。
    在这里插入图片描述

    图1-3

  3. 为了将Web App部署到Tomcat服务器中并运行,配置Tomcat服务器并部署Web App的入口如图1-4所示;配置Tomcat服务器过程如图1-5所示,其中箭头所指的地方是启动Tomcat服务器所展示的页面。在IDEA中Tomcat是不提供默认页面的,所以如果不新建一个HTML并作为Tomcat默认的启动页面,会产生404错误,即无法找到启动页的位置;部署Web App的过程如图1-6所示,添加artifacts并提供一个项目名称,此时Tomcat服务器的配置以及Web App的部署过程完成。

在这里插入图片描述

图1-4 在这里插入图片描述
图1-5

在这里插入图片描述

图1-6

  1. 建立一个studentServlet,其代码如下,注意PrintWriter的作用!
package com.bjpowernode;

import jakarta.servlet.*;

import java.io.IOException;
import java.io.PrintWriter;
import java.lang.ref.Reference;

public class studentServlet implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
  
    }
    @Override
    public ServletConfig getServletConfig() {
        return null;
    }
    @Override
    public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        // PrintWriter类是Java中的一个输出流类,它可以将数据(0和1的序列)转换成字符并输出到文件、控制台或网络等地方。
        // 在计算机中,数据由0和1组成,字符输出流可以将0和1转换成字符的形式输出(写入)到指定的位置。当我们说将格式化的文本数据写入字符输出流时,意味着可以将字符以特定的格式展示数据。
        // 而PrintWrite正是这样的类,将数据(电信号)转换成字符的形式,并以某种格式打印出来
        // 这种格式由response提供,即“text/html"
        PrintWriter out=response.getWriter();
        out.println("Hello");
    }
    @Override
    public String getServletInfo() {
        return null;
    }
    @Override
    public void destroy() {
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  1. web.xml的配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
   
    <servlet>
        <servlet-name>studentServlet</servlet-name>
        <servlet-class>com.bjpowernode.studentServlet</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>studentServlet</servlet-name>
        <url-pattern>/studentServlet</url-pattern>
    </servlet-mapping>
</web-app>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

6.student.html的代码如下,注意与web.xml不同的是,这里添加了项目名/web,后面接的是web.xml中/studentServlet中的值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>

<body>
    <a href="/web/studentServlet">StudentList</a>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

3.实验结果

  实验结果比较简单,即在http://localhost:8080/web/student.html这个面上有一个超链接,该超链接指向 http://localhost:8080/web/studentServlet,该页面展示了studentServlet执行的结果。在实验中,我们需要向External libraries中添加servlet-api.jar和jsp-api.jar以保证IDEA编译通过,但我们发现,Tomcat的lib库中没有任何包含任何与JDK相关的包,那么Tomcat是如何读取字节码文件的呢?从上述实验中可以得到以下结论:

  1. Tomcat服务器并不需要在其lib文件夹中包含JDK相关的包来读取字节码文件。Tomcat使用Java虚拟机(JVM)来解释和执行字节码文件,而JDK中的核心类库已经包含在JVM中。当你启动Tomcat服务器时,它会使用配置文件中指定的JDK路径来启动相应的JVM。这个JVM会加载并解释字节码文件,执行Servlet和其他Java类的代码。
  2. 在IDEA中,Tomcat没有提供默认页面。如果启动Tomcat后访问localhost:8080,会显示找不到资源(404错误),因此在配置Tomcat时,需要给它提供一个默认页面,例如图1-5的箭头。
  3. WEB-INF下的lib库中,是放置Web App需要的包,因为这些包不存在于JVM中,也不存在于Tomcat的lib文件夹下;此外,如果把这些包放置在external libraries中是不可行的,因为这个库是为IDEA提供jar包,而Web App运行在Tomcat上时,是无法获取这些jar包的支持的。比较常见的、需要放在lib中的包如 mysql-connector-java.jar

4.附录(完整的建立步骤)

  1. 以new Project的形式建立一个Java Project。
  2. 在Project中添加一个module。
  3. 为module添加Web Application的框架支持(即在module上右键add framework support)。
  4. 为module添加dependencies(servlet-api.jar与jsp.jar)。
  5. 编写servlet源代码文件,并配置web.xml。
  6. add new configuration(即配置Tomcat的参数),同时建立一个Tomcat启动页,将其作为Tomcat启动时的启动页。
  7. 将web app部署到Tomcat服务器中(即添加artifacts),并给予一个项目名。
  8. 启动Tomcat。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/191669
推荐阅读
相关标签
  

闽ICP备14008679号