tomcat知识点总结
2017-12-07 20:12
134 查看
转载:http://blog.csdn.net/lengjinghk/article/details/51940980
首先说一个容易混淆的“/”的问题,在网页中“/”表示tomcat根目录,即webapps,而在web.xml中“/”表示项目根目录,后者之于前者多了个项目名字。
接下来,说一个安全目录的问题。
web项目的的WebRoot文件夹下,有个WEB-INF文件夹,它对外屏蔽,不允许通过路径名直接访问,如果非要访问,则需在web.xml中配置servlet,servlet的一个好处就是名字可以随便取,对外隐藏了路径,提高了安全性,所以一般不允许外面随便访问的资源一般都放在WEB-INF文件夹中。
接下来说下重定向和转发的知识点。
如上图所示:重定向:浏览器共发了两次请求,第一向tomcat请求资源,返回资源地址,第二次再发一次请求,返回所请求的资源。值得注意的是,在第二次的请求中服务器拿不到第一次请求的request对象,request信息会丢失。
重定向在servlet重的核心代码如下:
2
3
4
5
6
7
转发:浏览器共发一次请求,servlet将请求资源(request,response)转发给目标资源,这样不会造成信息的丢失。在servlet中核心代码如下:
2
3
4
最后说下servlet生命周期的问题
servlet最初被访问时,会执行构造方法init()方法和service()方法一次。以后再访问时,构造方法和init()方法将不再执行,只执行service方法。关闭tomcat服务器是,destory()方法将被执行。即从始至终访问的是同一个servlet对象。
值得注意的是。加入同一个servlet类在web.xml中配了多个路径,当访问不同路径名时,servlet对象不同。
还有个小知识点值得一提,以上述方式只有servlet第一次被访问时,servlet对象才会被创建出来放入池中。但实际应用中,可能遇到这样的需求,要求在tomcat服务器启动时就创建出servlet对象,并将资源载入内存(如敏感词过滤,要求服务器一启动就将数据库的敏感词载入内存),关于这个,可以配置web.xml。
核心示例代码如下:
2
3
4
5
6
7
8
注释出为添加的核心代码,大于0的数字时表示启动顺序。数值越小,越先启动。
首先说一个容易混淆的“/”的问题,在网页中“/”表示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);1
2
3
4
5
6
7
转发:浏览器共发一次请求,servlet将请求资源(request,response)转发给目标资源,这样不会造成信息的丢失。在servlet中核心代码如下:
//转发 String path = "/jsps/res.jsp"; RequestDispatcher rd = req.getRequestDispatcher(path); rd.forward(req, resp);1
2
3
4
最后说下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>1
2
3
4
5
6
7
8
注释出为添加的核心代码,大于0的数字时表示启动顺序。数值越小,越先启动。
相关文章推荐
- Tomcat相关知识点总结(jsp)
- javaweb学习第八天:Tomcat相关知识点总结
- tomcat知识点全总结
- tomcat知识点全总结
- Tomcat 总结知识点
- JAVA-异常-知识点总结
- WebApi2 知识点总结
- Java知识点总结-07形参内部类
- jasper 常用知识点总结
- iOS开发中关于UIImage的知识点总结
- Android知识点总结
- C++知识点总结0.1
- Eclipse rap 富客户端开发总结(8) - 发布到tomcat后解决rap编码和字符集的问题
- 单片机之定时器知识点总结
- .NET开发常用知识点总结汇总
- html知识点总结
- img.onload知识点归纳总结
- JNDI学习总结(3)——Tomcat下使用C3P0配置JNDI数据源
- WPF使用中知识点总结二
- c# - WinForm中实用小知识点总结(二)