免费网站安全,郑州金水区做网站公司,7k7k小游戏大全,网站后台上传图片不显示利刃出鞘_Tomcat 核心原理解析#xff08;六#xff09;
一、Tomcat专题 - 内容
1、Web 应用配置
2、Tomcat 管理配置
3、JVM 配置
4、Tomcat 集群
5、Tomcat 安全
6、Tomcat 性能调优
7、Tomcat 附加功能。
二、Tomcat专题 - Web应用配置介绍
1、Web.xml 配置文件…利刃出鞘_Tomcat 核心原理解析六
一、Tomcat专题 - 内容
1、Web 应用配置
2、Tomcat 管理配置
3、JVM 配置
4、Tomcat 集群
5、Tomcat 安全
6、Tomcat 性能调优
7、Tomcat 附加功能。
二、Tomcat专题 - Web应用配置介绍
1、Web.xml 配置文件。
web.xml 是 web 应用的描述文件 它支持的元素及属性来自于Servlet 规范定义 。 在 Tomcat 中 Web 应用的描述信息包括 tomcat/conf/web.xml 中默认配置 以及 Web 应用 WEB-INF/web.xml 下的定制配置。
2、Web 应用 WEB-INF/web.xml 下的定制配置参数。 三、Tomcat专题 - Web应用配置 - context-param
1、打开 idea 创建 名为 servlet_demo01 的 Web Application 项目
-- idea -- File -- New -- Project -- Java Project SDK: ( 1.8(java version 1.8.0_131 ) -- Java EE : 勾选 ( Web Application )-- Next -- Project Name: ( servlet_demo01 )Project Location: ( ...\servlet_demo01\ ) -- Finish 2、在项目 servlet_demo01 中创建 Servlet 类 BbsServlet.java
/*** project_tomcat\servlet_demo01\src\djh\it\web\BbsServlet.java** 2024-8-13 创建 Servlet 类 BbsServlet.java* Web应用配置 - context-param*/
package djh.it.web;import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;WebServlet
public class BbsServlet extends HttpServlet {Overrideprotected void doGet( HttpServletRequest req, HttpServletResponse resp ){System.out.println(------------ GET : BbsServlet find all ...);String value req.getServletContext().getInitParameter(project_param_01);System.out.println(value);}Overrideprotected void doPost( HttpServletRequest req, HttpServletResponse resp ){System.out.println(------------ POST : BbsServlet find all ...);}}
3、在项目 servlet_demo01 中 Web应用配置 - context-param
?xml version1.0 encodingUTF-8?
web-app xmlnshttp://xmlns.jcp.org/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsdversion3.1servletservlet-namebbsServlet/servlet-nameservlet-classdjh.it.web.BbsServlet/servlet-class/servletservlet-mappingservlet-namebbsServlet/servlet-nameurl-pattern/bbs/findAll/url-pattern/servlet-mappingcontext-paramparam-nameproject_param_01/param-nameparam-valuedzs168/param-value/context-param/web-app
!-- project_tomcat\servlet_demo01\web\WEB-INF\web.xml --4、浏览器地址栏输入localhost:8080/servlet_demo01/bbs/findAll 进行测试观察控制台输出结果。
dzs168
四、Tomcat专题 - Web应用配置介绍 - 会话配置session-config
1、会话配置
用于配置Web应用会话包括 超时时间、Cookie配置以及会话追踪模式。它将覆盖 server.xml 和 context.xml 中的配置。 !-- 会话配置session-config --session-configsession-timeout30/session-timeoutcookie-confignameJESSIONID/namedomainlocalhost/domainpath//pathcommentSession Cookie/commenthttp-onlytrue/http-onlysecurefalse/securemax-age3600/max-age/cookie-config/session-config2、配置解析
1 session‐timeout 会话超时时间单位 分钟。
2 cookie‐config 用于配置会话追踪 Cookie。
nameCookie的名称 domainCookie的域名 pathCookie的路径 comment注释 http‐onlycookie 只能通过HTTP方式进行访问JS无法读取或修改此项可以增加网站访问的安全性。 secure此cookie只能通过HTTPS连接传递到服务器而HTTP 连接则不会传递该信息。注意是从浏览器传递到服务器服务器端的Cookie对象不受此项影响。 max‐age以秒为单位表示cookie的生存期默认为‐1表示是会话Cookie浏览器关闭时就会消失。
3 tracking‐mode 用于配置会话追踪模式Servlet3.0 版本中支持的追踪模式COOKIE、URL、SSL。 A. COOKIE : 通过HTTP Cookie 追踪会话是最常用的会话追踪机制 而且Servlet规范也要求所有的Servlet规范都需要支持Cookie追踪。 B. URL : URL重写是最基本的会话追踪机制。当客户端不支持Cookie时可以采用URL重写的方式。当采用URL追踪模式时请求路径需要包含会话标识信息Servlet容器会根据路径中的会话标识设置请求的会话信息。如 http//www.myserver.com/user/index.html;jessionid1234567890。
C. SSL : 对于SSL请求 通过SSL会话标识确定请求会话标识。
3、在 web.xml 配置文件中配置会话。
?xml version1.0 encodingUTF-8?
web-app xmlnshttp://xmlns.jcp.org/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsdversion3.1servletservlet-namebbsServlet/servlet-nameservlet-classdjh.it.web.BbsServlet/servlet-class/servletservlet-mappingservlet-namebbsServlet/servlet-nameurl-pattern/bbs/findAll/url-pattern/servlet-mappingcontext-paramparam-nameproject_param_01/param-nameparam-valuedzs168/param-value/context-param!-- 会话配置session-config --session-configsession-timeout30/session-timeoutcookie-confignameJESSIONID/namedomainlocalhost/domainpath//pathcommentSession Cookie/commenthttp-onlytrue/http-onlysecurefalse/securemax-age3600/max-age/cookie-config/session-config/web-app
!-- project_tomcat\servlet_demo01\web\WEB-INF\web.xml --4、在项目 servlet_demo01 中修改 Servlet 类 BbsServlet.java
/*** project_tomcat\servlet_demo01\src\djh\it\web\BbsServlet.java** 2024-8-13 创建 Servlet 类 BbsServlet.java* Web应用配置 - context-param*/
package djh.it.web;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;//WebServlet
public class BbsServlet extends HttpServlet {Overrideprotected void doGet( HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException {System.out.println(------------ GET : BbsServlet find all ...);String value req.getServletContext().getInitParameter(project_param_01);System.out.println(value);//会话SessionIdString id req.getSession().getId();System.out.println(sessionId : id);// processRequest(req, resp);}Overrideprotected void doPost( HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException{System.out.println(------------ POST : BbsServlet find all ...);
// processRequest(req, resp);}// private void processRequest(HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException{
// //设置响应的内容类型为HTML
// resp.setContentType(text/html; charsetUTF-8);
// //获取请示参数
// String parameter req.getParameter(param);
// //向控制台打印请示参数
// System.out.println(Received parameter : parameter);
// //输出响应内容
// PrintWriter writer resp.getWriter();
// writer.println(h1Hello,Servlet!/h1);
// writer.println(Received parameter : parameter);
//
// }
//
}
4、浏览器地址栏输入localhost:8080/servlet_demo01/bbs/findAll 进行测试观察控制台输出结果。 五、Tomcat专题 - Web应用配置介绍
1、Servlet配置
Servlet 的配置主要是两部分 servlet 和 servlet-mapping
servletservlet‐namemyServlet/servlet‐nameservlet‐classdjh.it.web.MyServlet/servlet‐classinit‐paramparam‐namefileName/param‐nameparam‐valueinit.conf/param‐value/init‐paramload‐on‐startup1/load‐on‐startupenabledtrue/enabled
/servletservlet‐mappingservlet‐namemyServlet/servlet‐nameurl‐pattern*.do/url‐patternurl‐pattern/myservet/*/url‐pattern
/servlet‐mapping2、servlet 和 servlet-mapping 配置说明
1 servlet‐name : 指定servlet的名称 该属性在web.xml中唯一。
2 servlet‐class : 用于指定servlet类名
3 init‐param 用于指定servlet的初始化参数 在应用中可以通过 HttpServlet.getInitParameter 获取。
4 load‐on‐startup 用于控制在Web应用启动时Servlet的加载顺序。 值小于0web应用启动时不加载该servlet, 第一次访问时加载。
5 enabled true false 。 若为false 表示Servlet不处理任何请求。
6 url‐pattern 用于指定URL表达式一个 servlet‐mapping可以同时配置多个 url‐pattern。
3、Servlet 中文件上传配置
servletservlet‐nameuploadServlet/servlet‐nameservlet‐classdjh.it.web.UploadServlet/servlet‐classmultipart‐configlocationC://path/locationmax‐file‐size10485760/max‐file‐sizemax‐request‐size10485760/max‐request‐sizefile‐size‐threshold0/file‐size‐threshold/multipart‐config
/servlet4、Servlet 中文件上传配置 配置说明
1 location存放生成的文件地址。
2 max‐file‐size允许上传的文件最大值。 默认值为‐1 表示没有限制。
3 max‐request‐size针对该 multi/form‐data 请求的最大数量默认值为‐1 表示无限制。
4 file‐size‐threshold当数量量大于该值时 内容会被写入文件。
5、Listener配置
Listener用于监听servlet中的事件例如context、request、session对象的创建、修改、删除并触发响应事件。Listener是观察者模式的实现在servlet中主要用于对context、request、session对象的生命周期进行监控。在servlet2.5规范中共定义了8中Listener。在启动时ServletContextListener 的执行顺序与web.xml 中的配置顺序一致 停止时执行顺序相反。 listenerlistener‐classorg.springframework.web.context.ContextLoaderListener/listener‐class
/listener6、Filter配置
filter 用于配置web应用过滤器 用来过滤资源请求及响应。 经常用于认证、日志、加密、数据转换等操作 配置如下
filterfilter‐namemyFilter/filter‐namefilter‐classdjh.it.web.MyFilter/filter‐classasync‐supportedtrue/async‐supportedinit‐paramparam‐namelanguage/param‐nameparam‐valueCN/param‐value/init‐param
/filterfilter‐mappingfilter‐namemyFilter/filter‐nameurl‐pattern/*/url‐pattern
/filter‐mapping7、Filter 配置说明
1 filter‐name 用于指定过滤器名称在web.xml中过滤器名称必须唯一。
2 filter‐class 过滤器的全限定类名 该类必须实现Filter接口。
3 async‐supported 该过滤器是否支持异步。
4 init‐param 用于配置Filter的初始化参数 可以配置多个 可以通过FilterConfig.getInitParameter获取。
5 url‐pattern 指定该过滤器需要拦截的URL。六、Tomcat专题 - Web应用配置介绍 - 欢迎页面和错误页面
1、tomcat 欢迎页面配置
welcome-file-list 用于指定web应用的欢迎文件列表。
welcome-file-listwelcome-fileindex.html/welcome-filewelcome-fileindex.htm/welcome-filewelcome-fileindex.jsp/welcome-file/welcome-file-list尝试请求的顺序从上到下。
2、在 servlet_demo01 项目中更改 index.jsp 欢迎页面为 登录页面 login.jsp
1 project_tomcat\servlet_demo01\web\index.jsp
%--Created by IntelliJ IDEA.User: AdministratorDate: 2024/8/13Time: 14:42To change this template use File | Settings | File Templates.
--%
% page contentTypetext/html;charsetUTF-8 languagejava %
htmlheadtitle$Title$/title/headbodyh3index.jsp 欢迎页面主页页面/h3$END$/body
/html2 project_tomcat\servlet_demo01\web\login.jsp
%--Created by IntelliJ IDEA.User: AdministratorDate: 2024/8/13Time: 14:42To change this template use File | Settings | File Templates.
--%
% page contentTypetext/html;charsetUTF-8 languagejava %
htmlheadtitle$Title$/title/headbodyh3login.jsp 登录页面变为主页/h3$END$/body
/html
3 project_tomcat\servlet_demo01\web\WEB-INF\web.xml
?xml version1.0 encodingUTF-8?
web-app xmlnshttp://xmlns.jcp.org/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsdversion3.1servletservlet-namebbsServlet/servlet-nameservlet-classdjh.it.web.BbsServlet/servlet-class/servletservlet-mappingservlet-namebbsServlet/servlet-nameurl-pattern/bbs/findAll/url-pattern/servlet-mappingcontext-paramparam-nameproject_param_01/param-nameparam-valuedzs168/param-value/context-param!-- 会话配置session-config --session-configsession-timeout30/session-timeoutcookie-confignameJESSIONID/namedomainlocalhost/domainpath//pathcommentSession Cookie/commenthttp-onlytrue/http-onlysecurefalse/securemax-age3600/max-age/cookie-config/session-configwelcome-file-listwelcome-filelogin.jsp/welcome-file/welcome-file-list/web-app
!-- project_tomcat\servlet_demo01\web\WEB-INF\web.xml --4浏览器地址栏输入 http://localhost:8080/servlet_demo01/
tomcat-31.png
3、tomcat 错误页面配置
1error-page 用于配置Web应用访问异常时定向到的页面支持HTTP响应码和异常类两种形式。 !-- 错误页面 --error-pageerror-code404/error-codelocation/404.html/location/error-pageerror-pageerror-code500/error-codelocation/500.html/location/error-pageerror-pageexception-typejava.lang.Exception/exception-typelocation/error.jsp/location/error-page2如果在 servlet_demo01 项目中未配置错误页面在 servlet 中添加模拟异常访问时就会出现如下界面
/*** project_tomcat\servlet_demo01\src\djh\it\web\BbsServlet.java** 2024-8-13 创建 Servlet 类 BbsServlet.java* Web应用配置 - context-param*/
package djh.it.web;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;//WebServlet
public class BbsServlet extends HttpServlet {Overrideprotected void doGet( HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException {System.out.println(------------ GET : BbsServlet find all ...);String value req.getServletContext().getInitParameter(project_param_01);System.out.println(value);int i 1/0; //模拟异常。//会话SessionIdString id req.getSession().getId();System.out.println(sessionId : id);// processRequest(req, resp);}Overrideprotected void doPost( HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException{System.out.println(------------ POST : BbsServlet find all ...);
// processRequest(req, resp);}// private void processRequest(HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException{
// //设置响应的内容类型为HTML
// resp.setContentType(text/html; charsetUTF-8);
// //获取请示参数
// String parameter req.getParameter(param);
// //向控制台打印请示参数
// System.out.println(Received parameter : parameter);
// //输出响应内容
// PrintWriter writer resp.getWriter();
// writer.println(h1Hello,Servlet!/h1);
// writer.println(Received parameter : parameter);
//
// }
//
}
2浏览器访问出现如下界面是不安全的。 4、在 servlet_demo01 项目中配置错误页面 404.html 和 500.html
1 project_tomcat\servlet_demo01\web\404.html
!DOCTYPE html
html langen
headmeta charsetUTF-8title404/title
/head
bodyh3404! 您访问的页面不存在请检查访问路径/h3/body
/html2 project_tomcat\servlet_demo01\web\500.html
!DOCTYPE html
html langen
headmeta charsetUTF-8title404/title
/head
bodyh3500! 服务器出现异常请联系管理员/h3/body
/html3 project_tomcat\servlet_demo01\web\error.jsp
%--Created by IntelliJ IDEA.User: AdministratorDate: 2024/8/13Time: 14:42To change this template use File | Settings | File Templates.
--%
% page contentTypetext/html;charsetUTF-8 languagejava %
htmlheadtitle$Title$/title/headbodyh3error.jsp 错误页面/h3$END$/body
/html
4 project_tomcat\servlet_demo01\web\WEB-INF\web.xml
?xml version1.0 encodingUTF-8?
web-app xmlnshttp://xmlns.jcp.org/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsdversion3.1servletservlet-namebbsServlet/servlet-nameservlet-classdjh.it.web.BbsServlet/servlet-class/servletservlet-mappingservlet-namebbsServlet/servlet-nameurl-pattern/bbs/findAll/url-pattern/servlet-mappingcontext-paramparam-nameproject_param_01/param-nameparam-valuedzs168/param-value/context-param!-- 会话配置session-config --session-configsession-timeout30/session-timeoutcookie-confignameJESSIONID/namedomainlocalhost/domainpath//pathcommentSession Cookie/commenthttp-onlytrue/http-onlysecurefalse/securemax-age3600/max-age/cookie-config/session-config!-- 欢迎页面 --welcome-file-listwelcome-filelogin.jsp/welcome-file/welcome-file-list!-- 错误页面 --error-pageerror-code404/error-codelocation/404.html/location/error-pageerror-pageerror-code500/error-codelocation/500.html/location/error-page
!-- error-page--
!-- exception-typejava.lang.Exception/exception-type--
!-- location/error.jsp/location--
!-- /error-page--/web-app
!-- project_tomcat\servlet_demo01\web\WEB-INF\web.xml --5浏览器再次访问如下
http://localhost:8080/servlet_demo01/bbs/findAll
500! 服务器出现异常请联系管理员
http://localhost:8080/servlet_demo01/bbs/findAll666
404! 您访问的页面不存在请检查访问路径
上一节关联链接请点击 # 利刃出鞘_Tomcat 核心原理解析五