常见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】===> 节点【
配置虚拟路径【推荐】
路径【tomcat/conf/Catalina/localhost/】===>创建【访问路径.xml】===>XML文件内添加【<Context docBase="项目实际路径"】
【PS】取消自动编号方法:换行后直接回车
请求头【对于后台开发有用】
| Key | 意义 | 用途 |
|---|---|---|
| User-Agent | 浏览器类型 | 兼容性,如:文件下载【IE】使用URLEncodor编码【FireFox】使用Base64编码 |
| Referer | 网页来源 | 防盗链 |
| If-Modified-Since | 通常与响应头中的Last-Modified一起查找本地缓存 |
响应头【对于后台开发有用】
| Key | 意义 | 用途 |
|---|---|---|
| Last-Modified | 与请求头中的If-Modified-Since一起查找本地缓存 | |
| Content-Dispostion | 文件下载时使用 | 对于浏览器可以打开的类型强制下载 |
| Location | 重定向时指定需要跳转的路径 | |
| Refresh | 定时刷新/定时跳转 | 付款或者其它操作后页面跳转 |
(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、/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目录:不能被外部通过地址直接访问)
原文:https://www.cnblogs.com/liu-tm/p/12492729.html