tomcat项目部署方式及Servlet

来源:互联网 发布:在线ps源码 编辑:程序博客网 时间:2024/05/29 02:17

tomcat项目部署方式:

1、直接在tomcat中的webapps下部署项目

2、在tomcat的server.xml中的的<Host>标签中加入

<Context path="/访问路径" docBase="绝对路径到/WebRoot" reloadable="true"/>


注:tomcat启动异常正常都是配置文件造成的,在启动tomcat时,应看一下是否报有异常。如果tomcat异常,会造成项目无法正常加载。


Servlet生命周期:

1、载入:第一次请求的时候被初始化,只一遍

2、初始化:调用init方法,只一遍

3、执行:没一个请求,new一个新的线程,调用一遍service->super.service->doGet/doPost

      ① 不要在Servlet中设计成员变量(多个请求线程共享,会发生资源冲突问题。正常即使设也是只读,不可写的即final)

      ② doGet,doPost常见异常

      ③  HTTP Status 405 - HTTP method POST(GET) is not supported by this URL;增加doPost()或者doGet()方法即可

4、销毁:卸载前调用destroy方法,子类Servlet一般不需要覆盖这个方法


   注:在非分布的情况下,通常一个Servlet在服务器中有一个实例。(tomcat是单实例多线程)

                 Servlet的Mapping的路径是为了客户端访问,如果Servlet仅用于项目资源加载,可不写URL


web.xml详解:

    Web项目和tomcat的web.xml的关系?

        有效范围区别:一个仅限自己项目,一个是服务器上所有项目


缓存:

    问题:当修改完自己代码后,进行访问,页面没有改变,一般有以下两种情况:

    ① 客户端浏览器缓存(解决办法:在浏览器中直接点击刷新即可)

    ② 服务器缓存 (在IDE中刷新,服务器重新部署,删除所有tomcat中JSP文件,重新加载)


HttpServletRequest对象:

    服务器将客户端请求的信息封装在request对象中。

       ① 请求行

       ② 请求头

       ③ 实体内容


HttpServletResponse对象:

    服务器端的响应信息被封装在这个对象中

    响应信息由response对象传送给web服务器,在由web服务器发送给客户端

    构建响应信息:

        ① 构建响应头:

             response.setHeader("content-type","text/html;charset=gbk");

             response.addHeader("refresh","3;url=1.jsp");

        ② 构建响应体:

             response.getWriter()  //输出文本使用

             response.getOutputStream()  //输出非文本使用(比如:下载)

     注:Servlet中两次获取的getWriter的流为同一个流(应该采用的是单例模式)

      text/html     HTML数据

      text/xml      XML数据

      text/plain    普通文本数据


请求转发与重定向:

      重定向:相当于在请求头中加入相关信息,后面的代码依旧执行,可以存在多个服务器,但是不能传递request对象。地址会发生变化

      请求转发:多个Servlet之间属于同于个请求,但是只能局限于本服务器,地址不会发生变化


Path“/”总结:

       ① 只要是需要通过浏览器发送请求的地方(比如HTML代码,sendRedirect方法等),“/”一般代表虚拟主机根目录,相当于端口号之后的“/”。

       ② 服务器程序内部跳转,“/”一般代表本web应用根目录。


保存状态的两种方式:

      ① Session:(服务器端)

              适合保存大量的数据

              安全

              效率高

               Session跟踪机制中需要cookie来保存和传递sessionId

      ② Cookie:(客户端)

              不适合保存大量信息

              不安全

               效率低


Session基本用法以及作用域:

     1、将http状态信息保存在服务器端的技术

      2、取得:

           HttpSession session = request.getSession();

           如果session已经被创建,则返回已经创建的。如果未创建,则创建新的session。一个客户端拥有一个session对象。

      3、作用域:被属于同一个会话的请求共享。

      4、其他方法:

            session.getId() 返回相关联的session的id。

            session.setMaxInactiveInterval(6) 以秒为单位设置session的最大空闲时间(也可以在web.xnk中<session-config>中配置空闲时间,在tomcat的web.xml中的也会有配置,默认是30分钟)。

            session.invalidate() 强制session失效。


Cookie:

     1、将http状态信息保存在客户端的技术

     2、不是服务器直接读取本地的cookie,是浏览器读cookie,而服务器读浏览器发出的名为cookie的请求头信息。

     3、取得:

          Cookie cookie = new Cookie("name","value");

          添加多对值,要new多个cookie。

    4、方法:

          cookie.setMaxAge(3600*24) 设置cookie的有效期。如果不设置cookie有效期,cookie就不会被增加到客户端硬盘上,只能写在客户端的内存中。

    5、响应信息中添加cookie:

          response.addCookie(cookie);

     6、取得客户端发来的cookie:

          request.getCookie();

          返回Cookie[]类型的数组,再调用getName() getValue()来访问 他的name和value读取的不是客户端硬盘和内存中的信息,而是浏览器发送给服务器请求头Cookie中的信息。


ServletConfig:

     一般用于处理该Servlet在配置文件配置的信息

     1、标记里氏参数名和参数值,要写多对参数,就要用多个<init-param>标记

     2、取得:

           ServletConfig sc = this.getServletConfig();

     3、方法:

            sc.getInitParameter("aaa")   -> 返回名为aaa的参数值

            sc.getServletName()  -> 取得所属Servlet的名字

            sc.getInitParameterNames() -> 返回所有参数名的枚举


ServletContext:

    一个web应用只有一个ServletContext对象。所有的Servlet都共享这个ServletContext对象,又称为Application对象,也是一个作用域:

       空间:最广,被所有Servlet共享

       时间:最长,从web应用被加载到被卸载都有效

    常用方法:

       读取web.xml中<context-param>参数

       作用域:setAttribute/getAttribute/removeAttribute

       用于获取文件绝对路径:getRealPath("1.jsp");

       用于获取目录下的所有目录和文件的路径,返回Set类型

           getResourcePath("/picture");

       用于获得web应用中的资源:

           getResourceAsStream("/1.properties");

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 企业因为经营不善要降薪该怎么办 调岗不降薪我该怎么办? 怀孕后强制调岗怎么办 有限公司法人变更后债务怎么办 有限公司法人跑路债务怎么办 网上买票身份信息待核验怎么办 微信买票身份核验失败怎么办 买高铁票待核验怎么办 网上购票身份待核验怎么办 b站稿件版权原因怎么办 已离职老板打电话说账有问题怎么办 开到应急刹车道怎么办 自动挡的车刹车失灵怎么办 自动挡的车如果刹车失灵怎么办 手动挡汽车刹车失灵怎么办 车辆没有年检出了交通事故怎么办 跟着大货车闯了红灯怎么办 在万家金服买的电子产品坏了怎么办 汽车被油笔画了怎么办? 挂到别人车跑了怎么办 浪琴手表保修卡掉了怎么办 事故车辆维修和报废怎么办 4.2货车拉缸了怎么办 工作中与同事发生矛盾怎么办 和领导关系闹僵怎么办 内倒窗户卡住了怎么办 支付宝存在安全风险怎么办 地铁车站空调坏了怎么办 面试防汛值班发生灾情你怎么办 怀孕上班路途太远怎么办 硕士错过校招应该怎么办 收银员收多了钱怎么办 商铺贷款批不了怎么办 铁路局的门面乱收房租怎么办 酒店夜审房费多过怎么办 夜审房价录多了怎么办 做工地拿不到钱怎么办 赢了官司拿不到钱怎么办 工地上拿不到钱怎么办 做了工拿不到钱怎么办 高速公路上车没油了怎么办