java web 中的 Apache Tomcat Servlet 应用详解(一)
2018-03-26 22:12
686 查看
Apache Tomcat 9.0.0.M26介绍
1.Tomcat介绍 1.Tomcat 是由 Apache 开发的一个 Servlet 容器, 2.实现了对 Servlet 和 JSP 的支持,并提供了作为Web服务器的一些特有功能, 如Tomcat管理和控制平台、安全域管理和Tomcat阀等。 3.由于 Tomcat 本身也内含了一个 HTTP 服务器,它也可以被视作一个单独的 Web 服务器。 4.但是,不能将 Tomcat 和 Apache HTTP 服务器混淆,Apache HTTP 服务器是一个用 C 语言实现的 HTTP Web 服务器;这两个 HTTP web server 不是捆绑在一起的。 5.Tomcat 包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。 2.Tomcat 重要目录 * bin:可执行文件(打开关闭服务器的文件) * conf:服务器的配置信息 * log:服务器日志 * temp:产生的临时文件 * work:服务器自己的工作空间 * webapps:默认的存放工程文件夹 * wtpwebapps:跟Eclipse关联后产生的存放工程的文件 * lib:服务器使用的jar包
2.启动Tomcat服务器命令
1.从控制台启动Tomcat服务器命令 1.先去往文件夹位置 2.控制台输入命令sudo chmod 755 *.sh 获取文件夹权限(读取) 3.输入命令sudo sh ./startup.sh 执行打开服务器 4.在浏览器中网址输入http://localhost:8080 //访问服务器网址(url)uri 协议://本地地址:端口号/项目名(应用程序)/访问的资源 5.输入命令sudo sh ./shutdown.sh 关闭服务器 2.用户通过网址访问服务器(Tomcat) 1.服务器通过网址可以找到对应项目的web.xml文件 2.通过网址找到对应的servletname 3.通过serletname找到对应的 servlet类 4.创建servlet对象 5.执行生命周期几个方法 实例化-->init()初始化-->service服务-->destroy()销毁 3.Servlet 小服务程序 是个java类 接口 注意:在浏览器上访问的每一个网页都是一个servlet 每一个servlet都有配置一个网址 在web.xml中配置
2.web.xml配置文件
<!-- 工程的名字 --> <display-name>工程的名字 </display-name> <!-- 设置欢迎页面 --> <!-- 设置欢迎页面 --> 判断输入的网址是否一致,不一致继续就向下寻找,如果最后还没找到就会报错如404 <welcome-file-list> <welcome-file>1.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <!--设置servlet名字 --> <servlet-name>demo01</servlet-name> <!-- 设置该servlet使用那个类 全限定类名--> <servlet-class>com.lanou3g.Demo01</servlet-class> </servlet> <servlet-mapping&g 4000 t; <!-- 配置那个serlet的映射地址 --> <servlet-name>demo01</servlet-name> <!-- 配置映射地址 --> <!-- 注意这里的斜杠代表工程名后面斜杠 必须加上 --> <url-pattern>/demo01</url-pattern> </servlet-mapping> <!-- 配置访问路径通配符 --> <!-- *.action 只要是以.action结尾的访问路径 --> <!-- 都可以访问到demo02这个servlet --> <!-- /* 项目目录下 随便输网址 都你访问到demo02 --> <!-- 注意:上面两种方式不能连用 --> <!-- 添加servlet的配置信息 --> <servlet> <servlet-name>demo03</servlet-name> <servlet-class>com.lanou3g.Demo03</servlet-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>demo03</servlet-name> <url-pattern>/demo03</url-pattern> </servlet-mapping> </web-app>
3.创建一个Servlet
1.首先进行web.xml配置 <servlet> <servlet-name>cleanup</servlet-name> <servlet-class>CleanUp</servlet-class> </servlet> <servlet-mapping> <servlet-name>cleanup</servlet-name> <url-pattern>/cleanup</url-pattern> </servlet-mapping> 2.创建一个名为CleanUp的Servlet服务程序 package CleanUp; import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class CleanUp implements Servlet{ @Override public void init(ServletConfig config) throws ServletException { System.out.println("初始化"); } @Override public ServletConfig getServletConfig() { // TODO Auto-generated method stub return null; } @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { System.out.println("服务器service"); } @Override public String getServletInfo() { // TODO Auto-generated method stub return null; } @Override public void destroy() { System.out.println("销毁destroy"); } }
3.其他创建servlet方式
1. 创建servlet方式二(适配器模式创建) public class Demo02 extends GenericServlet { @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { System.out.println("适配器服务"); } } 2.创建Servlet方式三(模板设计模式) 常用方式 获取ServletConfig public class Demo03 extends HttpServlet{ //声明一个ServletConfig对象 当做成员变量 private ServletConfig config; // 初始化方法(通过该方法的参数 获取到ServletConfig对象); // ServletConfig对象保存的是Servlet配置信息 @Override public void init(ServletConfig config) throws ServletException { //接受配置信息 this.config= config; } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub // 调用父类的doget都会报错 // 重写完doget方法注意不要调用父类doget System.out.println("你好"); // 参数是配置时的 name(相当于key) // 用key获取对应的value String value= this.config.getInitParameter("encoding"); System.out.println(value); } // 接受post请求 @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } } 3.获取ServletConfig public class Demo04 extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //通过父类中的方法获取ServletConfig对象 ServletConfig config= this.getServletConfig(); String parameter = config.getInitParameter("encoding"); System.out.println(parameter); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
4.域对象:在一定范围内存储信息的对象
* ServletContextn 范围:整个程序中 都可以访问到 并且只有一个 单例 * 每个servlet都可以访问到这个对象 * 如何获取ServletContext对象? * 方式1:从ServletContext对象中获取 * 方式2:从父类直接获取 * 注意:所有的域对象 都有设置/获取/删除的方法
public class Demo05 extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 从 ServletConfig 对象中获取 ServletContext application = this.getServletConfig().getServletContext(); // 添加一个数据到 context 域中 // 相当于添加一个键值对 key 和 value application.setAttribute("username", "wwww"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } } public class Demo06 extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 获取域对象 Object object = this.getServletContext().getAttribute("username"); System.out.println(object); // 设置和获取全局配置信息 // 通过 getServletContext() 获取资源真实路径 } }
相关文章推荐
- Tomcat启动报错:java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet
- Gradle构建Java Web应用:Servlet依赖与Tomcat插件(转)
- Tomcat- java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet
- Tomcat与JavaWeb 1.2 JavaWeb应用的生命周期、Servlet的生命周期
- java web应用在tomcat下servlet api包冲突问题
- Gradle构建Java Web应用:Servlet依赖与Tomcat插件
- Tomcat 与java web 开发技术详解笔记(二)----Servlet
- 传智播客Java web之 Tomcat的虚拟目录以及JK插件详解
- Tomcat中用web.xml控制Web应用详解(1)
- Tomcat中用web.xml控制Web应用详解1
- 传智播客Java web之 HttpServletRequest的应用
- Eclipse Java EE IDE for Web Developers(Build id: 20090621-0832)下apache-tomcat-6.0.16配置.
- Tomcat中部署Java Web应用
- Java Web 应用web.xml配置 --Servlet映射配置
- Tomcat中用web.xml控制Web应用详解(1)
- 传智播客Java web之 Servlet应用的开发与映射总结
- Tomcat中用web.xml控制Web应用详解(1) ZT
- apache和tomcat区别 (WEB服务器和应用服务器)
- Tomcat 与java web 开发技术详解笔记(三)----JSP
- 传智播客Java web之 Servlet中的类装载器详解