- 浏览: 71981 次
最新评论
文章列表
1、定义
1)forward():表示在服务器端从一个Servlet中将请求转发到另一个资源(Servlet、Jsp或Html等),本意是让第一个组件对请求做些预处理(或者什么都不做),而让另一组件处理并返回响应。
2)include():表示在响应中包含另一个资源(Servlet、Jsp或Html等)的响应内容,最终被包含的页面产生的任何响应都将并入原来的response对象,然后一起输出到客户端。
2、关于状态码和响应头
1)forward():调用者和被调用者设置的状态码和响应头都不会被忽略。
2)include():被调用者 ...
1、定义
1)Forward(请求转向):服务器程序内部请求转向,这个特性允许前一个程序用于处理请求,而后一个程序用来返回响应。
2)Redirect(重定向):服务端发送给客户端一个重定向的临时响应头,这个响应头包含重定向之后的URL,客户端用新的URL重新向服务器发送一个新的请求。
2、定义简单理解
1)请求转发只是把请求转发给服务器上(通常是同一个Web应用中)的另一个组件(Servlet或Jsp等)。
2)重定向则只是告诉客户(浏览器)去访问另一个URL(可能是同一个Web站点甚至其他站点)。
3、本质区别
...
我们知道,当一个请求到达Servlet时,如果你不想处理该请求,你可以将请求分派(转发)给Web引用中的另一个组件(Servlet或Jsp等)来处理(即转发),又或者可以把请求重定向到另一个完全不同的URL来处理(即重定向)。注意,请求分派发生在服务器端,由服务器完成,而重定向发生在客户端,由客户(浏览器)完成。(关于两者的详细区别,可以参考:《Servlet中请求转发和重定向的原理及区别》)
下面主要介绍下重定向到底是怎么个过程?
1、客户在浏览器地址栏键入了一个(访问Servlet的)URL,并按下回车键。
2、请求到达Web服务器(及Web容器)。
...
以下分多个方面介绍Get和Post的区别:
1、本质:Get是先服务器获取数据的一种请求,应该是安全且幂等的,而Post是向服务器提交(并更新)数据的一种请求,通常是非幂等。
2、参数传递:Get通过URL传递,参数数据会直接拼接到RUL后面(请求头中),而Post则会将参数数据放到请求体中。
3、数据量:Get小,最多1024个字节(注意是整个URL长度,而不仅仅是参数长度,具体由浏览器及服务器做的限制,Http规范并没有做限制!),而理论上Post没有限制。
4、安全性:Get安全性较低,Post安全性较高。
5、Form提交时默认方法:如果For ...
1、Servlet生命周期其实很简单:只有一个主要状态——初始化。如果Servlet没有初始化,则要要么正在初始化(运行构造函数及init()方法)、正在撤消(运行其destory()方法),要么就是不存在。
2、图解 3、Servlet生命周 ...
1、先简单介绍下JDK和JER。
1)JDK(Java Development Kit) 就是Java 程序开发的工具包,即Java的SDK。JDK 是整个Java的核心,包括了Java的开发环境和运行环境(Java Runtime Envirnment)以及一堆Java工具(tools.jar)和Java基础的类库(rt.jar) 等。
2)JRE(Java Runtime Environment,即Java运行环境),是运行JAVA程序所必须的环境的集合,包含JVM标准实现、Java核心类库(API)及支持文件,但不包含开发工具(编译器、调试器等)。
...
1、新建Servlet文件
1)我们知道,要成为一个Servlet,则必须(一般)继承HttpServlet 类。
2)在D:\Javaspace\TestWeb\com\example\servlet\中,使用记事本新建如下MyServlet.java文件。
package com.example.servlet;
public class MyServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response ...
待后续整理。。。
1、整体流程(针对Servlet的请求):
-->客户发出请求
-->Web服务器收到请求
-->Web服务器转交请求给Web容器(如tomcat)
-->Web容器调用指定Servlet
-->Servlet调用模型(具体业务逻辑)处理请求
-->Servlet将模型返回的数据保存到某个属性范围中
-->Servlet将请求转发给jsp
-->jsp从属性范围中获取数据
-->jsp构建页面并返回给Web容器
-->Web容器将页面返回给Web服务器
-->Web服务器将响应数据发回 ...
Java内部类(Inner Class)也叫嵌套类(Nested Class。内部类从表面上看,就是在类中又定义了一个类(下文会看到,内部类可以在很多地方定义),而实际上并没有那么简单,乍看上去内部类似乎有些多余,它的用处对于初学者来说可能并不是那么显著,但是随着对它的深入了解,你会发现Java的设计者在内部类身上的确是用心良苦。
学会使用内部类,是掌握Java高级编程的一部分,它可以让你更优雅地设计你的程序结构。下面从以下几个方面来介绍:
1、内部类
实例1:
public interface Contents {
int valu ...
1、封装
1)为什么要封装?简单来说就是为了保证数据的安全性,以及隐藏复杂性(接口的具体实现),从而实现软件的灵活性、可维护性及可扩展性。
2)如何实现封装?隐藏实例变量,公开访问方法。
a)保护实例变量(使用private修饰符)。
b)创建公共的访问方法(比如getter()和setter())。
3)IS-A指继承或实现,使用extends关键字表达(不是implements)。
4)“IS-A” 、“继承自”以及“是...的子类型”是等价的。
5)HAS-A 指一个类的实例拥有另一个类(或同一 ...
1、String对象是不可变的,但引用变量是可变的。
2、如果创建了新的String而没有给它赋值,则对程序来说它是丢失的。
3、如果将String的引用变量指向了新的对象,在旧的对象可能丢失(看没有其他引用指向)。
4、String类是最终类,意味着其所有的方法都不能被覆写。
5、当JVM发现字符串的字面值时,会将它添加到String字面值池中,比如:
1)String s="ab",则会将"abc"放入常量池中,并由s引用它。
2)String s =new String("cd&quo ...
1、&和&&都可以表示逻辑与(and),多个表达式进行逻辑与操作时,只有都为true时,结果才为true。
2、&&具有短路功能,即如果多个表达式的某个表达式为false,则不会继续判断后续的表达式,整个逻辑与的结果即为false。
3、&可以进行位运算,如果表达式两边为数值时,则进行按位与操作。
4、| 和 || 都可以表示逻辑或(or),多个表达式进行逻辑或操作时,只要有一个为ture,则结果才为true。
5、|| 具有短路功能,即如果多个表达式的某个表达式为true,则不会继续判断后续的表达式,整个逻辑或 ...
1、在Java中,垃圾收集就是用来描述自动内存管理的术语。内存是用来创建栈、堆、Java常量池以及方法的区域。堆是Java对象所在的内存部分,所以它是垃圾收集过程所涉及的唯一一块内存区域。
2、垃圾收集的核心任务(目 ...
1、Java回顾
Java 程序主要是对象的集合,对象之间通过调用彼此的方法与其他对象进行交互,共同完成一项或多项任务。Java中每个对象都属于某一个类(class)或一个借口(interface)定义的类型。
类:描述对象状态和行为的模板。
对象:类的具体实例,拥有自己的状态以及对其父类所有行为的访问权限。
状态(实例变量):每个对象拥有的类定义的独特的实例变量集,实例变量值构成了对象特有的状态。
行为(方法):行为是表明类的能做什么,也就是执行算法和操纵数据的地方。
2、标识符
3、声明规则
4、类的访问修饰符
5 ...
1、我们知道在集合中,如果需要保持集合中的元素有序,则可以使用TreeSet集合。
2、TreeSet判断元素重复的方法和HashSet一样,但同时它还会保持集合中元素处于有序状态。
3、如果直接使用TreeSet的默认无参构造函数,则其工作起来会像使用sort()方法一样使用其中元素的compareTo()方法进行排序,所以此时其中的元素必须实现Comparable接口,并覆盖其中的CompareTo()方法(定义对象的比较规则)。
实例一:
package com.linwei;
import java.util.TreeSet;
public c ...