Tomcat学习笔记----本地部署servlet动态资源
前言:
链接:Tomcat学习笔记--简单了解和Web应用的目录结构以及常见的Web应用时出现404错误
有问题:什么是动态资源?
静态资源:当用户多次访问这个资源,资源的源代码永远不会改变的资源 动态资源:当用户多次访问这个资源,资源的源代码可能会发生改变。
Servlet : 用java语言来编写动态资源的开发技术。
Servlet特点:
1)普通的java类,继承HttpServlet类,覆盖doGet方法 2)Servlet类只能交给tomcat服务器运行(开发者自己不能运行) 所以要配置web.xml具体下面会讲
静态访问URL举例:http://localhost:8080/xx/zz.html
动态访问URL举例:http://localhost:8080/xx/One
区别看到没 动态结尾没有后缀名,这个下面会解释的。
进入正题:
第一步:创建一个servlet
为了 了解Tomcat部署的流程,我是照着例子手动敲了一个servlet例子。
编写一个servlet程序,继承HttpServlet
但是继承HttpServlet需要一个jar包:servlet-api.jar
具体可以在 apache-tomcat-9.0.8lib中找到 添加到项目中然后build path即可
package first.one; import java.io.IOException; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class first extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=UTF-8"); resp.getWriter().write("codingCoge 的第一个动态页面,纯手写,没有用工具哈 时间是"+new Date()); } }
第二步:创建Web应用的目录结构在Tomcat中:
apache-tomcat-9.0.8webapps中创建项目,名字自拟定。我这里是xx
项目下创建 WEB-INF文件夹 是用来存放servlet之类的数据,是不可以被外人看到的。
你也可以在xx下面添加静态的资源如开头提到的:zz.html
静态访问URL举例:http://localhost:8080/xx/zz.html
不过这里要构造的是动态的。
具体的不多说了,看这个好了
链接:创建Web应用的目录结构在Tomcat中
第三步:部署servlet到Tomcat环境中:
把servlet文件存放到Web应用的目录结构中的classes文件中。
记住 :要把包也导进来 ,我这里是这样的:
apache-tomcat-9.0.8webappsxxWEB-INFclassesfirstone.first.class
one.first
就是包名
第四步:配置web.xml文件:
是schema约束的xml文件 具体的可以去
W3school了解下
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>first</servlet-name> <servlet-class>first.one.first</servlet-class> </servlet> <servlet-mapping> <servlet-name>first</servlet-name> <url-pattern>/One</url-pattern> </servlet-mapping> </web-app>
注意:
1. One前面要+'/' 不然404错误 <url-pattern>/One</url-pattern> 2. 写类名而不是 .class结尾 <servlet-class>first.one.first</servlet-class>
重点:
<servlet-name>first</servlet-name> 是内部名称,可以自定义 但是一般都是servlet类名,不要太随便起的
<url-pattern>/One</url-pattern>是url地址
顺序:重中重:
http://localhost:8080/xx/One
先访问 <servlet-mapping> <url-pattern>/One</url-pattern> </servlet-mapping> 导航到: <servlet-mapping> <servlet-name>first</servlet-name> //内部地址 </servlet-mapping> 再根据同名导航到: <servlet> <servlet-name>first</servlet-name> //同名导航到这 <servlet-class>first.one.first</servlet-class> //再到这 </servlet>
最后:
http://localhost:8080/xx/One
显示的是:servlet所在地址
apache-tomcat-9.0.8webappsxxWEB-INFclassesfirstonefirst.class
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
又一个PHP的奇怪特性—[.空格
转载自博客:https://www.yourhome.ren/index.php/sec/378.html 从安恒周练的一道题目中又学到了PHP的两种特性,详细如下: 题目很简洁,给出源码进行审计 <?php highlight_file(__FILE__); ini_set("display_error", false); error_reporting(0); $str = isset($_GET["A_A"])?$_GET["A_A"] : "A_A"; echo $str; echo "<br>"; echo $_SERVER["QUERY_STRING"]; echo "<br>"; if (strpos($_SERVER["QUERY_STRING"], "A_A") !== false) { echo "A_A,have fun"; } elseif ($str<9999999999) { echo "A_A,too smal l"; } elseif ((string)$str>0) { echo "A_A,too big"; ...
- 下一篇
Flink 1.4.2 版本踩过的坑
0x1 摘要 最近业务要实时统计半小时维度的UV、PV数据,经过调研准备用Flink时间窗来实现,主要是Flink对eventTime的支持,可以做到更精准的统计,由于第一次尝试使用Flink,所以过程中遇到不少问题,记录下来方便后续查阅。 0x2 执行计划输出JSON问题 Flink对执行计划分析提供了支持,可以通过代码将执行计划打出来,并利用官网提供的图生成工具可以方便分析,通过env.getExecutionPlan()方法可以获取JSON格式的执行计划,将JSON字符串拷贝到http://flink.apache.org/visualizer/网站文本框就可以查看。但我们在项目中调用env.getExecutionPlan()方法后报以下异常信息: Caused by: java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.TimSort.mergeLo(TimSort.java:777) at java.util.TimSort.mer...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路