tomcat的一些知识点
来源:互联网 发布:linux ping怎么使用 编辑:程序博客网 时间:2024/05/21 23:33
首先,来张图简单说明下:
首先说一个容易混淆的“/”的问题,在网页中“/”表示tomcat根目录,即webapps,而在web.xml中“/”表示项目根目录,后者之于前者多了个项目名字。
接下来,说一个安全目录的问题。
web项目的的WebRoot文件夹下,有个WEB-INF文件夹,它对外屏蔽,不允许通过路径名直接访问,如果非要访问,则需在web.xml中配置servlet,servlet的一个好处就是名字可以随便取,对外隐藏了路径,提高了安全性,所以一般不允许外面随便访问的资源一般都放在WEB-INF文件夹中。
接下来说下重定向和转发的知识点。
如上图所示:重定向:浏览器共发了两次请求,第一向tomcat请求资源,返回资源地址,第二次再发一次请求,返回所请求的资源。值得注意的是,在第二次的请求中服务器拿不到第一次请求的request对象,request信息会丢失。
重定向在servlet重的核心代码如下:
//重定向--法1 String path = "/helloWeb/jsps/res.jsp"; //resp.sendRedirect(path); //重定向---法2 //resp.setStatus(302);//重定向 resp.setHeader("Location", path);
转发:浏览器共发一次请求,servlet将请求资源(request,response)转发给目标资源,这样不会造成信息的丢失。在servlet中核心代码如下:
//转发 String path = "/jsps/res.jsp"; RequestDispatcher rd = req.getRequestDispatcher(path); rd.forward(req, resp);
最后说下servlet生命周期的问题
servlet最初被访问时,会执行构造方法init()方法和service()方法一次。以后再访问时,构造方法和init()方法将不再执行,只执行service方法。关闭tomcat服务器是,destory()方法将被执行。即从始至终访问的是同一个servlet对象。
值得注意的是。加入同一个servlet类在web.xml中配了多个路径,当访问不同路径名时,servlet对象不同。
还有个小知识点值得一提,以上述方式只有servlet第一次被访问时,servlet对象才会被创建出来放入池中。但实际应用中,可能遇到这样的需求,要求在tomcat服务器启动时就创建出servlet对象,并将资源载入内存(如敏感词过滤,要求服务器一启动就将数据库的敏感词载入内存),关于这个,可以配置web.xml。
核心示例代码如下:
<servlet> <servlet-name>two</servlet-name> <servlet-class>cn.hncu.servlets.FirstServlet</servlet-class> <!-- <load-on-startup>10</load-on-startup> --> </servlet>
注释出为添加的核心代码,大于0的数字时表示启动顺序。数值越小,越先启动。
- tomcat的一些知识点
- 关于tomcat的一些知识点
- tomcat一些知识点
- Tomcat方面的知识点
- Hibernate的一些知识点
- c#的一些知识点
- sim300的一些知识点
- GDI的一些知识点
- IFRAME的一些知识点
- PHP的一些知识点
- python 的一些知识点
- 一些常用的知识点
- 静态的一些知识点
- django的一些知识点
- Jquery的一些知识点
- ios的一些知识点
- ios的一些知识点
- ios的一些知识点
- DOCKER学习笔记(MAC)
- dbcp配置
- Java基础类库2(16.7.17)
- 最新的App上架教程Object-C
- Android — Communicating with Other Fragments
- tomcat的一些知识点
- angularJS的控制器
- android中TextView分段显示不同颜色,字体,时间
- Stream benchmark 测试及相关参数说明
- 内联结,外联结,全连接,交叉连接的区别
- 淘宝druid数据库连接池使用示例
- HDU-1429
- eclipse导入maven工程出现的问题
- effective c++读书笔记 条款3