##WEB阶段 ## Tomcat服务器

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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值