当前位置: 首页 > news >正文

Web应用开发 - 实训三 B Servlet基础

Web应用开发 - 实训三 B Servlet基础

    • 前言:
  • 零、前期准备
    • 准备工具
    • 创建项目
      • 导入 jar 包
      • 配置运行设置
  • 一、实训第一部分
    • 第一张图
    • 第二张图
    • 第三张图
  • 二、实训第二部分
    • 第一张图
    • 第二张图

前言:

eclipse 是不可能用的,并不是说它界面丑,也不是说它难用,而是它实在不适合我,idea 还能用一用,界面还挺符合我审美的,一些操作也比较合适。

注意:本篇文章使用的是工具是 IDEA,搭配 tomcat 10.1 使用

零、前期准备

准备工具

  • 下载 tomcat 10.1 并安装

下载地址:https://tomcat.apache.org/download-10.cgi
在这里插入图片描述

创建项目

直接新建项目,选择 Jakara EE,模板为“Web 应用程序”,接下来就直接下一步,创建。
在这里插入图片描述

导入 jar 包

  1. 找到 tomcat 的安装目录
    (默认是:C:\Program Files\Apache Software Foundation\Tomcat 10.1)
    在这里插入图片描述
  2. 回到 idea 中点击左上角的“文件” -> “项目结构”
    在这里插入图片描述
  3. 点击左侧的 “库” -> 点击 “+” -> 选择 java
    在这里插入图片描述
  4. 在弹出来的窗口中找到刚刚找到的 tomcat 安装目录,并找到 lib 文件夹下的 “servlet-api.jar ”,然后确认就好了
    在这里插入图片描述

配置运行设置

  1. 点击上方的“当前文件”,选择 “编辑配置”
    在这里插入图片描述
  2. 点击左上角的 “+”,找到 “Tomcat 服务器”本地
    在这里插入图片描述
  3. 点击 “部署”,选择 “工件”,并点击 “Servlet_war_exploded”
    在这里插入图片描述
    在这里插入图片描述
  4. 将下面的 “/Servlet_war_exploded” 改为 “/chapter03”
    在这里插入图片描述
    基本工作就到此结束,开始进入正题!!!

一、实训第一部分

第一张图

在图中目录创建 “HelloWorldServlet.java” ,代码如下:

package com.example.servlet;import jakarta.servlet.*;
import jakarta.servlet.annotation.WebServlet;import java.io.*;@WebServlet(name = "HelloWorldServlet", value = "/cn/itcast/firstapp/servlet/HelloWorldServlet")
public class HelloWorldServlet extends GenericServlet {public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {// 得到输出流 PrinterWriter 对象,Servlet 使用输出流来产生响应PrintWriter out = response.getWriter();// 使用输出流对象向客户端发送字符数据out.println("Hello World");}
}

点击右上角的三角形就可以运行项目了
在这里插入图片描述
在浏览器中打开 http://localhost:8080/chapter03/cn/itcast/firstapp/servlet/HelloWorldServlet
效果图如下所示
在这里插入图片描述

第二张图

将 “HelloWorldServlet.java” 中的代码修改成下面:

package com.example.servlet;import jakarta.servlet.*;
import jakarta.servlet.annotation.WebServlet;@WebServlet(name = "HelloWorldServlet", value = "/HelloWorldServlet")
public class HelloWorldServlet extends GenericServlet {public void init(ServletConfig config) throws ServletException {System.out.println("init methed is called");}public void service(ServletRequest request, ServletResponse response) throws ServletException {System.out.println("Hello World");}public void destroy() {System.out.println("destroy method is called");}
}

重新运行程序

在这里插入图片描述

在浏览器中打开 http://localhost:8080/chapter03/HelloWorldServlet

可以看到终端,这边是我们需要的截图(只需要截终端的那部分)
在这里插入图片描述

第三张图

分别在图中的两个路径中创建 “RequestMethodServlet.java” 和 “form.html”

在这里插入图片描述

RequestMethodServlet.java 文件中的代码如下:

package com.example.servlet;import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import java.io.*;@WebServlet(name = "RequestMethodServlet", value = "/RequestMethodServlet")
public class RequestMethodServlet extends HttpServlet {public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException {PrintWriter out = response.getWriter();out.write("this is doGet method");}public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException {PrintWriter out = response.getWriter();out.write("this is doPost method");}
}

form.html 文件中的代码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<form action="/chapter03/RequestMethodServlet" method="post">姓名<input type="text" name="name"/><br/>密码<input type="text" name="psw"/><br/><input type="submit" value="提交"/>
</form>
</body>
</html>

在浏览器中打开 http://localhost:8080/chapter03/form.html 截图,点击“提交”后截图
在这里插入图片描述
在这里插入图片描述

二、实训第二部分

第一张图

在如图文件夹中创建 “TestServlet02.java”

在这里插入图片描述
TestServlet02.java 文件代码如下

package com.example.servlet;import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebInitParam;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;
import java.io.PrintWriter;@WebServlet(name = "TestServlet02", value = "/TestServlet02",initParams = {@WebInitParam(name = "encoding", value = "UTF-8")})
public class TestServlet02 extends HttpServlet {protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {PrintWriter out = response.getWriter();// 获得 ServletConfig 对象ServletConfig config = this.getServletConfig();// 获得参数名为 encoding 对应的参数值String param = config.getInitParameter("encoding");out.println("encoding=" + param);}protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}

在浏览器中打开 http://localhost:8080/chapter03/TestServlet02 并截图

在这里插入图片描述

第二张图

在如图路径中新建文件 “TestServlet03.java”

在这里插入图片描述
TestServlet03.java 文件代码如下:

package com.example.servlet;import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;@WebServlet("/TestServlet03")
public class TestServlet03 extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html; charset=utf-8");PrintWriter out = response.getWriter();// 得到 ServletContext 对象ServletContext context = this.getServletContext();// 得到包含所有初始化参数名的Enumeration 对象Enumeration<String> paramNames = context.getInitParameterNames();out.println("all the paramName and paramValue are following: ");// 遍历所有的初始化参数名,得到相应的参数值并打印while (paramNames.hasMoreElements()) {String name = paramNames.nextElement();String value = context.getInitParameter(name);out.println(name + ": " + value);out.println("<br />");}}public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}

在如图文件 “web.xml” 中添加如图部分代码

    <context-param><param-name>companyName</param-name><param-value>itcast</param-value></context-param><context-param><param-name>address</param-name><param-value>beijing</param-value></context-param>

在这里插入图片描述
在浏览器中打开 http://localhost:8080/chapter03/TestServlet03 并截图

在这里插入图片描述

恭喜, 实训三到此结束!!!

http://www.lryc.cn/news/165888.html

相关文章:

  • Debian12安装 Docker
  • Elasticsearch:为具有许多 and/or 高频术语的 top-k 查询带来加速
  • 【pythonflask-1】简单实现加减乘除输入界面
  • 基于协同过滤算法的旅游推荐系统
  • 遇见问题:使用mybaties向数据库中插入数据,idea显示插入成功,但是数据库中并没有数据变化?
  • markdown学习笔记
  • C++项目实战——基于多设计模式下的同步异步日志系统-⑧-日志落地类设计
  • 从零开始探索C语言(八)----指针
  • SpringMVC 的三种异常处理方式详解
  • 莫比乌斯召回系统介绍
  • 使用ASM修改组件化 ARouter
  • 第21章_瑞萨MCU零基础入门系列教程之事件链接控制器ELC
  • (二十八)大数据实战——Flume数据采集之kafka数据生产与消费集成案例
  • vue3:22、vue-router的使用
  • 深入理解JVM虚拟机第五篇:一些常用的JVM虚拟机(二)
  • 导数公式及求导法则
  • SpringMVC系列(六)之JSON数据返回以及异常处理机制
  • 民安智库(北京第三方窗口测评)开展汽车消费者焦点小组座谈会调查
  • 【CVPR2021】MVDNet论文阅读分析与总结
  • IDEA指定Maven settings file文件未生效
  • swift UI 和UIKIT 如何配合使用
  • c语言练习题55:IP 地址⽆效化
  • nvidia-persistenced 常驻
  • leetcode 42, 58, 14(*)
  • SpringCloud-微服务CAP原则
  • K8S:Yaml文件详解
  • 机器人连续位姿同步插值轨迹规划—对数四元数、b样条曲线、c2连续位姿同步规划
  • 三维模型3DTile格式轻量化压缩的遇到常见问题与处理方法分析
  • 2023-简单点-开启防火墙后,ping显示请求超时;windows共享盘挂在不上
  • 华为Java工程师面试题