1、Jsp经典自学笔记This my first jspc的值为:This inpu.jsprow:col:This output.jsp%for(int i=o;i%for(int j=0;j1.JSP执行流程:2.JSP详细执行流程:3.5. JSP 声明的格式:,脚本段的形式:, 当服务器将JSP 转换为Servlet 时,会将JSP 中的声明转换为类的成员变量,而将脚本段转换为方法中的局部变量,Servlet是单实例的,这样成员变量的值就只有一个,每个用户都会访问到它,而脚本段中的值则是局部变量,每个用户访问的时候各有一份,互不影响。 4.指令用于转向页面,在该指令后面的所有代码都没有机会
2、执行了,因为页面的流程已经转向了另外一个页面了。 5.getParameter方法是getParameterValues方法的特例,表示请求参数值只有一个,如果请求参数值有多个,请使用getParameterValues方法。在多选框的情况下,需要使用getParameterValues方法来获取用户所选择的多个复选框的值。 Java Web Lesson 4 1. request的setAttribute与getAttribute方法一般都是成对出现的,首先通过setAttribute方法设置属性与属性值,然后通过getAttribute方法根据属性获取到与该属性对应的对象值(获取到之后一般
3、都需要进行向下类型转换,将属性值转换为真正的对象)。setAttribute与getAttribute方法都是在服务器端内部执行的,客户端不知道服务器端是否执行过这两个方法。 Java Web Lesson 4 1. request的setAttribute与getAttribute方法一般都是成对出现的,首先通过setAttribute方法设置属性与属性值,然后通过getAttribute方法根据属性获取到与该属性对应的对象值(获取到之后一般都需要进行向下类型转换,将属性值转换为真正的对象)。setAttribute与getAttribute方法都是在服务器端内部执行的,客户端不知道服务器端
4、是否执行过这两个方法。 2. request的getParameter方法的作用是获取到客户端 通过表单或url请求参数所发送过来的参数值,是客户端与服务器端之间的交互,服务器端要想获取到客户端发送过来的数据,就需要使用getParameter方法来获取。没有与getParameter方法对应的setParameter方法。 3. request对象内数据的存活范围就是在request对象的存活范围内,当客户端向服务器端发送一个请求,服务器向客户端返回一个响应后,该请求对象就被销毁了;之后再向服务器端发送新的请求时,服务器会创建新的request对象,该request对象与之前的request
5、对象没有任何关系,因此也无法获得在之前的request对象中所存放的任何数据。 4. session对象内数据的存活范围也就是session对象的存活范围(?只要浏览器不关闭,session对象就会一直存在?),因此在同一个浏览器窗口中,无论向服务器端发送多少个请求,session对象只有一个。 5. application(应用对象):存活范围最大的对象,只要服务器没有关闭,application对象中的数据就会一直存在。在整个服务器运行过程当中,application对象只有一个。6.request、session以及application这3个对象的范围是逐个增加的:request只在一
6、个请求的范围内;?session是在浏览器窗口的范围内?;application则是在整个服务器的运行过程中。 5.JAVA web 5 1.RequestDispatcher对象通过HttpServletRequest的对象的getrequestDispatcher方法得到:requestDispatcher内方法forword的方法称为请求转发。 如果location地址前面加上“/”,则表示相对于Servlet容器的根来请求,即http:/localhost:8080,如果location地址前没有加上“/”,则表示相对于当前请求的URI来寻找地址。 既: RequestDispatch
7、er rd=request.getrequestDispatcher(my.jsp);Rd.forward(req,resp);2.HttpServletresponse内有一方法sendRedirect此方法称为重定向。既:response.sendRedirect(/my.jsp); 3. 请求转发与重定向的区别。 1)请求转发,整个过程处于同一个请求当中 2)重定向。实际上客户端会向服务器端发送两个请求。 3)RequestDispatcher是通过调用HttpServletRequest对象的getRequestDispatcher()方法得到的,是属于请求对象的方法。 4)sendR
8、edirect()是HttpServletResponse对象的方法,即响应对象的方法,既然调用了响应对象的方法,那就表明整个请求过程已经结束了,服务器开始向客户端返回执行的结果。 Java Web Lesson61.可以在中通过param参数为bean的属性动态赋值。对应的servlet代码是:2.javabean的存活范围:3.当将javabean放在session存活范围内时:生成的servlet代码为:4.当将javabean放在application范围内时:5.生成的servlet代码为:6.每一个servlet都必须实现servlet接口,GernericServlet是一个通用
9、的、不特定任何协议的Servlet,他实现了servlet接口,而HttpServlet继承了GerbericServlet,所以也就实现了Servlet接口。所以我们定义的Servlet只需要继承HttpServlet父类即可。7.Servlet接口定义了一个service方法。HttpServlet对该方法进行了实现,实现方式就是将ServletRequest与ServletResponse转换为HttpServletRequest与HttpServletResponse 8.转换完毕后,会调用HttpServlet类中自己定义的service方法,如下所示 9.在该service方法中,
10、首先获得到请求的方法名,然后根据方法名调用对应的doXXX方法,比如说请求方法为GET,那么就去调用doGet方法;请求方法为POST,那么就去调用doPost方法。 10.在HttpServlet类中所提供的doGet、doPost等方法都是直接返回错误信息,所以我们需要在自己定义的Servlet类中override这些方法 11.源码面前,了无秘密 12.Servelt 核心API 之间的关系UML 图: 13.Servlet 的启动 Servlet过滤器(Filter)1.Servlet过滤器本身并不生成请求和响应对象,它只提供过滤作用。 Servlet过滤器能够在Servlet被调用之
11、前检查Request对象,修改Request Header和Request内容; 在Servlet被调用之后检查Response对象,修改Response Header和Response内容。Servlet过滤器负责过滤的Web组件可以是Servlet、JSP或HTML文件。 2.所有的Servlet过滤器类都必须实现javax.servlet.Filter接口。这个接口含有3个过滤器类必须实现的方法: init() doFilter() destroy() 3.init(FilterConfig):这是Servlet过滤器的初始化方法,Servlet容器创建Servlet过滤器实例后将调用这个方法。在这个方法中可以读取web.xml 文件中Servlet过滤器的初始化参数 doFilter(ServletRequest, ServletResponse,FilterChain): 这个方法完成实际的过滤操作。当客户请求访问与过滤器关联的URL时,Servlet容器将先调用过滤器的doFilter方法。FilterChain参数用于访问后续过滤器 destroy():Servlet容器在销毁过滤器实例前调用该方法,在这个方法中可以释放Servlet过滤器占用的资源
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2