day09笔记(tomcat、Servlet)

更新时间:2023-11-04 22:29:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第9天 web服务器和Servlet技术

今日任务

1、JavaWeb技术知识介绍 2、Tomcat服务器安装和配置 3、项目发布三种方式 4、HTTP协议介绍

5、Servlet介绍&编写简单的Servlet程序 3W why? how? what? 6、Servlet细节&web开发路径问题(特别容易混淆) 7、ServletConfig和ServletContext介绍

1. WEB技术

1.1. web开发是什么?

Web开发:主要指的是网站的开发。我们学习的JavaEE开发,主要是基于网页开发后台的所有应用程序。

1.2. web开发使用到的技术

Web开发使用的到技术:网页开发使用的技术: Html、css、JavaScript、DOM技术。

其他的技术:ASP(微软的技术.net)、PHP技术、Java中的JSP技术。

1.3. web资源分类和web服务器介绍

使用上述的技术可以开发一个web项目出来,但是这个web项目有自己的分类:

1、 静态web资源:

使用html、css、js、dom、文件、音频、视频等资料,这些都属于静态的资源。

2、动态web资源: 使用其他的技术随着程序的运行生成的一些网页等信息。Java中使用Servlet技术或者JSP技术就可 以开发出动态的web数据

Web服务器: 主要是把开发好的web资源,运行起来,并把这些资源提供给外界,让其他的用户可以访问到这些资源。

常用的web服务器: TOMCAT:它是一个开源免费的web服务器,它 不支持JavaEE的13种规范。 Weblogic:大型的收费服务器,它完美支持JavaEE的所有规范。 Websphere:大型的收费服务器,它完美支持JavaEE的所有规范

真正运行项目的设备,不是个人台式机。而需要购买大型的服务器。 大型服务器就是硬件。而这个硬件需要接入到互联网中。当这个服务器接入到互联网中之后,就会给这个服务器分配一个固定的IP。 然后就可以把前面介绍的软件服务器安装在硬件服务器上。软件服务器就会有自己端口号。

2. 安装配置tomcat:

2.1. 如何安装和配置tomcat服务器 2.1.1. 下载安装

http://tomcat.apache.org/

2.1.2. 安装和目录介绍

安装介绍:

直接解压当前这个tomcat压缩包。

bin:保存的是所有可以执行直接的命令。

conf:它是tomcat的配置目录

lib:是tomcat软件运行所需的jar包 logs:是tomcat软件运行的日志文件 temp:临时文件

webapps:这个是一个十分重要的目录,我们开发的所有的web资源,需要放在这个目录下,tomcat服务器才能帮助运行它们,外界才能访问到

Work:tomcat运行时需要的一个工作目录,后期我们学习的JSP文件翻译后就在这个目录。

2.1.3. 配置环境变量

Tomcat软件运行它需要依赖Java的运行环境。 需要在电脑中配置JAVA_HOME环境变量。

JAVA_HOME环境变量中配置的JDK的安装目录,不能包含bin目录

2.1.4. 启动服务器

进入tomcat的安装目录中,在bin目录下有startup.bat文件,双击运行。

2.1.5. 测试

打开浏览器在,在浏览器的地址栏中输入: http://192.168.1.251:8080 http://127.0.0.1:8080 http://localhost:8080

2.2. tomcat服务器安装配置常见问题 2.2.1. 无法启动(闪退)

主要原因:没有配置JAVA_HOME环境变量。 JAVA_HOME 环境变量 中配置的是JDK的安装目录,不包含bin目录,不是tomcat的安装目录。 闪退的原因查看:可以在startup.bat文件中书协pause命令。让运行的窗口暂停。

2.2.2. 端口被占用的问题

如果启动的时候,发生异常问题,这时有可能是端口被占用。

Tomcat服务器在启动的时候默认占用本地的8080端口,如果这个端口被占用,启动的时候就会报错。

查看本地端口使用情况:

在dos窗口中输入 netstat –nao 就可以查看当前端口的占用情况

查看当前端口占用的pid,然后打开任务管理器,找到进行,在进行查看当前pid对应的进程,把进程干掉。

注意:如果这个进程是操作系统的任务进程,这时一般是不能停止这个进程。

2.2.3. 没有配置CATALINA_HOME 环境变量

如果配置了JAVA_HOME还是闪退,可能缺少的是CATALINA_HOME。

CATALINA_HOME 环境变量中配置的是tomcat的安装目录,不包含bin目录。一般不需要配置。

3. 主机配置和web资源(项目)发布

3.1. 主机配置

Tomcat服务器的配置,全部都需要在tomcat的安装目录下conf目录下完成:

tomcat的默认端口为8080:

修改tomcat的端口为9090:

修改完server.xml文件必须重启服务器才能有效。 通过浏览器的地址栏访问:http://localhost:9090

配置主机: Tomcat默认配置的主机是localhost:

Name就是自己的主机名字。appBase是主机中的web资源保存的目录。

3.2. 项目(web资源)发布

Tomcat给出5种项目发布的方式: 这里介绍其中三种:

3.2.1. 第一种:在webapps下面直接发布:(★★★★★)

只需要把开发好的项目复制到webapps下面即可。这时不用重启tomcat服务器,tomcat服务器会自动的加载复制到webapps下面的所有项目资源。

1.1 在aaa文件夹下新建01.html

将aaa文件夹拷贝到 tomcat/webapps目录下

通过浏览器地址栏访问:http://localhost:9090/aaa/01.html

1.2 项目需要压缩,然后把压缩包发布到webapps下面:

在新目录bbb创建02.html

将工程使用zip格式压缩,然后更改后缀名为 war。

把war包复制到wabapps下面:

在webapps下面的war文件会自动的被解压。

通过浏览器地址直接访问:http://localhost:9090/bbb/bbb/02.html

3.2.2. 第二种发布项目的方式(了解):

需要在conf目录下的server.xml中的Host标签中配置需要发布的项目

path属性中配置的是外界需要访问的项目的路径 docBase:配置的是wab资源在硬盘上的真实目录

3.2.3. 第三种在tomcat\\conf\\Catalina\\localhost目录下配置需要发布的项目

在localhost目录下,直接书写xml文件。这个xml文件的名字,就是外界需要访问的项目的名称 在xml中只需要书写docBase属性即可

3.3. tomcat管理(了解)

tomcat服务器的管理: 1、使用浏览器访问tomcat的主页。http://localhost:9090

2、选择管理

输入账号和密码。这里目前没有,单击取消

3、找到tomcat-users.xml文件,在其中配置提示中的内容即可

项目的配置信息需要在当前这个web.xml的全局位置配置:

: 需求:读取当前项目配置信息 company=上海传智播客 addr=上海市闵行区浦江镇

public class Demo3Servlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // response.getWriter().print(\ // 需求:读取当前项目配置信息 company=上海传智播客 addr=上海市闵行区浦江镇 // 项目的配置信息保存在servletContext中 ServletContext ctx = this.getServletContext(); // 从ctx中获得初始化参数信息 // String company = ctx.getInitParameter(\ // System.out.println(\公司名称:\ // // String addr = ctx.getInitParameter(\ // System.out.println(\地址:\ Enumeration en = ctx.getInitParameterNames(); while (en.hasMoreElements()) { // 如果有,就获得key String key = en.nextElement(); // 根据key 来获得value String val = ctx.getInitParameter(key); System.out.println(key + \ + val); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } } 10.2. 实现多个servlet对象共享数据

由于一个web应用程序中的所有Servlet共享同一个ServletContxt对象,因此ServletContext中的属性可以被Web应用程序中的所有servlet访问。在ServletContext中分别定义了用于 增加、删除、获取ServletContext属性的4个方法:

需求1:将ServletContext当作容器,在第一个servlet中存钱; 在第二个servelt中取钱。

ServletContext当做容器使用的时候,把ServletContext称为域(范围)对象。 注意:开发时尽量不要把数据保存在ServletContext对象中。 10.3. ServletContext读取Web工程中资源文件

面试题: 返回资源文件在文件系统(windows操作系统)中的真实路径(文件的绝对路径)。

有时候,希望读取Web应用中的一些资源文件,如配置文件、图片等。

为此,在servlet接口中定义了一些读取web资源的方法,这些方法是依靠服务器(tomcat) 来实现的。 tomcat根据资源文件相对于Web应用的路径,返回关联资源文件的IO流、资源文件在 系统的绝对路径等。

参数path应该以 “/”开始,“/”表示当前Web应用的根目录, / 代表: http://ip:端口/项目名称/ 如果tomcat不能将路径转化成文件系统的真实路径,则返回null。

可以使用ServletContext读取、保存文件。

项目开发的时候,只会把webRoot下面的内容发布到tomcat的webapps下面,而在webRoot平级的文件是不会被发布到tomcat上的。

注意:使用ServletContext对象获取某个文件的路径时,只能获取发布之后的文件路径,而没有发布的文件是无法读取的。 需求:使用ServletContext 对象获得2.txt的绝对路径,读取文件中的内容。 public class Demo6Servlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 需求:使用ServletContext 对象获得2.txt的绝对路径,读取文件中的内容。 // 获得context对象 ServletContext ctx = this.getServletContext(); // 获得文件的绝对路径 String realPath = ctx.getRealPath(\); System.out.println(realPath); // 通过io流读取文件中的内容 InputStream in = new FileInputStream(realPath); InputStreamReader isr = new InputStreamReader(in, \); BufferedReader br = new BufferedReader(isr); String line = null; response.setContentType(\); while ((line = br.readLine()) != null) { response.getWriter().println(line + \); } // 关流 br.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } } 项目名

在后期学习文件上传下载的时候需要获取文件的MIME类型使用

启动:

浏览器测试:

4.3. web项目目录介绍

使用myeclipse 将项目发布到tomcat都做了那些事呢?

web资源开发的时候,有自己固定的目录:使用JavaEE开发的web资源,都有自己固定的目录结构: 需要一个文件夹作为这个项目的主目录。

5. Servlet开发入门

5.1. Servlet介绍

在Java中接口有2个功能: 1、给事物体系增加额外的功能(扩展功能)。 2、接口另外一个功能就是定义事物双方的规则。 接下学习Servlet技术。它是一个接口。 我们开发的web项目都需要交给web服务器去运行。web服务器(tomcat)要能够运行我们开发的Java程序,那么web服务器和我们的Java程序之间必然会有一个程序运行的规则问题。 而这个规则就是sun公司在JavaEE规范中定义的Servlet接口。而tomcat服务器它实现了Servlet接口。然后我们在使用Java程序开发项目的时候,我们的项目也要遵守Servlet这个接口的规则,这样才能保证开发的Java项目交给tomcat服务器正常运行。

可以查阅JavaEE手册(帮助文档)阅读Servlet规范。

5.2. Servlet开发的步骤:(★★★★★)

1、在cn.itcast.a_servlet包下 创建一个类 继承HttpServlet

2、复写HttpServlet中的doGet和doPost方法

// 重写doGet方法 // 作用:主要处理get请求 // get请求的类别: 通过浏览器地址栏直接访问, 通过超链接, 表单 form method=get @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { } // 向控制台输出一句话 System.out.println(\这是一个get请求\); // 向浏览器输出一句话 resp.getWriter().println(\); // 重写doPost方法 // 作用:主要处理post方式的请求 // post请求的类别: 表单 form method=post @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 向控制台输出一句话 System.out.println(\这是一个post请求\); // 向浏览器输出一句话 resp.getWriter().println(\); } 3、在当前项目中的web.xml文件中配置当前开发好的Servlet程序 hello cn.itcast.a_servlet.HelloServlet hello /abcd 4、发布这个项目,运行服务器,测试

本文来源:https://www.bwwdw.com/article/1ka2.html

Top