JavaWeb笔记Day01 Tomcat,Servlet

本文详细介绍了C/S和B/S架构的区别,包括各自的优缺点。C/S架构适用于需要高性能、良好用户体验的系统,如QQ;而B/S架构适合易于维护、用户方便访问的系统,如网页。在JavaEE框架下,B/S系统开发涉及Servlet、JSP等技术,Tomcat作为常见的应用服务器。通过配置web.xml文件,可以注册Servlet并实现动态网页。此外,文章还提到了web应用的基本目录结构和开发流程。
摘要由CSDN通过智能技术生成

关于系统架构

系统架构包括什么形式?

        C/S架构

        B/S架构

C/S架构?

Clent/Server(客户端/服务器)

C/S架构的软件或者说系统

        QQ(需要先官网下载QQ软件,才能使用)

C/S架构的特点:需要安装特定的客户端软件

C/S架构系统的优缺点

优点:

        速度快(软件中的数据大部分集成在客户端软件中,很少数据是从服务器端传过来的)

        体验好

        界面炫酷(专门的语言去实现界面,更加灵活)

        服务器压力小

        安全(因为大量的数据在客户端软件中,并且客户端有多个,服务器只有一个,即使服务器端受损了问题也不大,因为大量数据在客户端有缓存)

缺点:

        升级维护比较差劲(维护成本高,有些软件不是那么容易下载的)

B/S架构?

B/S(Browser/Server)

B/S架构的软件或者说系统

        http://www.baidu.com

        http://www.jd.com

B/S是特殊的C/S系统,只不过这个C比较特殊,这个Client是一个固定不变的浏览器软件。

B/S架构系统的优缺点

优点:

        升级维护方便,成本比较低(只需要升级服务器端即可)

        不需要安装特定的客户端软件,用户操作极其方便,只需要打开浏览器,输入网址即可

缺点:

        速度慢(因为所有数据都在服务器上,用户发送的每个请求都需要服务器全身心的响应)

        体验差(界面不炫酷,因为浏览器只支持HTML,CSS,JavaScript。还速度慢)

        不安全(所有数据都在服务器上,服务器发生意外,最终数据全部丢失)


不同的结构在不同的业务场景下有不同的使用场景

娱乐性建议使用C/S

公司内部使用的系统建议使用B/S,不需要炫酷的界面,维护成本低

开发B/S结构的系统实际上就是开发一个Web

WEB前端:运行在浏览器上的程序

WEB后端:WEB服务器端的程序,可以用Java开发,JavaWEB开发最核心的规范:Servlet


JavaEE是什么?

Java包括三大块:

        JavaSE

                Java标准版(一套类库,只不过这个类库是标准库,时候两者的基础)

        JavaEE

                Java企业版(也是一套类库,只不过这套类库可以帮助我们完成企业级项目的开发)

        JavaME

                Java微型版(也还是一套类库,只不过这套类库帮助我们进行电子设备内核的开发)

关于JavaEE的版本


B/S结构系统的通信原理

访问过程:打开浏览器,找到地址栏,输入域名或URL,打开,浏览器展示响应结果

域名:回车之后,域名解析器会将域名解析出一个具体的ip地址端口号

ip地址:计算机在网络中的身份证号。在同一个网络中是唯一的,只有知道ip地址才能建立连接

端口号:一个计算机中每一个软件启动之后都有一个端口号,同一计算机中端口号具有唯一性,

仅代表一个软件或一个服务。

URL:统一资源定位符,描述一个资源在万维网的地址,包括域名。https://blog.csdn.net/qq_53157982 是一个完整的URL;blog.csdn.net是域名


通信步骤

用户输入网址(url)

域名解析器进行域名解析

浏览器软件在网络中根据解析到的ip搜索这台主机

根据端口号定位这台主机上的服务器软件

找到用户想要的资源并将文件响应到浏览器

浏览器接收来自服务器端的代码(HTML,CSS,JS)

浏览器渲染,执行代码,展示效果                                                       没有涉及到java

关于WEB服务器软件

WEB服务器

        Tomcat(Apache):免费开源的轻量级WEB服务器,体积小,运行速度快,别名Catalina。

java编写,运行需要JRE

        jetty

应用服务器

        JBOSS

        Weblogic

        WebSphere

应用服务器和WEB服务器的关系

应用服务器实现了JavaEE的所有13个规范;WEB服务器只实现了JavaEE的Servlet+JSP两个核心的规范

说明:应用服务器包含WEB服务器,例如:JBOSS内嵌一个Tomcat服务器。

Tomcat安装下载配置

根据网上教程即可

tomcat是java编写的,运行需要JRE。那么就需要安装JDK并配置环境变量

Tomcat文件结构

bin:这个目录是Tomcat服务器的命令文件存放的目录,比如:启动Tomcat,关闭Tomcat等

conf:这个目录是Tomcat服务器的配置文件存放的目录。(server.xml文件可以配置端口号,默认8080)

lib:这个目录是Tomcat服务器的核心程序目录,因为Tomcat是java语言编写的,这里的jar包都是.class文件。

logs:Tomcat服务器的日志目录,服务器启动等信息都会在这个目录下生成日志文件。

temp:Tomcat服务器的临时目录,存放临时文件。

webapps:这个目录当中就是用来存放大量的webapp(web应用

work:用来存放JSP文件翻译之后的java文件以及编译之后的class文件

启动Tomcat

bin目录下的startup.bat文件,通过点击它可以启动Tomcat服务器

如果环境变量配置没问题直接在命令行输入startup.bat即可

关闭则输入shutdown.bat即可关闭Tomcat。不要点×号

验证是否启动成功打开浏览器,地址栏输入:localhost:8080,画面如下即可

什么是bat文件

        bat文件是windows操作系统专用的,bat文件是批处理文件,这种文件可以编写大量windows的dos命令,然后执行bat文件就相当于批量执行dos命令。

sh文件

        在windows中无法执行,在Linux环境下能够执行shell命令。大量的shell命令编写在shell文件中,执行shell文件相当于批量执行shell命令。

bat文件和sh文件都有,说明了这个Tomcat服务器的通用性。


实现最基本的web应用

找到webapps目录

在webapps下新建一个子目录,起名oa(webapp的名字)

在oa目录下新建资源文件(如index.html)

通过浏览器访问,在浏览器输入ip,端口号,webapp名,资源名(不写会默认为index.html)


点击登录为超链接    IP地址可以省略  直接 /项目名/资源名  此为绝对路径

 


 点击跳转即可实现页面中跳转


实现数据列表展示

编写userList.html,访问到

但是该表内数据为静态写死的数据,想要获取到动态的数据就需要利用JDBC连接数据库,数据库中有多少数据网页中就显示多少,这种技术称为动态网页技术。(并不是说网页上有flash动画),而是网页上数据根据数据库数据的改变进行变动

对于一个动态web应用来说,一个请求和响应的过程有多少个角色参与,角色与角色之间有多少个协议

 有哪些角色

        浏览器软件  (谷歌,火狐,Edge,IE.......)

        WEB Server(Tomcat,Jetty,WebLogic.....)

        DB Server   (Mysql,Oracle.......)

        webapp       (我们要开发的东西)

角色和角色之间需要遵循哪些规范,哪些协议。

        webapp 和 WEB Server之间有一套规范:JavaEE规范之一Servlet规范

        Browser 和 WEB Server之间有一套传输协议:HTTP协议。超文本传输协议

        webapp 和 DB Server之间有一套规范:JDBC规范


Servlet规范的作用:WEB Server 和 webapp解耦合

模拟Servlet本质

充当Webapp的开发者

编写配置文件

充当Tomcat开发者

运行结果如下

 通过以上程序得出结论,我们javaweb程序员只需要:

        编写一个类实现Serclet接口

        将编写的类配置到文件中,在配置文件中:指定 请求路径 和 类名 的关系


由于在Tomcat中配置文件名和路径是固定的,都是SUN公司制定的规范中的细节

严格意义上来说Servlet其实并不只是一个简单的接口,其规定了一个合格的webapp:

        应该是一个怎样的目录结构

        应该有一个怎样的配置文件

        配置文件的路径放在哪里

        java程序放在哪里

Tomcat遵循Servlet规范,javaweb程序员也要遵循这个Servlet规范。这样Tomcat服务器和webapp才能解耦合。


开发一个带有Servlet(Java小程序)的webapp

步骤

        第一步:在webapps目录下新建一个目录,起名crm(webapp的名字)

        第二步:在crm目录下新建目录WEB-INF(注意全大写,规定的)

        第三步:在WEB-INF目录下新建一个目录classes(全小写),存放的是字节码文件(java程序编译后的class文件)

        第四步:在WEB-INF目录下新建lib目录(全小写) 注意:这个目录不是必须的,如果webapp需要第三方的jar包的话要放到这个目录下,例如连接数据库所需的数据库的驱动jar包。

        第五步:在WEB-INF目录下新建一个文件:web.xml  注意:这个文件是必须的,这就是一个配置文件,在这个配置文件中描述了请求路径和Severlet类之间的对照关系。最好从其他webapp中拷贝,删除注释和不要的部分,别手写。

        第六步:编写java小程序,必须实现Servlet接口,这个Servlet不在JDK中,是Oracle提供的,是JavaEE规范中的一员。Tomcat服务器实现了Servlet规范,所以Tomcat服务器也要用到,Tomcat里应该有这个接口

         第七步:编译我们编写的HelloServlet

package learnjava;

import javax.servlet.*;
import java.io.IOException;

public class HelloServlet implements Servlet{
	public void init(ServletConfig config) throws ServletException{

	}
	
	public void service(ServletRequest request,ServletResponse response)
		throws ServletException,IOException{
		System.out.println("My First Servlet,Hello Servlet");
	}
	
	public void destroy(){
	
	}
	
	public String getServletInfo(){
		return "";
	}

	public ServletConfig getServletConfig(){
		return null;
	}
}

 

 如果找不到所需jar包,需要将Tomcat下的servlet-api.jar配置到环境变量

        第八步:将编译之后的class文件拷贝至classes目录下的learnjava目录下

 

        第九步:在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都对应一个servlet-mapping-->
    <servlet>
	    <servlet-name>HelloServlet</servlet-name>
        <!--带有包名的全限定类名,最好复制-->
	    <servlet-class>learnjava.HelloServlet</servlet-class>
    </servlet>
    <!--servlet映射信息-->
    <servlet-mapping>
	    <servlet-name>HelloServlet</servlet-name>     <!--随便 但和上面的一样-->
	    <!--当前这个路径可以随便写,必须以/开始-->
	    <url-pattern>/gyq</url-pattern>
    </servlet-mapping>
</web-app>

        第十步:启动Tomcat服务器

        第十一步: 在浏览器输入一个url访问该项目(请求路径与xml中url-pattern相同)

                        ​​​​​​​        

服务器端输出:

         

注意:

        一个合法的webapp的目录结构

        可以在html网页中以超链接的形式访问

 点击该标签访问超链接与在浏览器输入相同

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值