您的位置:首页 > 运维架构 > Tomcat

##WEB阶段 ## Tomcat服务器

2020-02-16 21:57 393 查看

WEB阶段

Tomcat服务器

今天是在基地学习两个月来第一次写博客,开始的很是艰辛,但是一旦开始,我一定会坚持下去,今天学习了Tomcat服务器,我打算把它记录下来。
目前最为流行的Tomcat服务器是Apache-Jarkarta开源项目中的一个子项目,是一个小型、轻量级的支持JSP和Servlet 技术的Web服务器。

目录介绍

bin目录
存放运行tomcat服务器相关的命令
windows: 双击命令即可
启动tomcat: startup.bat
关闭tomcat: shutdown.bat
conf目录
存放tomcat服务器相关的配置文件
例如:在tomcat服务器启动的时候,会绑定一些端口号,这些端口号就可以在配置文件server.xml文件中进行修改
lib目录
存放tomcat服务器自带的jar包,我们也可以把其他的一些jar包也存放到这
在tomcat中同时可以部署多个项目,这个多个项目可共享lib目录中的jar包
logs目录

存放tomcat服务器在运行过程中,所产生的日志文件
temp目录

存放tomcat服务器在运行过程中,所产生的临时文件
webapps目录

存放部署到tomcat服务器中的web项目,把项目部署服务器里面,其实就是放到这个目录下
work目录

这个目录和是jsp页面相关的
如何启动tomcat
​ 注意:需要配置环境变量 JAVA_HOME
windows: 双击命令即可
启动tomcat: startup.bat
关闭tomcat: shutdown.bat
Unix: (注意文件的权限)

启动tomcat: startup.sh

关闭tomcat: shutdown.sh

端口问题
​ 在server.xml中修改端口

web项目

俩个软件之间的信息交换,客户端机器中的浏览器软件和服务器端机器中的web服务器软件之间的交换,
比如在我们的学习中,就是客户端的浏览器和服务器端的tomcat进行信息交换。
浏览器和tomcat是俩个不同的软件,但是在开发这俩个软件的时候,都是加入对http协议的支持,所有它们俩个进行信息交换的时候,是通过http协议规定的方式进行交换的:客户端先发送一个请求,然后服务器端接收到请求后再返回给客户端一个响应,并且把客户端所请求的资源返回给客户端.
我们要做的时候就是,开发一个web项目,然后把这个web项目放到tomcat里面指的的位置,然后再运行这个tomcat软件,在tomcat运行过程中,其他计算机里面,只要是网络和我们这个服务器是通的,那么都可以通过浏览器来访问我们这个web项目。
1.新建一个静态web项目
2.新建一个动态web项目
项目名字:WebTest

文件夹WebTest,项目名字是随便起的

WebTest文件中有文件WEB-INF,WEB-INF这个名字是固定的

WEB-INF文件夹中:classes文件夹,lib文件夹,web.xml文件,这个名字都是固定的。

web.xml文件在tomcat目录中的conf目录里面有一个web.xml模板.

import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet;

import java.io.IOException; import java.io.PrintWriter;

@WebServlet("/first") public class FristServletTest extends HttpServlet{

private static final long serialVersionUID = 1L;

public void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
PrintWriter out = resp.getWriter();
out.println("hello world");
out.flush();
out.close();

}
} /* 注意: servlet-api.jar在tomcat的lib目录中 编译命令为: javac -cp servlet-api.jar -d . FristServletTest.java */

3.web项目资源介绍
静态资源
静态资源主要是指web项目中的css图片,或者是js等等资源
访问静态资源称为静态请求
动态资源
动态资源主要是指web项目中的特殊类或者jsp
访问动态资源称为动态请求

Servlet
1、servlet其实就是java里面的一种java类,只不过这种 java类有一些特殊作用,所以我们叫它servlet,servlet就是一个遵循java EE规范的一个类,在java中规范指的是接口或者是抽象类,在java中遵循规范指的就是实现接口或者继承抽象类
2、创建Servlet的三种方法
创建Servlet一共用三种方法:
(1)创建一个类实现Servlet接口,重写接口里的servlet方法

@WebServlet("/first")
public class FirstServlet implements Servlet {
@Override
public void init(ServletConfig config) throws ServletException {
}

@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
res.setContentType("text/html;charset=utf-8");
System.out.println("我太难了");
PrintWriter pw = res.getWriter();
pw.write("我太难了");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}

(2)继承GenericServlet
GenericServlet 抽象类解释:该类是一个抽象类,并且该类实现了servlet接口
设置格式为图片,创建一个数组用来存取读到的数据,用res.getOutputStream写读到的数据到网页,用字节输入流读图片:

@WebServlet("/second")
public class SecondServlet extends GenericServlet {

@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
res.setContentType("image/jpeg;charset=utf-8");
byte[] bytes = new byte[1024];
ServletOutputStream os = res.getOutputStream();
FileInputStream fis = new FileInputStream(new File("E:\\briup-code\\eclipse-jee-oxygen-M5-win32-x86_64\\corejava-workspace\\jd1914-web\\src\\1.jpg"));
int flag = -1;
while((flag = fis.read(bytes)) != -1) {
os.write(bytes, 0, flag);
}
os.flush();
}

}

(3)继承HttpServlet,也随最常用的创建servlet的一种方式,重写doGet和dopost方法:

@WebServlet("/three")
public class ThirdServlet extends  HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("video/mpeg4;charset=utf-8");
FileInputStream fis = new FileInputStream(new File("E:\\briup-code\\eclipse-jee-oxygen-M5-win32-x86_64\\corejava-workspace\\jd1914-web\\src\\1.今日内容.mp4"));
ServletOutputStream os = resp.getOutputStream();
int flag = 0;
byte[] bytes = new byte[2048];
while((flag = fis.read(bytes)) != -1) {
os.write(bytes,0,flag);
}
os.flush();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
}
  • 点赞 1
  • 收藏
  • 分享
  • 文章举报
YTY吖 发布了2 篇原创文章 · 获赞 1 · 访问量 56 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: