博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
02 servlet基础 生命周期 tomcat web.xml
阅读量:5086 次
发布时间:2019-06-13

本文共 3398 字,大约阅读时间需要 11 分钟。

新建web项目
– new Web Project
– 选择:javaee 5.0
建包
– com.gzsxt.wang
新建class:FirstServlet
– 继承:HttpServlet(javax.servlet.http.HttpServlet)
重写service方法(两个service方法中选择带 HttpServletRequest、HttpServletResponse参数 的)
 
• 在web.xml中配置写好的servlet
– 配置Servlet作用有两个:
1. 让服务器知道这个Servlet类的存在。
2. 让URL和Servlet匹配,从而请求服务器上的servlet
 
first
com.gzsxt.wang.FirstServlet
first
/111

 

安装和启动tomcat服务器
• 将TOMCAT压缩包解压。
• 设置环境变量:
  • – JAVA_HOME设置
• 进入TOMCAT子目录bin,点击:startup.bat,启动tomcat.
• 访问:http://localhost:8080/ – 如果出现tomcat主页,则安装成功。
• 手动发布项目:
  • – 在tomcat子目录:webapps中新建一个文件夹:abc
  • – 将web项目的WebRoot目录中所有的内容copy到abc中.
  • – 重启tomcat
• 访问刚刚写好的Servlet:
  • – http://localhost:8080/abc/one
  • – http://127.0.0.1:8080/abc/one
  • – http://自己机器的ip:8080/abc/one
 
 
servlet 生命周期
1.载入并初始化
调用init()方法 ,只执行一次
2.运行
当用户请求该servlet时,服务器创建一个新的线程,调用servlet的service方法-->父类的service方法-->
父类的doPost/父类doGet方法
1)当执行父类的doGet/doPost时,会报405错误。解决办法:在子类中重写doGet/doPost
2)尽量不要在servlet中使用成员变量
3.销毁
在服务器关闭之前,调用destroy()方法, 只执行一次
 
1)部署项目
1)myeclipse会将java代码编译过后的class文件,放在WebRoot/WEB-INF/classes文件夹下
2)只要将数据放在webapps的某个目录(项目名)下,就可以通过浏览器访问了!
2)启动服务器
1)运行bin/startup.bat
3)集成tomcat
1)将tomcat配置在myeclipse中:window-->prefrences-->输入“server”,在列表找tomcat-->将tomcat 8.x改为enabled --> 配置Tomcat Home Directory,在window找到Tomcat安装路径即可 -->ok
2)将项目部署在tomcat中:右键tomcat 8.x -->add Deployment-->在project选择要部署的项目名-->finish
 
3)启动:右键tomcat 8.x --> run Server
1.<welcome-file-list> 欢迎页的列表
<welcome-file> 欢迎页
 
表示,当用户访问了一个目录,而非一个html页面(或其他)时,会默认来welcome中寻找欢迎页来显示,如果没有该欢迎页时,会显示404页面或WebRoot目录的列表(取决于listings的值)
 
 
2.<load-on-startup> servlet启动时加载
如果在<servlet>标签下配置了该标签,则表示servlet将会在服务器启动时,加载servlet,并调用servlet的init()方法
 
/*     * servlet 生命周期 1.载入并初始化 init()方法,只执行一次 2.运行 每当用户发出一次请求时,调用service()方法。     * 1)当用户请求时     * ,服务器会创建一个线程,来调用servlet的service-->父类service-->父类的doGet/doPost方法:报405错     * 解决办法:重写doPost方法或doGet方法      * 2)servlet是单例(设计模式之单例模式)的,节约内存。不需要每次请求创建对象去处理。     *      * 3.销毁 destroy()方法,只执行一次     */    int number = 0;    @Override    public void init() throws ServletException {        System.out.println("servlet初始化!");    }    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp)            throws ServletException, IOException {        System.out.println("子类的doGet方法");    }    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp)            throws ServletException, IOException {        System.out.println("子类的doPost方法");    }    /*     * @Override protected void service(HttpServletRequest req,     * HttpServletResponse resp) throws ServletException, IOException {     * System.out.println("servlet运行了!!!!"); number++;     * System.out.println(number);     *      * //super.service(req, resp); //调用父类的service方法 }     */    @Override    public void destroy() {        System.out.println("servlet销毁");    }
子类一旦重写父类的方法之后只会调用子类的方法 ,而不会调用父类的方法
 
默认的欢迎文件列表
apache-tom-->conf-->web.xml打开底部设置
index.html
index.htm
index.jsp

 

在启动时加载
1
数字小的先被加载
为负数或者其他字符将不被加载,直到被调用时--懒汉式
 
去除aaa
aaa
去除first_web
apache-tomcat -->webapps-->修改first_web文件名为ROOT
去除8080
apache-tom-->conf-->server.xml
修改port为80
 
 
 

转载于:https://www.cnblogs.com/aknife/p/10840028.html

你可能感兴趣的文章
修改任务显示WrkTaskIp.aspx页面
查看>>
vi的使用1
查看>>
Spring Boot 静态资源处理
查看>>
nginx vhost配置
查看>>
Vue 爬坑之路(二)—— 组件之间的数据传递
查看>>
Mysql客户端下载地址
查看>>
Apache 2.2, PHP 5, and MySQL 5
查看>>
Atitit 列出wifi热点以及连接
查看>>
5、Django实战第5天:首页和登录页面的配置
查看>>
linux系统挂载ISO文件
查看>>
也谈设计模式,架构,框架和类库的区别
查看>>
构建下一代服务载体,智能设备这座宝藏该怎么挖?
查看>>
算法入门经典大赛 Dynamic Programming
查看>>
数据库的增删改查和使用流程
查看>>
修改默认jdk版本
查看>>
(后端)Java跨域过滤器
查看>>
Torch.no_grad()影响MSE损失
查看>>
indy openssl lazarus 编程linux下出现不能装载动态库的问题原因!
查看>>
进程池
查看>>
C++空类
查看>>