Java中Javaweb之TomCat配置和Servlet方法和ServletConfig方法
2018-03-26 21:30
627 查看
Tomcat
先下载apache-tomcat-9.0.0.M26 下载完后其中有几个文件夹 Tomcat文件夹 bin: 可执行文件(打开 关闭服务器的文件) conf: 服务器的配置信息 lib: 服务器使用的jar包 logs: 服务器日志 temp: 产生的临时文件 webapps: 默认的存放工程(应用程序)的文件夹 work: 服务器自己的工作空间 wtpwebapps: 跟Eclipse关联后产生的存放工程的文件夹
创建Servlet的几种方式
创建Servlet的方式一
从控制台启动Tomcat服务器命令 先去往Tomcat服务器下的 bin文件夹 cd (apache-tomcat-9.0.0.M26文件夹的目录) 获取文件夹权限(读写) sudo chmod 775*.sh 执行打开服务器 sudo sh ./startup.sh 执行关闭服务器 sudo sh./shutdown.sh 访问服务器网址(url) http://localhost:8080 协议://本地地址:端口号/项目名(应用程序名)/访问的资源 Servlet 小服务程序 是个Java类 是个接口 注意:在浏览器上访问的每一个页面都是Servlet 每个Servlet都需要配置一个网址 在web.xml中配置 完成后在Eclipse上 实现Servlet接口 public class Demo01 implements Servlet{ // 生命周期方法 以下4个 //实例化方法(无参构造方法) public Demo01() { System.out.println("我是实例化方法"); } @Override public void init(ServletConfig arg0) throws ServletException { // TODO Auto-generated method stub System.out.println("我是初始化方法init"); } @Override public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException { // TODO Auto-generated method stub // Servlet只创建了一个 多次访问 实际上就是 // 多次调用服务的方法service System.out.println("我是服务方法service"); } @Override public void destroy() { // TODO Auto-generated method stub // 1.删除该应用程序调用 // 2.停止服务器 System.out.println("我是销毁方法destroy"); } @Override public ServletConfig getServletConfig() { // TODO Auto-generated method stub return null; } @Override public String getServletInfo() { // TODO Auto-generated method stub return null; } }
用户如何从浏览器访问到Servlet类? 1.用户通过浏览器,使用网址访问服务器(Tomcat) 2.服务器通过网址可以找到对应项目的web.xml文件 3.通过网址找到对应Servletname 4.通过Servletname找到对应的Servlet类 5.创建Servlet对象 6.执行生命周期几个方法 实例化(无参构造方法) -> init初始化方法 -> service服务方法 -> 销毁destroy方法
配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?> <!-- 下面是xml文件头文件 限制了该xml文件所能书写的内容 --> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <!-- 工程名 --> <display-name>SH-web-servlet-01</display-name> <!-- 设置欢迎页面 --> <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名字 --> <servlet-name>demo01</servlet-name> <!-- 设置该Servlet使用哪个类 全限定类名 --> <servlet-class>com.lanou3g.Demo01</servlet-class> </servlet> <!-- 给该Servlet配置一个访问地址(映射地址) --> <servlet-mapping> <!-- 配置哪个Servlet的映射地址 --> <servlet-name>demo01</servlet-name> <!-- 配置映射地址 --> <!-- 注意:这里斜杠代表工程名后面斜杠 必须加上 --> <url-pattern>/demo01</url-pattern> </servlet-mapping> <servlet> <servlet-name>demo02</servlet-name> <servlet-class>com.lanou3g.Demo02</servlet-class> </servlet> <servlet-mapping> <servlet-name>demo02</servlet-name> <!-- 配置访问路径通配符 --> <!-- *.action 只要是以.action 结尾的访问路径 都可以访问到demo02 这个Servlet --> <!-- /* 项目目录下 随便 输入网址 都能访问到 demo02 --> <!-- 注意:上面两种方式不能连用 /*.action --> <url-pattern>/demo02</url-pattern> </servlet-mapping> <servlet> <servlet-name>demo03</servlet-name> <servlet-class>com.lanou3g.Demo03</servlet-class> <!-- 添加Servlet的配置信息 --> <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> <servlet> <servlet-name>demo04</servlet-name> <servlet-class>com.lanou3g.Demo04</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>/demo04</url-pattern> </servlet-mapping> </web-app>
创建Servlet方式二
/* * 创建Servlet的方式二(适配器模式创建) * 使用哪个方法就重写哪个方法 * 用不上的方法可以不重写 */ public class Demo02 extends GenericServlet{ @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { System.out.println("我是demo02"); } }
创建Servlet方式三
/* * Servlet创建方式三(模板设计模式) * 常用方式(必会) */ public class Demo03 extends HttpServlet { // 声明一个ServletConfig对象 当做成员变量 private ServletConfig config; // 初始化方法(通过该方法的参数 获取ServletConfig对象) // ServletConfig对象 保存的是 Servlet中的配置信息 @Override public void init(ServletConfig config) throws ServletException { // TODO Auto-generated method stub super.init(config); // 接收一下ServletConfig this.config = config; } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 调用父类的doGet 怎么都会报错 // 不是400 就是 405 // 重写完doget方法 注意不要调用父类的doget方法 // super.doGet(req, resp); // 获取Servlet的配置信息 // 参数是 配置时的 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); } }
创建ServletConfig方式一
public class Demo03 extends HttpServlet { // 声明一个ServletConfig对象 当做成员变量 private ServletConfig config; // 初始化方法(通过该方法的参数 获取ServletConfig对象) // ServletConfig对象 保存的是 Servlet中的配置信息 @Override public void init(ServletConfig config) throws ServletException { // TODO Auto-generated method stub super.init(config); // 接收一下ServletConfig this.config = config; } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 调用父类的doGet 怎么都会报错 // 不是400 就是 405 // 重写完doget方法 注意不要调用父类的doget方法 // super.doGet(req, resp); // 获取ServletConfig方式一 // 获取Servlet的配置信息 // 参数是 配置时的 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); } }
获取ServletConfig方式二
public class Demo04 extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 通过父类中的方法 获取getServletConfig对象 String parameter = this.getServletConfig().getInitParameter("encoding"); System.out.println(parameter); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub doGet(req, resp); } }
域对象
ServletContext
域对象(在一定范围内 存储信息的对象) ServletContext范围: 整个程序中都可以访问到 并且只有一个 单例对象 每个Servlet都可以访问到整个域对象 如何获取ServletContext对象 方法1:从ServletConfig对象中获取 方法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", "xiaoming"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
方式二
a10f 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); } }
相关文章推荐
- Java_Web —Tomcat安装配置及Servlet初探
- Tomcat servlet安装配置 和 java web 开发流程
- [JAVA]TOMCAT启动时调用的Servlet和Action的配置方法
- TOMCAT的目录结构 1++ Tomact的一些小配置2++Java Web开发: Tomcat中部署项目的三种方法
- Java Web -- Servlet(5) 开发Servlet的三种方法、配置Servlet具体解释、Servlet的生命周期(2)
- 系统学习JavaWeb之五Servlet的配置信息ServletConfig
- java web开发中,在tomcat目录查看JSP和Servlet版本的方法
- (转)JavaWeb学习之Servlet(一)----MyEclipse及Tomcat的配置
- 从0开始学Java——JSP&Servlet——如何在Eclipse中配置Web容器为tomcat
- javaweb中Servlet配置到Tomcat
- java Web.xml中servlet配置方法
- 【JavaWeb-5】Servlet的原理、周期、创建方法、转发、ServletConfig以及重要的ServletContext
- 【JavaWeb】MyEclipse+tomcat服务器配置方法
- javaWeb——struct2 配置tomcat数据源方法连接数据库
- 5. 尚硅谷_佟刚_JavaWEB_Servlet 的配置及生命周期方法.wmv
- Eclipse Java EE IDE for Web Developers(Build id: 20090621-0832)下apache-tomcat-6.0.16配置.
- tomcat servlet与web.xml的配置说明二
- java web开发总结(三):linux下超越apache + tomcat的 nginx + tomcat负载均衡配置
- java和tomcat在windows上环境变量配置方法
- Java Web 应用web.xml配置 --Servlet映射配置