Java web入门+Tomcat详解

1.Java EE

    ①JavaEE应用:稳定的性能、良好的开放性、严格的安全性。

            跨平台性、开放性、各种远程访问技术(为异构系统的)。

            可扩展性、可维护性。

    ②Java领域常见的Web服务器:

            Tomcat:和Java结合的最好,是Oracle官方推荐的JSP服务器。开源的web服务器,性能和稳定性都很优秀。

            Jetty:可作为一个嵌入式服务器,如果在应用中加入Jetty的JAR文件,应用可在代码中对外提供Web服务。

            Resin:最快的JSP、Servlet运行平台,支持EJB,个人学习免费。 

    ③专业的Java EE服务器(支持更多的Java EE特性,如分布式事务、EJB容器等):

            JBoss(开源)、GlassFish(Oracle官方提供)、WebLogic等。


2.关于软件开发

    ①对于个人学习、娱乐的个人站点,的确没有必要使用复杂的Java EE应用架构,采用纯粹的JSP就可以实现整个系统。

    ②对于大型的信息化系统而言,就必须采用Java EE应用架构。

            软件不像硬件,不能彻底替换,只能在其原来的基础上延伸,因为软件往往是信息的延续,是企业命脉的延伸。

            如果支撑企业系统的软件不具备可扩展性,当企业平台发生改变时,新系统如何与老系统融合?老系统的信息如何利用?

    ③对于信息化系统,前期开发工作对整个系统工作量而言,只是很小的一部分。而后期的维护、升级往往占更大的比重。

            在开发过程中,企业需求也可能改变。因此,要求软件系统具有很好的伸缩性。

    ④最理想的软件系统应该如同计算机的硬件系统,各设备之间的影响非常小,设备与设备之间的实现完全透明,只要有通用的接口,设备之间就可以良好协作。这是软件系统努力的方向,架构致力于让应用的各组件以松耦合的方式组织在一起,让应用之间的耦合停留在接口层次,而不是代码层次。


3.JSP和Servlet的关系

    ①JSP是最早的Java EE规范之一,也是最经典的Java EE技术之一。

            JSP具有简单、易用的特点。

    ②Servlet和JSP其实是完全统一的,二者在底层的运行原理是完全一样的。

            JSP必须被Web服务器编译成Servlet,真正在Web服务器内运行的是Servlet。

            JSP相当于一个"草稿"文件,Web服务器根据该"草稿"文件来生成Servlet,真正提供HTTP服务的是Servlet。

            纯粹的Servlet已经很少使用。

    ③JSP只负责简单的显示逻辑,所以JSP无法直接访问应用的底层状态,Java EE应用会选择使用 JavaBean 来传输数据。

            在严格的Java EE应用中,中间层的组件会将应用底层的状态信息封装成JavaBean集,这些JavaBean也被称为数据传输对象(DTO)。将这些DTO集传到JSP页面,从而让JSP可以显示应用的底层状态。除使用JSP作为表现层技术之外,还可以使用FreeMarker或Velocity充当表现层技术,这些技术更纯粹和简捷。


4.Tomcat使用详情

    ①Tomcat是纯Java实现的,它是与平台无关的,在任何平台上运行完全相同。

    ②Tomcat的文件结构:

            bin:存放启动和关闭Tomcat的命令的路径。

            conf:存放Tomcat的配置,所有的Tomcat的配置都在该路径下设置。

            lib:存放Tomcat服务器的核心类库(JAR文件),如果需要扩展功能,可将第三方类库复制在该路径下。

            logs:空路径,用于保存Tomcat每次运行后产生的日志。

            temp:保存Web应用运行过程中生成的临时文件。

            webapps:用于自动部署Web应用,将Web应用复制在该路径下,Tomcat会将该应用自动部署在容器中。

                    Manager控制台对应的Web应用也是存放在该路径下。

            work:保存web应用在运行过程中,编译生成的class文件。(系统自动生成)

            LICENSE等相关文档。

    运行Tomcat需要的环境变量:JAVA_HOME(值指向JDK安装路径)。

    ③配置:

           Tomcat的配置文件放在conf目录下:

                    控制端口:server.xml文件中可以修改端口号

                            需要运行多个服务,只需复制server.xml文件中的<Service>元素、并修改相应的参数(不同端口号)。

                 web.xml文件修改<param-value>true</param-value>,可使得Tomcat能列出Web应用根路径下所有的页面,如下:       

     ④进入控制台:

            Tomcat提供了图形控制台,通过控制台,用户可以方便地部署Web应用、监控Web应用的状态等

                    但是通常建议使用配置文件来管理Tomcat配置,而不是通过图形界面。

            

            通常只需要使用Manager控制台即可,这个控制台必须输入用户名和密码才可以登录。

                    控制台的用户名和密码是通过Tomcat的JAAS控制的。

                  JAAS全称是Java Authentication Authorization Service(验证和授权API),用于控制对Java Web应用的授权访问。 

                    修改Manager应用的配置文件,即web.xml。

                    登录Manager控制台需要不同的角色,对于普通开发人员,使用manager-gui角色即可。

                   Tomcat默认采用文件安全域,即以文件存放用户名和密码,Tomcat用户由conf路径下的tomcat-users-xml文件控制,默认没有配置任何用户。修改如下:        

      <tomcat-users>          
           <role rolename="manager-gui"/>
           <user username="wjy" password="993344" roles="manager-gui"/>
      </tomcat-users>

                    一般修改完配置文件,最好重启服务器。             

            登录界面如下:

            

           

            如图所示的控制台可监控到所有部署在该服务器下的Web应用,右边的4个按钮用于控制,包括启动、停止、重启等。

            控制台下方的Deploy区则用来部署Web应用:

                    a.如上右图是将整个路径部署成Web应用

                    b.将WAR文件部署成Web应用,在上右图的下方。

             Tomcat中部署Web应用的方法:

                     a.利用Tomcat的自动部署(简单、常用,只需复制目录到Tomcat的webapps下)

                     b.利用控制台部署(在Manager登录后 填写文件名 目录名(Deploy中))

                     c.增加自定义的Web部署文件:

                             在conf目录下新建Catalina\localhost\文件名.xml,此文件名将作为Web应用的虚拟路径。

                             即http://<server_address>:<port>/文件名。

                             配置:

                   <Context docBase="D:/java/JSPServlet" debug="0" privileged="true">

                   </Context><!--指定了绝对路径。-->

                     d.修改server.xml文件部署应用(不建议使用)。

            PS:并且使用上述第三种方法,将 IDEA的项目动态部署在Tomcat服务器中。此时启动8080页面的控制台,可以管理多个项目。


 5.构建web应用

    ①新建一个文件夹,名字任意(项目名)。

    ②进入文件夹,建立一个WEB-INF文件夹(大写)。

    ③在Tomcat中复制一个web.xml文件(webapps下复制,其路径下有大量的示例Web应用),放于WEB-INF文件夹中。

    ④修改复制后的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"
    </web-app>

    ⑤在WEB-INF路径下建立lib和classes文件夹。

        用于保存Web应用所需要的Java类文件。

        classes保存单个*.class文件,而lib保存打包后的JAR文件。

    ⑥将该项目文件夹(空Web应用)复制到Tomcat的webapps路径下,该Web应用将可以自动部署在Tomcat中。

    ⑦将jsp放在项目名根目录下,即可通过浏览器访问。

        符合格式:

                项目名

                |-WEB-INF

                |        |-classes

                |        |-lib

                |        |-web.xml

                |-存放任意多个JSP页面

        每个Web应用的WEB-INF路径下的web.xml文件被称为配置描述符,很重要,不必须。

        每个Web容器都会提供一个系统的web.xml文件,用于描述所有Web应用共同的配置属性。

                Tomcat的系统web.xml放在conf文件夹下。

                Jetty的系统web.xml文件放在etc路径下,名为webdefault.xml。

                web.xml文件的根元素是<web-app.../>元素。

                配置web首页:       

       <welcome-file-list>
            <welcome-file>11.jsp</welcome-file>
            <welcome-file>22.jsp</welcome-file>
            <welcome-file>33.jsp</welcome-file>
       </welcome-file-list>

        <!--即浏览者访问该web应用时,默认访问11.jsp,若11.jsp不存在,访问22.jsp,以此类推。-->

        WEB-INF是一个特殊的文件夹,Web容器会包含该文件夹下的内容,客户端浏览器无法访问WEB-INF路径下的任何内容。

        PS:应该将MySQL驱动的JAR文件放在Tomcat的lib路径下。


6.划重点!!

    IDEA中 Tomcat9+Mysql驱动+ 环境配置 已上传到CSDN,https://blog.csdn.net/qq_41979043/article/details/82897385

猜你喜欢

转载自blog.csdn.net/qq_41979043/article/details/82972611