java web开发(编写第一个servlet程序)

news/2024/5/6 2:45:09/文章来源:https://blog.csdn.net/feixiaoxing/article/details/127137454

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        之前从来没有编写过servlet程序,更没有用tomcat部署过java web程序。所以,趁着IDEA安装好、maven配置好,开始用IDEA编写第一个servlet程序。整个操作过程参考了下面这篇文档,https://blog.csdn.net/weixin_44107140/article/details/119618734。大体上,这篇文档的步骤是蛮全的,必要的地方我会加一些补充。

1、下载tomcat服务器

        tomcat之于java,就和iis之于c#是一个道理。

        tomcat可以在这里下载,

https://tomcat.apache.org/download-80.cgi,版本是apache-tomcat-8.5.82-windows-x86。

2、下载好tomcat之后,解压到合适的目录,

3、利用IDEA创建一个普通的java项目,不妨命名为Hello。

4、创建好项目,单击Hello项目,选择“Add Framework Support”,选择“Web Application 4.0”。

        不出意外的话,这样系统会多创建一个web目录,里面有后续开发需要的文件。

5、给Web/WEB-INF创建两个子文件夹,一个是classes,一个是lib。

        选择file-》Project Structure,先修改classes目录,

        接着修改dependencies目录,

6、 编写一个servlet程序,也就是正常创建一个DemoServlet.java代码即可,

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet(name = "DemoServlet")
public class DemoServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//设置网页响应类型response.setContentType("text/html");response.getWriter().println("my first servlet code");}
}

7、修改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>DemoServlet</servlet-name><servlet-class>DemoServlet</servlet-class></servlet><servlet-mapping><servlet-name>DemoServlet</servlet-name><url-pattern>/demo</url-pattern></servlet-mapping>
</web-app>

8、下载servlet-api.jar包,这个包有很多依赖包,最好一起下载。

        下载地址在这,

https://jar-download.com/?search_box=servlet-api

        等下载结束后,会发现目录中很多的jar包,这些都是关联jar包。将它们都拷贝到之前创建的lib目录下,即web/WEB-INF/lib下面。

9、配置tomcat服务器

        单击右上角的“Add Configuration”,选择“Templates”里面的“Tomcat Server”,继续选择Local,配置server,

        继续配置deployment, 

        保存好配置,可以看到Tomcat 8.5.82配置好了,没问题的话右上角就可以看到这样的窗口,

 10、启动tomcat服务器,也就是单击上面的绿色三角按钮,接着在IE或者chrome中输入url,即

localhost:8090/Hello_war_exploded/demo

        不出意外,就会看到这样的网页打印,

my first servlet code

        其实在网页默认目录下还有一个index.jsp,如果要输入http://localhost:8090/Hello_war_exploded/ ,就会看到这样的网页,

$END$

        这主要是因为对应的网页还没有内容,后续谈到jsp的时候会来继续分析。

11、debug模式

        如果网页需要调试,只需要选择“Debug tomcat 8.5.82”即可。后续刷新网页的时候,就可以进行单步调试的操作了。

 

12、总结

        上述DemoServlet.java和web.xml基本照搬了参考链接的内容,在此一并表示感谢。除此之外,个人感觉比较重要的地方还有三个,第一,实现需要下载准备tomcat服务器;第二,一定要下完整的第三方jar包;第三,要创建好tomcat配置之后,才能启动tomcat服务器。之于其他的内容,可以后续慢慢学习、慢慢添加。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_17210.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FastDFS模拟场景

新增tracker服务 模拟场景&#xff1a;当多个tracker同时宕机无法恢复时临时添加新的tracker是否可行 实现方案 将之前已有的tracker server的配置文件scp一份到新的机器上&#xff0c;并在新机器上创建store_path对应的目录依次关闭storage server服务在每个storage server中的…

作为一名前端,该如何理解Nginx?

作为一名小前端&#xff0c;只需要好好写代码&#xff0c;至于部署相关的操作&#xff0c;我们通常接触不到&#xff0c;正所谓专业的人干专业的事&#xff0c;我们在工作中并不需要去配置&#xff0c;但这并不代表不需要了解&#xff0c;相信大家都多多少少听过nginx&#xff…

窗口函数OVER(PARTITION BY)详细用法——语法+函数+开窗范围ROWS和RANGE

目录 一、函数写法 二、开窗的窗口范围ROWS与RANGE 1.范围限定用法 2.ROWS和RANGE的区别 (1) ROWS按行数限定 (2) RANGE按数据范围限定 order by 数字 例1 汇总数据范围为&#xff1a;[当前行值,当前行值3] 例2 汇总数据范围为&#xff1a;[当前行值-3,当前行值] o…

较多业步骤场景通用框架

我们工作的大部分时间都在写业务代码&#xff0c;如何写好业务代码必然是我们追求的一大目标&#xff0c;在编程方面&#xff0c;简单、易懂、可扩展性是衡量代码质量的通用标准&#xff0c;所以在工作中&#xff0c;我们能用java将产品经理的想法表达出来还不够&#xff0c;我…

OSCP-Vulnhub靶机记录-LordoftheRoot-walkthrough

靶机地址 https://www.vulnhub.com/entry/lord-of-the-root-101,129/ 交流学习联系&#xff1a;webMsec 靶机安装 主机发现 靶机ip 192.168.160.131 使用nmap扫描后发现只开放了22 ssh 尝试连接ssh 这里需要端口碰撞 再次nmap扫描 1337端口开放apache Dirsearch扫一下 404…

IS-IS 路由选择协议入门

为了理解中间系统一中间系统(IntermediateSystem-to-Intermediate System, IS-IS) 路由选择协议的本质和内在的工作原理&#xff0c;把它放在整个网际协议和相关技术的框架中学习是十分重要的。本章深入IS-IS协议的本质&#xff0c;并且探讨了国际标准化组织(Intemational Orga…

Understanding the Users and Videos by Mining a Novel Danmu Dataset

题目&#xff1a;Understanding the Users and Videos by Mining a Novel Danmu Dataset 作者&#xff1a;Guangyi Lv, Kun Zhang, Le Wu, Enhong Chen, Tong Xu, Qi Liu, and Weidong He 发表&#xff1a;IEEE TRANSACTIONS ON BIG DATA, 2022 切入点&#xff1a;弹幕交流…

C++实现二分法求零点

​目录前言 题目: 一、零点是什么? 二、二分法求零点 1.二分法 2.完整代码 总结 前言 首先,我们要清楚我们是干嘛的;其次,知道原理;最后,才能明白自己要怎么办。明确:用二分法求函数。 题目: 二分法求函数的零点: 有函数: f(x) = x5 - 15 * x4+ 85 * x3- 225 * x2…

十一、动态规划题目相关

学习来源&#xff1a; 代码随香炉&#xff1a;https://www.programmercarl.com/ labuladong算法&#xff1a;https://labuladong.github.io/algo/ 动态规划 动态规划五部曲 确定dp数组&#xff08;dp table&#xff09;以及下标的含义 确定递推公式 dp数组如何初始化 确定遍历…

炫酷的花式滑块滑动无缝切换特效

&#x1f482; 个人网站:【 海拥】【小霸王游戏机】【大转盘】&#x1f91f; 风趣幽默的前端学习课程&#xff1a;&#x1f449;28个案例趣学前端&#x1f485; 想寻找共同学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习群】【学习文档】&#x1f4ac; 免费且实用的计…

【ML05】Feature Scaling 特征缩放

Feature ScalingFeature Scaling 特征缩放的目的是什么Feature Scaling Method #3Dividing by maximumMean NormalizationZ-Score normalizationFeature Scaling 特征缩放的目的是什么 考虑前两个组图&#xff1a; 组图1&#xff1a;同一辆大货车拉货&#xff0c;同一个函数在…

Flink学习笔记(2)——Flink快速上手

目录 一、Flink快速上手 1.1、环境准备 1.2 创建项目 1.3 编写代码 1.3.1 批处理 1.3.2 流处理 1.4 本章总结 一、Flink快速上手 对 Flink 有了基本的了解后&#xff0c;接下来就要理论联系实际&#xff0c;真正上手写代码了。Flink 底层是 以 Java 编写的&#xff0c;…

计算机网络—物理层

计算机网络—物理层 物理层的基本概念 物理层的作用是要尽可能地屏蔽掉传输媒体和通信手段的差异&#xff0c;使物理层上面的数据链路层感觉不到这些差异&#xff0c;这样就可以使数据链路层只需要考虑如何完成本次的协议和服务&#xff0c;而不必考虑网络具体的传输媒体和通…

切记:Python迭代器只可以读取一次,忽略会有意想不到的麻烦。

Python 官网&#xff1a; https://www.python.org/- ###### Free&#xff1a;大咖免费“ 圣经”教程 《 python 完全自学教程》&#xff0c;不仅仅是基础那么简单……My CSDN主页、My HOT博、My Python 学习个人备忘录好文力荐、老齐教室自学并不是什么神秘的东西 &#xff0c…

Java学习笔记:高级数据过滤

通配符过滤 1、名字以T开头的 SELECT * FROM T_Persons WHERE Name LIKE ‘T%’ 2、名字以ke结尾的 SELECT * FROM T_Persons WHERE Name LIKE ‘%ke’ 3、名字中包含“中”的 SELECT * FROM T_Persons WHERE Name LIKE ‘%中%’ 多值检测 SELECT Age,Name FROM T_…

Java的输入 Scanner in=new Scanner(System.in);

java和c还是有好多不同的地方&#xff0c;需要从头开始认认真真地学 文章目录输入数字输入double输入整型输入字符串判断2个字符串是否相等Java的字符串要用""双引号引起来&#xff0c;而不是单引号输入一维数组输入二维数组输入数字 输入double import java.util.…

算法分析与设计:10 大排序算法大汇总(Java)

冒泡排序 相邻比较并交换位置&#xff0c;将大的数冒泡交换到最后。 /******************************************************************************** 冒泡排序&#xff08;Bubble Sort&#xff09;它重复地走访过要排序的元素&#xff0c;依次比较相邻两个元素&#xf…

E2成都电路板设计_启动保持停止电路的原理

电气技术分享之2 本文介绍电气工程里常见的启动、保持、停止电路的原理。 1、起保停电路的功能 起保停电路实现的功能&#xff1a;按启动按键&#xff0c;电路的负载得电并保持&#xff0c;按停止按键&#xff0c;负载断电。 2、起保停电路所需的元件 起保停电路所需的元件…

matplotlib绘制直方图,饼图,散点图,气泡图,箱型图,雷达图

matplotlib绘制直方图&#xff0c;饼图&#xff0c;散点图&#xff0c;气泡图&#xff0c;箱型图&#xff0c;雷达图一.直方图用10000个正态分布随机数画直方图二.绘制饼图或者圆环图圆环图根据消费支出画圆环图三.绘制散点图或气泡图使用scatter()函数绘制一个散点图&#xff…

【进制计算】 2 ~ N 进制计算

目录 规则 图解十、二、八、十六进制之间的转换 举例 除法计算出3进制&#xff1a; 乘法次方逆向计算原数&#xff1a; 图解二进制加减乘除计算 规则 十进制 除以 进制数 取余法&#xff1a;&#xff08;1&#xff09;被除数 除以 除数 等于 商 并取得余数&#xff0c;&am…