Servlet容器介绍
Sercvlet是基于java的动态网站开发技术,其所有类和组件都是基于java实现的,要想使用Servlet,就必须提前配置好java运行环境。Servlet基于java,可以使用几乎全部的java API,所以它的功能异常强大,完全可以胜任企业级开发,能够处理那些高并发、大吞吐量、业务逻辑复杂的应用场景。
搭建好java环境后,再安装一款web容器就可以运行Servlet代码。市场上有很多web容器,其中使用最普遍就是tomcat。
Tomcat优点:是一款免费开源的web容器,其占用资源少,扩展性好,运行稳定。
补充:
第一代java web开发技术——Servlet
第二代java web开发技术——JSP
现在的java web开发技术——各种框架
1、Tomcat下载与安装
下载地址:Apache Tomcat® - Welcome!
在下载tomcat的时候,需要将Tomcat版本与java的版本对应起来。详细信息,可以再网上搜索。其中jdk8对应的版本是:Tomcat9。
2.Tomcat目录结构
(1)bin目录:用来存放Tomcat命令,主要分为两大类。一类是以.sh结尾的linux命令,另一类是以.bat结尾的windows命令。
conf目录:主要是用例存放Tomcat的配置文件,下面是常用到的几个文件:
(2)server.xml:用来设置域名、IP、端口号、默认加载的项目、请求编码等;
context.xml:用来配置数据源等;
tomcat-users.xml:用来配置和管理Tomcat的用户与权限;
web.xml:可以设置Tomcat支持的文件类型;
(3)lib目录:主要用来存放Tomcat运行需要加载的jar包。
(4)logs目录:用来存放Tomat在运行过程中产生的日志文件,清空该目录中的文件不会对Tomcat的运行带来影响。
(5)temp目录:用于存放Tomcat在运行过程中产生的临时文件。
(6)work目录:用来存放Tomcat在运行时的编译文件。
3.Tomcat服务器配置
修改端口密码:找到tom目录/conf/server.xml。修改port的值,将port端口值修改为80.
只用修改用红笔画出的部分即可。
4.Tomcat服务器部署项目
方式1:直接在Tomcat webapps目录创建一个文件夹
方式2:在tomcat目录/conf/server.xml配置。在server.xml文件中找到hsot标签,在host标签中添加Context标签,并且在Context标签中指定path=“浏览器要访问的目录----虚拟目录”和doBase=“网站所在磁盘目录”
5、Servlet环境部署
环境搭建流程
项目中创建libs目录存放第三方jar包;
导入servlet-api.jar至libs中(可以从tomcat安装目录的lib目录获取)
创建servlet包,专门存放servlet代码
创建indexServlet实现Servlet重写方法
indexServlet类上加上@WebServlet("/miracle")注解定义URL访问路径
重写Servlet类中的services在service中编写动态资源
类IndexServlet中的内容为:
package com.web.servlet; import javax.servlet.*; import javax.servlet.annotation.WebServlet; import java.io.IOException; import java.io.PrintWriter; import java.rmi.server.ServerCloneException; @WebServlet("/miracle") public class IndexServlet implements Servlet { @Override public void init(ServletConfig servletConfig) throws ServletException{ } //当Tomcat容器启动的时候,会自动进行初始化 @Override public ServletConfig getServletConfig() { return null; } @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { //这个方法用于处理用户请求 String userName=servletRequest.getParameter("userName"); //获取浏览器用户输入的参数值 servletResponse.setContentType("text/html;charset=utf-8"); //设置Servlet的编码类型是html,编码格式为utf-8,避免出现乱码 PrintWriter writer =servletResponse.getWriter(); //获取io写入的方法 if ("xt".equals((userName))){ writer.println("可以访问"); }else{ writer.println("不可以访问"); } writer.close(); } @Override public String getServletInfo() { return null; } @Override public void destroy() { } }
项目结构为:
访问网址为:localhost:8080/Tomcat_test2_war_exploded/miracle?userName=xt
Servlet的配置——基于web.xml
Servlet访问流程