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

Servlet入门:服务端小程序的初试(自己学习整理的资料)

目录

一.前言

二.建立基础结构​编辑

三.具体步骤 

找到Tomcat文件并打开Tomcat。

在webapps中创建一个自己的文件夹。

在classes中新建一个Java文件。

在lib中导入需要的jar文件包。

配置环境变量

在Java文件的目录下打开cmd并输入 javac -d . HelloServlet.java进行编译。

注册Servlet以及web.xml

启动Tomcat 进行测试

四.感受


 

一.前言

  • Java自身并没有响应网页的请求,因此普通的Java类通过寻找父类来继承其响应网页的请求。(ag:通过继承HttpServlet来响应网页的请求)

  • 学习Java基础的重点在于领会。(ag:功夫中所练习的内功)

  • 学习Javaweb的重点在于遵守其规范。(ag:功夫中所练习的套路(招式))

ps:需下载Tomcat。

二.建立基础结构
26fe5935ae3744bd91d4180caf08e90f.jpeg

三.具体步骤 

  • 找到Tomcat文件并打开Tomcat。

7780607bbd9f49529c96999a40a82028.png

ps:下载Tomcat中的9.0版本,且尽量下载64位windows压缩文件,这样Tomcat服务器被我们玩废了可以在其文件名后打个!将其注释掉。然后用压缩文件重新解压,不用经历卸载重装的麻烦。

  • 在webapps中创建一个自己的文件夹。

(ps:初学尽量在Tomcatwebapps中创建文件夹,因为Tomcat的server.xml中默认appBase是webapps,如果要在其它地方创建文件,后续需要在server.xml中加代码,对于初学者来说比较麻烦)。

da819ea630a24ffba2e85b82cc7e3c1f.png

ps:我新建了一个myweb。 

  • 在创建的文件夹中新建一个html网页和WEB-INF(ps:WEB-INF所有的字母必须大写)。

2f79b67239eb409db429f2afca877ffd.png

  • 在WEB-INF中创建lib文件夹,classes文件夹以及web.xml。

0cdc983701bd450dbcc64c0fb0c0ee24.png

  • 在classes中新建一个Java文件。

 b6c54d8541e44623b21a953748ca7bdd.png

ps:我新建了一个名为HelloServlet的Java文件。

  • 在lib中导入需要的jar文件包。

f3b681969c7542209046160f57cb5a62.png

ps:我们可以去Tomcat的lib包里借鉴一下它自带的包,这里可以只用导需要的包jsp-api.jar以及servlet-api.jar。

  • 配置环境变量

22d4c94390114b78bf0a165597dc5578.png

6f75599b96d941029a720fdf394ab938.png

ps:在电脑系统属性的高级中选择环境变量,并在系统变量中找到classpath,对它进行配置系统变量。(尽量配置外面Tomcat自带的lib文件夹里的servlet-api.jar,因为在win11中有的WEB-INF受到Tomcat系统的保护导致无法访问)

  • 在Java文件的目录下打开cmd并输入 javac -d . HelloServlet.java进行编译。

5190afd2901b48aeb513ec54759eae6c.png

 ps:HelloServlet是我Java的文件名,注:大小写不能错必须与创建的Java文件名一致。如果这一步报错,可以根据系统给的提示进行相应的修改。(作为一个程序员一定要学会看错误提示,会帮助找错节约大量时间)

  • 注册Servlet以及web.xml

  • 在web.xml中进行代码编写。
<?xml version="1.0" encoding="UTF-8"?>
<!--Licensed to the Apache Software Foundation (ASF) under one or morecontributor license agreements.  See the NOTICE file distributed withthis work for additional information regarding copyright ownership.The ASF licenses this file to You under the Apache License, Version 2.0(the "License"); you may not use this file except in compliance withthe License.  You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License.
-->
<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/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"metadata-complete="true"><servlet><servlet-name>Servlet1</servlet-name><servlet-class>ww.servlet.HelloServlet</servlet-class>  </servlet><servlet-mapping><servlet-name>Servlet1</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping></web-app>
  • 在创建的Java文件里导包和编写代码 
package ww.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class HelloServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {PrintWriter out = response.getWriter();out.println("HelloServlet!!!");}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}
  • 启动Tomcat 进行测试

  • 在网页搜索地址框中输入     localhost:8080/创建的文件夹/自己配置的名字                     (ag:localhost:8080/myweb/hello)

ps:自己配置的名字来源于 web.xml中的 <url-pattern>/配置名字</url-pattern>

02d81bf228c141eb9d03895298bb4a77.png

成功!

ps:启动Tomcat的按钮在bin文件中的startup.bat,关闭也在bin文件中的shutdown.bat 。(可以把启动的快捷方式发到桌面上,因为过程中我们基本会有错误出现,会多次反复启动Tomcat进行验证是否成功)

四.感受

  • 本节还是具有一定难度,在代码编写中一定要注意单词的正确性以及大小写的区分。

  • 在web.xml中  <servlet-class>ww.servlet.HelloServlet</servlet-class>  。(类的权限名.类名+包名)

  • ww.servlet:这个是java文件中的packge代码编写的名字。

  • 要掌握代码之间的调用关系,否则互相找不到导致的错误。

  • 如果错误提示为 400多 就是路径错误。

168b7427a17640a7b4769b7a181e061c.png

  • 如果错误提示为 500多 就是代码错误 ,路径没有问题 。

localhost:8080/myweb/hello

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Spring Boot实战:使用策略模式优化商品推荐系统
  • Linux的基础知识
  • Python | Leetcode Python题解之第433题最小基因变化
  • nlohmann json:读写json文件
  • seL4 Threads(四)
  • 华为HarmonyOS灵活高效的消息推送服务(Push Kit) -- 10 推送实况窗消息
  • esp32 wifi 联网后,用http 发送hello 用pc 浏览器查看网页
  • 微软宣布弃用WSUS,企业用户尽早准备替换方案
  • 内网基础知识
  • 【Python报错已解决】AttributeError: ‘WindowsPath‘ object has no attribute ‘rstrip‘
  • 如何使用Apache Kafka处理实时数据
  • 【React】(推荐项目)一个用 React 构建的 CRUD 应用程序
  • el-form动态标题和输入值,并且最后一个输入框不校验
  • 【888题竞赛篇】第十二题,2024ICPC网络赛第二场-游戏(Game)
  • 《C++设计新思维-泛型编程与设计模式之应用》阅读记录
  • 网络传输文件的问题
  • JavaScript设计模式系列一:工厂模式
  • Linux链接文件
  • Spring Boot MyBatis配置多种数据库
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • uva 10370 Above Average
  • Web设计流程优化:网页效果图设计新思路
  • 大数据与云计算学习:数据分析(二)
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 今年的LC3大会没了?
  • 聚簇索引和非聚簇索引
  • 理解在java “”i=i++;”所发生的事情
  • 通过git安装npm私有模块
  • 用 Swift 编写面向协议的视图
  • 智能合约开发环境搭建及Hello World合约
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​queue --- 一个同步的队列类​
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • # 职场生活之道:善于团结
  • #162 (Div. 2)
  • #laravel 通过手动安装依赖PHPExcel#
  • #前后端分离# 头条发布系统
  • (1)(1.13) SiK无线电高级配置(五)
  • (1)Android开发优化---------UI优化
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (二)原生js案例之数码时钟计时
  • (三)docker:Dockerfile构建容器运行jar包
  • (十一)手动添加用户和文件的特殊权限
  • (四)c52学习之旅-流水LED灯
  • (四)事件系统
  • (详细文档!)javaswing图书管理系统+mysql数据库
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)Linux下编译安装log4cxx
  • (转)程序员技术练级攻略
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • (总结)Linux下的暴力密码在线破解工具Hydra详解