JavaWeb基础知识-1
[toc]
JavaWeb基本概念与名词
Java的不同版本
java SE
javaSE 是java标准版的简称,其定位是个人计算机应用(应用原生界面比较ugly)
全称:Java Platform Standard Edition 主要用于开发和部署桌面、服务器以及嵌入设备和实时环境中的Java应用程序。
例如,Java应用程序开发平台Eclipse。
java EE
javaEE 是java企业版的简称,其定位是服务器端应用 (目前应用最广泛的版本)
全称:Java Platform Enterprise Edition
是在JavaSE的基础上构建的他提供Web 服务、组建模型、管理和通信API.可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和web2.0应用程序。
java ME
javaME 是java微型版的简称,主要定位是移动产品和车载产品等(基本没有使用,大部分移动产品使用Android)
全称:Java Platform Micro Edition
Java ME为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME包括灵活的用户界面、健壮的安全模式、许多内置的网络协议以及对于动态下载的连网和离线应用程序的丰富支持。基于Java ME规范的应用程序只需要编写一次,就可以用于许多设备,而且可以利用每个设备的本级功能。
JVM JRE 与 JDK 的关系
JVM
JVM 全称 Java Virtual Machine 是java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。
也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。
JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
JRE
JRE 全称 Java Runtime Environment
是java运行时环境,这里面包含了运行java程序所需要的所有类库,一台机器上只有安装了jre才可以运行java程序
JRE 是包含 JVM的,并且还包含了一些运行java程序所需要的类库和资源文件等。
JDK
JDK 全称 Java Development Kit 是java开发工具包
是Sun Microsystems针对Java开发员的产品。JDK 中包含了很多关于java程序开发的工具,例如编译工具javac,文档生成工具javadoc等等等等
同理,JDK是包含JRE 和 JVM 的,并且在此基础上还包括了一些开发工具,调试工具,以及用于管理程序的管理工具等。
JavaWeb的相关知识
Tomcat使用
Tomcat目录
1 | tomcat |
Tomcat配置文件
我们打开con文件夹可以看到Tomcat的配置文件:
server.xml: Tomcat的主配置文件,包含Service, Connector, Engine, Realm, Valve, Hosts主组件的相关配置信息;
web.xml:遵循Servlet规范标准的配置文件,用于配置servlet,并为所有的Web应用程序提供包括MIME映射等默认配置信息;
tomcat-user.xml:Realm认证时用到的相关角色、用户和密码等信息;Tomcat自带的manager默认情况下会用到此文件;在Tomcat中添加/删除用户,为用户 指定角色等将通过编辑此文件实现;
catalina.policy:Java相关的安全策略配置文件,在系统资源级别上提供访问控制的能力;
catalina.properties:Tomcat内部package的定义及访问相关控制,也包括对通过类装载器装载的内容的控制;Tomcat在启动时会事先读取此文件的相关设置;
logging.properties: Tomcat6通过自己内部实现的JAVA日志记录器来记录操作相关的日志,此文件即为日志记录器相关的配置信息,可以用来定义日志记录的组 件级别以及日志文件的存在位置等;
context.xml:所有host的默认配置信息;
server.xml配置文件详细解析
https://blog.csdn.net/qq_35713827/article/details/82585539
1 |
|
Tomcat工作机制动画演示
web目录中各文件介绍
以网鼎杯filejava题目的目录为例
1 | . |
META-INF
配置jar文件中的信息描述,好像暂时没啥大用
WEB-INF
- WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。
- 如果想在页面中直接访问其中的文件,必须通过 web.xml 文件对要访问的文件进行相应映射才能访问。
其中包含的文件目录作用为:
- /WEB-INF/web.xml
- Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
- 类似于php框架中的**
路由
**
- /WEB-INF/classes/
- 包含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中。
- 类似于php中后端各种类
- /WEB-INF/lib/
- 存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件。
- 类似于python中import需要用到的包
- /WEB-INF/src/
- 源码目录,按照包名结构放置各个Java文件。
- 非必须,放置java源码
- /WEB-INF/database.properties
- 数据库配置文件
- /WEB-INF/tags/
- 存放了自定义标签文件,该目录并不一定为 tags,可以根据自己的喜好和习惯为自己的标签文件库命名。
- 当使用自定义的标签文件库名称时,在使用标签文件时就必须声明正确的标签文件库路径。例如:当自定义标签文件库名称为 simpleTags 时,在使用 simpleTags 目录下的标签文件时,就必须在 jsp 文件头声明为:
<%@ taglibprefix="tags" tagdir="/WEB-INF /simpleTags" % >
- /WEB-INF/jsp/
- jsp 1.2 以下版本的文件存放位置。改目录没有特定的声明,同样,可以根据自己的喜好与习惯来命名。
- 此目录主要存放的是 jsp 1.2 以下版本的文件,为区分 jsp 2.0 文件,通常使用 jsp 命名,当然你也可以命名为 jspOldEdition 。
- /WEB-INF/jsp2/
- 与 jsp 文件目录相比,该目录下主要存放 Jsp 2.0 以下版本的文件,当然,它也是可以任意命名的,同样为区别 Jsp 1.2以下版本的文件目录,通常才命名为 jsp2。
jsp存放于网站目录根目录下
javaweb中,jsp相当于php框架中的模板(MVC中的view
),class相当于model
或controller
,jar相当于php中安装的扩展依赖啥的
要获取网站源码并对其进行修改,首先需要反编译class文件
反编译class文件可以用jd-gui
、Xjad
、Bytecode-Viewer
等进行反编译
利用Tomcat搭建网站
通过tomcat部署网站有三种方式
首先要启动tomcat
利用Tomcat自动部署
利用Tomcat自动部署方式是最简单的、最常用的方式。若一个web应用结构为D:\workspace\WebApp\AppName\WEB-INF\
,只要将一个Web应用的WebContent级的AppName直接扔进%Tomcat_Home%\webapps
文件夹下,系统会把该web应用直接部署到Tomcat中。所以这里不再赘述。
1 | rayi @ Rayi-de-ShenChuan in /mnt/c/Users/Rayi/Desktop/Tmp/java_web/apache-tomcat-8.5.54/webapps [21:23:41] |
类似于/var/www/html
,可以直接往里面扔jsp
直接访问webshell.jsp
利用控制台进行部署
若一个web应用结构为D:\workspace\WebApp\AppName\WEB-INF\
,利用控制台进行部署的方式如下:进入tomcat的manager控制台的deploy区域
在Context path中键入”XXX”(可任意取名)
在WAR or Directory URL:键入D:\workspace\WebApp\AppName (表示去寻找此路径下的web应用)
点击deploy按钮。
然后在%Tomcat_Home%\webapps
路径下将会自动出现一个名为XXX的文件夹
其内容即是D:\workspace\WebApp\AppName
的内容,只是名字是XXX而已(这就是前面在Context path键入XXX的结果)。
以上说明利用控制台进行部署的实质仍然是利用Tomcat的自动部署。
一般不会开启控制台的
增加自定义的Web部署文件
太麻烦了,暂时先不弄了
https://www.cnblogs.com/xiohao/p/3689832.html
手动修改%Tomcat_Home%\conf\server.xml文件来部署web应用
此方法即打开**%Tomcat_Home%\conf\server.xml**文件并在Host
其中增加以下元素:
1 | <Context docBase="/mnt/c/Users/Rayi/Desktop/Tmp/java_web/apache-tomcat-8.5.54/webapps/file_in_java" path="/" debug="0" reloadable="true" /> |
然后启动Tomcat即可。
当然如果使用Eclipse,在Eclipse中的设置也有改变:打开菜单栏window选择preference(首选项)——左侧选择Tomcat——可以看到上图中高亮画出的Context declaration mode(Context 声明模式)中选择以Server.xml文件来部署web应用。
这种方法可以改变网站的根目录
参考链接
https://www.cnblogs.com/xiohao/p/3689832.html
https://www.cnblogs.com/hzg110/p/6851523.html