tomcat项目部署方式及Servlet

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
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拥有必珍惜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值