首页 > 其他 > 详细

Servlet

时间:2020-03-14 16:58:06      阅读:70      评论:0      收藏:0      [点我收藏+]

JavaWeb

常见WEB服务器

名称 公司/用途
Apache PHP
IIS ASP
WebSphere IBM|收费大型|支持JavaEE所有的开发规范
WebLogic BEA|收费大型|支持JavaEE所有的开发规范
Tomcat Apache组织|免费小型|支持Servlet/JSP的开发规范
JBoss ...

视频教案[阶段二 JavaWeb/第五章 Tomcat&Http&Servlet/5-1 tomcat]

教案提到,实际应用中,Tomcat版本以7、6为主。原因是版本8以上调整了字符集编码,所以无法普及。

关于软件目录名称

缩写 全写 类型 译文
bin binary adj. 二进制的
conf configure v. 配置
lib library n. 图书馆(实际为插件库)

Tomcat发布静态Web工程【三种方式】

  • 直接将项目复制到【tomcat/webapps】

  • 配置虚拟路径【不推荐】

    路径【tomcat/conf/server.xml】===> 节点【】中添加【<Context path="访问路径" docBase="项目实际路径"】

  • 配置虚拟路径【推荐】

    路径【tomcat/conf/Catalina/localhost/】===>创建【访问路径.xml】===>XML文件内添加【<Context docBase="项目实际路径"】

  • 【PS】取消自动编号方法:换行后直接回车

HTTP

请求头【对于后台开发有用】

Key 意义 用途
User-Agent 浏览器类型 兼容性,如:文件下载【IE】使用URLEncodor编码【FireFox】使用Base64编码
Referer 网页来源 防盗链
If-Modified-Since 通常与响应头中的Last-Modified一起查找本地缓存

响应头【对于后台开发有用】

Key 意义 用途
Last-Modified 与请求头中的If-Modified-Since一起查找本地缓存
Content-Dispostion 文件下载时使用 对于浏览器可以打开的类型强制下载
Location 重定向时指定需要跳转的路径
Refresh 定时刷新/定时跳转 付款或者其它操作后页面跳转

Servlet

What)是一个运行在WEB服务器上的小型Java程序、是SUN公司提供的一种动态网页开发技术

Function)用来处理从客户端发来的一请求,并且可以对请求作出响应。通常使用HTTP协议。早期也用来制作动态页面,这是Servlet的短板,所以后来SUN公司研发了JSP(JavaServer Pages)。

Employ)编写一个类实现Servlet接口,将这个实现类配置到服务器中。

Life Cycle)用户第一次访问Servlet的时候,服务器会创建一个Servlet实例,Servlet中的init()方法就会执行。任何一次对于该Servle的请求,服务器都会创建一个新的线程去调用 Servlet中的service()方法。在service()方法内部,会根据请求方式的不同而调用不同的doXXX方法(doGet()、doPost() ...)。当Servlet从服务器中移除,或者关闭服务器时,Servlet的实例就会被销毁,此时destroy()方法就会执行。

Configure<load-on-startup>2</load-on-startup>可以让Servlet在服务器启动时创建,‘2‘代表优先级,越小则优先级越高。Tomcat服务器内置了一个DefaultServlet优先级别为‘1‘。

   <servlet>
        <servlet-name>userLogin</servlet-name>
        <servlet-class>xxx.xxx.xxx.service.UserLogin</servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>userLogin</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>

/login有三种配置方式:

方式 规则 优先级
完全路径匹配 以 / 开始 /login、/user/login 1
目录匹配 以 / 开始,需要以 * 结束 /*、/user/* 2
扩展名匹配 不能以 / 开始,以 * 开始 *、*.do、*.action、*.jsp 3
错误 /*.do

请求转发和重定向

  • 请求转发和重定向的作用:

  在java后台servlet中,实现由一个servlet跳转到另一个servlet/jsp要使用的技术。

  • 前端发送请求到后台的方式:

  a.浏览器地址输入链接。

  b.a标签  <a href="URL 地址">跳转</a>

  c.form表单  

<form action="URL地址" method="get/post">
    <input type="submit" value="跳转"/>
</form>

  d.通过js的BOM操作  window.location.href=“http://www.baidu.com”;

  e.AJAX异步请求。

  • 请求转发和重定向的使用:

  请求转发:request.getRequestDispatcher(servlet或者jsp的请求路径).forward(request,response);

  URL重定向:response.sendRedirect("/project/views/student.jsp");

  • 请求转发和重定向的区别

  a.请求转发是一次请求,重定向是两次请求 (通过地址栏可以查看)
  b.请求转发地址栏不会发生改变, 重定向地址栏会发生改变
  c.请求转发可以共享请求参数 ,重定向之后,就获取不了共享参数了
  d.请求转发不能跨域(不能访问其他服务器链接)
request.getRequestDispatcher("http://www.baidu.com").forward(req,resp);是不行的
重定向可以 response.sendRedirect("http://www.baidu.com");
  e.请求转发能转到WEB-INF目录下的文件
request.getRequestDispatcher("/WEB-INF/views/student.jsp").forward(req,resp);
而重定向不能 request.sendRedirect("/project/WEB-INF/views/student.jsp");
:WEB-INF目录:不能被外部通过地址直接访问)

Servlet

原文:https://www.cnblogs.com/liu-tm/p/12492729.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!