ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JavaWEB Servlet

2021-11-07 23:03:20  阅读:178  来源: 互联网

标签:文件 Java JavaWEB 配置文件 规范 webapp Servlet


文章目录

JavaWEB相关的知识点学习

前端时间和后端之间的信息交互:
   前端确定了访问了文件位置,调用后端的相关执行程序文件

对于动态的 Web 应用来讲:一个请求响应中有多少个角色的参与?角色之间是怎么进行通信的呢?

整个 B/S 结构中,什么人参与进去?
1、浏览器的开发者;
2、Web Server 开发团队 Tomcat,Jetty;
3、DB Server MySQL Oracle;
4、Java 程序的开发 Web APP 开发
Web 应用的开发的目录需要遵从一定的规范,在不同的 Web Server 都可以使用
达到通用的实现规范,可以不同的服务器上面使用
Serlet 就是制定的一套规范,可以规范的开发网络应用

webapp角色之间遵守什么规范?

HTTP 协议(超文本传输协议)
Browser 和 WebServer 之间存在的协议

Servlet 规范,Webapp 和 WebServer 之间存在的协议
Servlet 规范的作用:Web server , Web App之间解耦合,减少依赖程度

JDBC 的规范
Webapp 和 DBServer 之间存在的规范

模拟 Servlet 本质

不同的公司,制定了相关行业内部的规则,其他的开发者遵从相关的规则即可

关于前端访问静态的 html 文件,使用到大服务器的路径就可以
关于前端访问Java 程序,可以通过程序员执行的映射关系,进行程序的访问

JavaWeb 只做两件事情

1、编写一个类实现Servlet 接口
2、编写配置文件,编写的类配置到配置文件,在配置文件中指定请求路径和类名之间的关系

注意:

  • 配置文件的文件名字是固定好的,web.properties,配置文件的放的位置都是固定好的,不能乱来
  • 因为项目是需要放在服务器上面运行的,服务器的是其他公式已经写好的东西,所以需要遵从相关的规范,
    不能随便乱来;

Servlet 规范中规定了:

合格的 webapp 应该是什么样子的目录结构;
合格的 webapp 拥有什么样子的配置文件
合格的webapp配置文件放在什么地方
合格的webapp的Java程序放在什么地方
这些都是规定好的

Tomcat 服务器需要遵守规范,JavaWEB程序员也是同样需要遵守相关的规范,这样子Tomcat和
webapp 之间才能解耦合;

理解Servlet 是一个什么样子的规范?

遵循了Servlet 规范的webapp 可以在不同的额服务器的下面运行
Servlet 规范中包括了什么呢?
1、规定了什么样子的接口
2、规范了一些类
3、规范了web 应用中应该有什么样子的配置文件
4、规范了配置文件的名字
5、规范了配置文件存储的路径
6、规范了webapp 配置文件中的内容…

实际操作:开发一个带有 Servlet 的 webapp(重点)

开发步骤(11步):

1

  • 1、在webapp 目录下面新建一个目录,起名叫做 crm(crm就是webapp的名字),起名字是根据自己的开发需要设定的

2

  • 2、在crm目录下面,新建一个目录:WEB-INF
    这个文件的创建是Servlet 中所规定的,必须是全部大写的才可以

3

  • 3、在 WEB-INF 下面新建一个目录叫做 classes 必须是这个名字,Servlet 规范中规定的
    注意:这里存放的是,Java 程序编译之后的class 文件,这李存放的是字节码文件

4

  • 4、在WEB-INF 下面创建一个新的目录:lib(不是必须的)
    Java在开发的过程中使用到了第三方的 jar 包,需要使用这个名字,必须使用这个名字

5

  • 5、在WEB-INF 新建一个文件叫做:web.xml
    这个文件名字是必须的,文件的名字是必须叫做这个名字的,文件必须放在这里;
    web.xml 是一个配置文件,配置文件中描述了请求路径以及 Servlet 类之间的对照关系
    (这个文件直接从其他的webapp中赋值粘贴即可)
<?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"
  metadata-complete="true">

  <display-name>Tomcat Documentation</display-name>
  <description>
     Tomcat Documentation.
  </description>
</web-app>

6

6、编写Java程序,小程序,不能随意开发,必须实现 Servlet 接口

  • Servlet 接口在什么位置?(javaEE 使用的是另外的类库,SE加强版本)

  • Servlet.class 文件

  • Servlet 是JavaEE 中的一员

  • Tomcat 服务器实现了 Servlet 接口,Tomcat 也是需要使用 Servlet 接口的
    所以这个类在 Servlet 下面的文件中是可以找到的;lib 目录下面存在
    Servlet-api.jar 文件

  • 开发的Java源代码可以放置在任何的位置,但是 编译生成的 .class 文件必须放在 classes 文件夹下面

7

编写Java程序

8

将写好的Java文件编译好形成的 .class 文件放置在:WEB-INF\classes 文件夹下面

9

web.xml 文件中编写配置信息,使得 “请求路径” 和 ”Servlet类名“ 关联在一起

注册Servlet 类

<?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"
	metadata-complete="true">

	<servlet>
		<servlet-name>MyServlet</servlet-name>
		<servlet-class>com.luobin.javaweb.HelloServlet</servlet-class>
	</servlet>
  
  <servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/test</url-pattern>
  </servlet-mapping>

</web-app>

10

启动 tomcat 服务器(mac 使用这个命令可以像 win 在控制台进行输出信息)

catalina.sh run

11

在浏览器打开url
http://localhost:8080/crm/test

这个请求路径必须和 web.xml 中的url-pattern 保持一直才可以,否则,运行时可能不成功的;

注意:浏览器上面请求的路径和 web.xml 中的url-pattern 中的唯一区别就是:浏览器上面的请求路径是带着项目名字的;

浏览器上面编写的路径太长的时候,可以使用超链接进行处理;(html 文件只能放置在WEB-INF 目录的外面)

以后不需要编写 main 方法tomcat 在执行的时候,就是相当于 main 方法的功能,javaWeb 程序员,只需要写Servlet 接口的实现类,然后注册到 web.xml即可

关于JavaEE 版本的相关问题

  • JavaEE 当前的最高版本是JavaEE8
  • JavaEE被 Oracle 捐献给了 Apache
  • 以后叫做jakataEE
  • 以后没有JavaEE8 升级之后叫做: jakataEE9

javaEE8 叫做:javax.servlet.Servlet
jakataEE9 叫做:jakata.servlet.Servlet

更改了之后,只能在 Tomcat9 以及以前的版本部署webapp 在之后的版本中是没有办法部署的;

标签:文件,Java,JavaWEB,配置文件,规范,webapp,Servlet
来源: https://blog.csdn.net/qq_40417070/article/details/121195634

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有