tomcat的一些知识点
2016-07-18 12:29
274 查看
首先,来张图简单说明下:
首先说一个容易混淆的“/”的问题,在网页中“/”表示tomcat根目录,即webapps,而在web.xml中“/”表示项目根目录,后者之于前者多了个项目名字。
接下来,说一个安全目录的问题。
web项目的的WebRoot文件夹下,有个WEB-INF文件夹,它对外屏蔽,不允许通过路径名直接访问,如果非要访问,则需在web.xml中配置servlet,servlet的一个好处就是名字可以随便取,对外隐藏了路径,提高了安全性,所以一般不允许外面随便访问的资源一般都放在WEB-INF文件夹中。
接下来说下重定向和转发的知识点。
如上图所示:重定向:浏览器共发了两次请求,第一向tomcat请求资源,返回资源地址,第二次再发一次请求,返回所请求的资源。值得注意的是,在第二次的请求中服务器拿不到第一次请求的request对象,request信息会丢失。
重定向在servlet重的核心代码如下:
转发:浏览器共发一次请求,servlet将请求资源(request,response)转发给目标资源,这样不会造成信息的丢失。在servlet中核心代码如下:
最后说下servlet生命周期的问题
servlet最初被访问时,会执行构造方法init()方法和service()方法一次。以后再访问时,构造方法和init()方法将不再执行,只执行service方法。关闭tomcat服务器是,destory()方法将被执行。即从始至终访问的是同一个servlet对象。
值得注意的是。加入同一个servlet类在web.xml中配了多个路径,当访问不同路径名时,servlet对象不同。
还有个小知识点值得一提,以上述方式只有servlet第一次被访问时,servlet对象才会被创建出来放入池中。但实际应用中,可能遇到这样的需求,要求在tomcat服务器启动时就创建出servlet对象,并将资源载入内存(如敏感词过滤,要求服务器一启动就将数据库的敏感词载入内存),关于这个,可以配置web.xml。
核心示例代码如下:
注释出为添加的核心代码,大于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);
转发:浏览器共发一次请求,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的数字时表示启动顺序。数值越小,越先启动。
相关文章推荐
- java-模拟tomcat服务器
- i-jetty环境搭配与编译
- 实现单Tomcat多Server配置
- 生产环境下的Tomcat配置
- Linux部署Tomcat服务器
- jenkins------结合maven将svn项目自动部署到tomcat下
- 如何搞定tomcat这只喵~
- tomcat在opensuse下开机自启失败的原因分析及解决方法
- Java Servlet生成JSON格式数据并用jQuery显示的方法
- jsp和servlet中实现页面跳转的方式实例总结
- java servlet结合mysql搭建java web开发环境
- Servlet与JSP间的两种传值情况
- JSP、Servlet中get请求和post请求的区别总结
- jsp项目中更改tomcat的默认index.jsp访问路径的方法
- Tomcat 多端口 多应用
- tomcat 5.0 + apache 2.0 完全安装步骤详解
- Tomcat安全设置 win2003 下tomcat权限限制
- Jsp和PHP共用80端口整合Apache和Tomcat(访问时无需加端口号)