servlet和tomcat相关知识

 

Servlet 相关知识

一、             servlet 的定义

1.Servlet 是接受来自网络的请求( form 表单,以及其他的请求),并对不同请求作出不同的响应。

2.Servlet 是一个位于服务器端的独立于平台和协议的Java 应用程序, 可以生成动态的web 页面, 也可以像jsp 一样直接输出信息。

3. Servlet 是基于 Http 协议运行在 web 容器中, web 容器可以控制 Servlet 对象的生命周期,控制请求由 Servlet 对象处理。
   4.Servlet
必须在 web.xml 文件中注册服务器启动的时候 , 可以根据这些配置来加载 Servlet 类。

二、             tomcat

1 . web 服务器,常用的 web 服务器有 Tomcat Jboss 等,我们所用到的 Tomcat 是一个开源的服务器, Tomcat 是一个用 java 语言编写的 web 服务器 ,所以需要有相应的 java 运行环境,也就是 JVM ,还要配置 tomcat 的具体路径。

2. 配置环境变量: CATALINA_HOME=/XXXX/XXX

3.tomcat 是否启动:地址栏输入 ttp://localhost:8080/ http://127.0.0.1:8080/ 可以访问到 tomcat 的主页就是启动成功了。

4. 要想停止 tomcat 服务器要使用 shutdown.sh windows 中使用 shutdown.bat ),如果直接关闭启动窗口,就会造成 8080 端口占用错误,这时可以在使用 shutdown.sh 关闭一下服务器。

   5. tomcat 可以识别的资源只有在 webapps 文件夹下, webapps 也就是 web 应用文件夹, webapps 下的文件夹这些文件夹中存放的就是 web 应用。

6.web 应用是有格式规范的:

       7. tomcat 服务器中,访问应用下的资源可以在端口号后加上 web 应用文件夹的名字 就可以看到资源 http://localhost:8080/xxxxx/xxxx.html WEB-INF 文件夹中的资源是受保护的,不能够通过网络访问到。

三、             Servlet 的作用

1.Servlet 主要用来在控制层 结合mvc 模式做控制转发.
2.Servlet
的应用:
   
表单是HTML 中使用最广泛的传递信息的手段,Servlet 使用HttpServlet 类中的方法与表单进行交互 ,HttpServer 把客户请求正确的映射到相应的函数上:

<form method="get post" action=" url-pattern">

......

</form>
a) doGet
用于处理 GET 请求
b) doPost
用于处理 POST 请求

 

四、             Servlet 中请求响应过程

 

五、 Servlet 的调用过程

1.    用户通过浏览器向 web 服务器发送请求

http:// 服务器 ip 地址:端口号 /web 应用名

2.    服务器为用户定位所需要的资源:

静态资源:

         XX.html 静态页面,读取文件内容并发送到客户端

动态资源:

                  1 解析 web.xml 定位 Servlet 类的名字

           2 装载类( WEB-INF/classes 的类文件或 WEB-INF/lib 下的 jar 文件)

3 创建该对象的实例

    Class.forName("servle 的类名 ").newInstance();

<servlet-mapping>

<servlet-name>servlet 的名字(要和 servlet 标签中的相同) </servlet-name>

<url-pattern>/ 指定 servlet 相对于应用目录的路径 </url-pattern>

</servlet-mapping>

url-parttern 的配置,这个 url 就是 Servlet 的虚拟路径

    http:// 服务器 ip 地址:端口号 / 应用文件夹名 /url-pattern

六、 Servlet 的生命周期分为以下四个阶段

1 )创建 Servlet 对象,通过服务器反射机制创建 Servlet 对象,第一次请求时才会创建

2 )调用 Servlet 对象的 init() 方法,初始化 Servlet 的信息, init() 方法只会在创建后被调用一次

3 )响应请求,调用 service() 或者是 doGet() doPost() 方法来处理请求,这些方法是运行的在多线程状态下的。

4 )在长时间没有被调用或者是服务器关闭时,会调用 destroy() 方法来销毁 Servlet 对象。

七、 cookie session 会话

Cookie Cookie 是服务器发送给浏览器的纯文本信息,用户以后访问同一个 Web 服务器时浏览器会把它们原样发送给服务器。通过让服务器读取它原先保存到客户端的信息,网站能够为浏览者提供一系列的方便 .( 例如不用经常写登陆信息 )

Session session 总是放在服务器上的,每个客户会跟一个sessionID (为了标识他是那个客户端的)对应。因为HTTP 是无连接的,如何区分同一个客户的多次请求呢,就需要客户端每次发请求的时候,发送相应的sessionID

 

 

 

Cookie session 的比较:

1 、存在的位置:

cookie 保存在客户端, session 保存在服务器端

2 、安全性:

cookie 的安全性比 session

3 、网络传输量

cookie 通过网络在客户端和服务器端传输 session ID

 

 

 

 

 

 

 

 

 

 

 

重写URL

session ID 加到一个连接可以使用一对方法来简化:response.encodeURL() 使 URL 包含 session ID ,如果你需要使用重定向,可以使用 response.encodeRedirectURL () 来对 URL 进行编码。

"<a href="+resp.encodeURL(req.getRequestURL().toString())+">test</a > "// 重写 URL encodeURL(), 如果浏览器的 cookie 没有禁掉,则这句话没有对 req.getRequestURL().toString() 作任何处理,还是保持这个字符串的原样;如果 cookie 被禁掉了 , 则在字符串的后面加上一字符串 " "+session ID

encodeURL () encodeRedirectedURL () 方法首先判断 cookies 是否被浏览器支持;如果支持,则参数 URL 被原样返回,session ID 将通过 cookies 来维持。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值