- 浏览: 434701 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
springaop_springmvc:
apache lucene开源框架demo使用实例教程源代码下 ...
Java搜索工具——Lucene实例总结(一) -
chengang292214:
总结的不错
Web开发中的路径问题 -
liuyuanhui0301:
aka~
Java 归并排序(基于数组) -
IT人_:
不错
远程连接MySQL,防火墙阻止访问,解决办法 -
zhuchao_ko:
借鉴。
JNDI访问LDAP
16. 请求分派和重定向
a) 请求分派
RequestDispatcher view=request.getRequestDispatcher(“***.jsp”);// 为 JSP 实例化一个请求分派器
view.forward(request , response);// 使用请求分派器要求容器准备好 JSP ,并向 JSP 发送请求和响应
b) 重定向
response.sendRedirect(“URL”);
其中 URL 是相对的 URL ,有两种类型:前面有斜线和没有斜线
例: 客户原来的请求是 http://www.wick.com/myApp/cool/bar.do ,请求到达名为“ bar.do ”的 Servlet 时,该 Servlet 中会基于一个相对的 URL 来调用 sendRedirect() 。 不带斜线: sendRedirect(“foo/stuff.html”); 容器会相对于原先的请求 URL 建立完整的 URL ,即 http://www.wick.com/myApp/cool/foo/stuff.html
带斜线的: sendRedirect(“/foo/stuff.html”); 容器会相对于 Web 应用本身建立完整的 URL ,而不是相对于原来的请求 URL ,即: http://www.wick.com/foo/stuff.html
请求分派是在服务器端发生,浏览器地址上的 URL 没有改变 ( 相当于被请求的 Servlet 把请求传递给服务器上的另一个组件,而客户并不知道 ) ;重定向是在客户端进行,用户会在浏览器地址栏中看到新的 URL( 相当于服务器又告诉浏览器去访问另一个 URL) 。
17. HttpSession
http://www.blogjava.net/cheneyfree/archive/2007/05/26/120168.html
可以跨多个请求保存会话状态,与一个特定可和的整个会话期间, HttpSession 对象会持久存储。
在响应中发送一个会话:
HttpSession session=request.getSession();// 等价于 request.getSession(true)
//HttpSession session=request.getSession(false); 返回一个已经存在的会话,如果没有与此客户相关联的会话,返回 null
Web 容器会自己生成会话 ID 、建立新的 Cookie 对象、把会话 ID 放到 cookie 中、在响应中设置 Cookie ( set-Cookie )首部。在后续的请求中,容器会从请求中的 cookie 得到会话 ID ,将这个 ID 与一个现有的会话匹配,并把会话与当前请求关联。
如果用户浏览器禁止使用 Cookie ,则在客户的请求首部中就不会含有 ID Cookie 。这时可重写 URL 让客户和容器交换会话 ID 信息。容器总是默认地先使用 cookie ,如果 cookie 不能工作,容器就会求助于 URL 重写。 URL 重写是自动的,但是必须对 URL 完成了编码它才凑效。如:
out.println(“<a href=\””+response.encodeURL(“/beerTest.do”)+”\”>click </a>”)
重新定向时对 URL 的重编码: response.encodeRedirectURL(“/beerTest.do”);
URL 编码只与响应有关,不能在请求中和上下文调用这个方法。
URL重定向是服务器自动完成的,对开发人员来说是透明的。(经测,iteye使用Cookie保存用户通行证的,禁用Cookie后,iteye登陆后,无法正常访问)
实验步骤:
1.两个页面 hello1.jsp,hello2.jsp
hello1.jsp <body> <% String num ="100"; session.setAttribute("num",num); //String url =response.encodeUrl("hello2.jsp"); //String url =("hello2.jsp"); %> <a href=<%=url%>>hello2.jsp</a> </body> hello2.jsp <body> <%=session.getAttribute("num")%> </body>
浏览器Cookie禁用,
打开hello1.jsp中的String url=response.encodeUrl("hello2.jsp");注释
访问http://localhost:8080/SessionTest/hello1.jsp,点击hello2.jsp
会跳转至hello2.jsp,浏览器地址栏显示为:
http://localhost:8080/SessionTest/hello2.jsp;jsessionid=85227A80E09D4443B0A037576B3270AF
页面结果显示为 100
关闭hello1.jsp中的String url=response.encodeUrl("hello2.jsp");打开String url="hello2.jsp";注释
访问http://localhost:8080/SessionTest/hello1.jsp,点击hello2.jsp
会跳转至hello2.jsp,浏览器地址栏显示为:
http://localhost:8080/SessionTest/hello2.jsp
页面结果显示为 null
2. 新建测试页面index.jsp、test.jsp和SessionTestServlet.java
index.jsp页面 <body> <a href="servlet/SesstionTest?userName=zzqrj">test1</a> </body> SessionTestServlet.java public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); String userName = request.getParameter("userName"); HttpSession session = request.getSession(); session.setAttribute("userName", userName); //String url=response.encodeRedirectUrl("../test.jsp"); //String url="../test.jsp"; System.out.println(url); response.sendRedirect(url); //RequestDispatcher view=request.getRequestDispatcher(url); //view.forward(request, response); } test.jsp <body> <%=session.getAttribute("userName") %> <a href="<%=response.encodeUrl("servlet/SesstionTest") %>">test1</a> </body>
测试方法同1,结果也同1.
3. 打开浏览器Cookie,分别对1,2中的页面进行测试
不管是String url=response.encodeUrl("hello2.jsp");打开或是String url="hello2.jsp";打开,浏览器地址栏均不显示" ;jsessionid=***** "。并且结果页面总不为null。
18. 删除会话
a) 超时设置
程序: session.setMaxInactiveInterval(20*60);
// 改变特定会话实例的 session-timeout 值,不会影响应用中其他会话的超时时间。
DD 描述: 相当于在每个会话上调用 setMaxInactiveInterval() 方法
< session-config >
< session-timeout > 15 </ session-timeout > 单位是分钟
</ session-config >
b) 在会话对象上调用 invalidate() : session.invalidate();
c) 应用程序结束
19. Cookie
Cookie 的作用
a) 支持会话状态 。
b) 可以使用 cookie 在服务器和客户之间交换名 / 值对 。
服务器把 cookie 发送给客户,客户再在以后的每个请求中把 cookie 发回,当客户的浏览器退出时,会话 cookie 会自动消失,但是可以设置 cookie 在客户端持久保存 。
使用 Cookie
( 1 )可以从 HTTP 请求和响应中得到与 Cookie 相关的首部 。
( 2 )利用 ServletAPI 使用 Cookie
创建新 Cookie : Cookie cookie=new Cookie(“username”,name);
设置 cookie 在客户端存活时间: cookie.setMaxAge(30*60);
把 cookie 发送到客户: response.addCookie(cookie);
从客户请求得到 cookie :
Cookie[] cookies=request.getCookies();
for(int i=0;i<cookies.length;i++){
Cookie cookie=cookies[i];
if(cookie.getName().equals(“username”)){out.println(cookie.getValue());}
}
20. 会话生命周期
21. Servlet
是一种跨平台语言的服务器端技术, 采用 Servlet 开发的应用,不用考虑平台,多线程等让人头疼的问题,使得开发人员专注于业务逻辑的实现,大大解放了生产力。
Servlet 中嵌入 HTML 代码是开发人员的噩梦
Java 是跨平台的?
发表评论
-
How tomcat works
2011-10-30 10:01 10851. Tomcat 模型:connector--------- ... -
jQuery Cookie插件
2011-10-06 10:49 0back>> cookie插件可以很 ... -
jQuery form表单插件
2011-10-06 10:45 1023back>> http://www.cnbl ... -
jQuery验证插件
2011-10-06 10:40 1420back>> 使用示例: <!DOCTY ... -
jQuery性能优化
2011-10-06 10:28 1699back>> 1. 优化选择器的执行速度 ... -
jQuery中工具函数
2011-10-06 10:06 5255back>> 工具函数的一般格式如下:$.函数名 ... -
ajax在jQuery中的应用
2011-10-06 09:50 1825back>> 1. 加载异步数据 ... -
jQuery动画与特效
2011-10-05 15:26 2247back>> 1. 显示与隐 ... -
jQuery事件
2011-10-05 15:08 2650back>> 1. 事件机制 ... -
Jquery Dom操作
2011-10-05 14:44 1651back>> 1. 元素属性操作 ... -
jQuery选择器
2011-10-05 09:04 2753back>> 1. 表格各 ... -
jQuery权威指南
2011-10-05 08:58 839jQuery权威指南 1. jQuery入门 2. ... -
Jquery入门
2011-09-28 14:41 11911. Jquery基本功能 * 访问和操作D ... -
comet pushlet
2011-08-12 17:49 21801.http://www.ibm.com/developerw ... -
Ajax开发
2011-07-25 21:50 15891. netbeans 中文版改成英文版 在NetBea ... -
CSS+DIV
2011-06-28 16:02 1146精通CSS+DIV网页样式与布局 曾顺 人民邮电出 ... -
jquery
2011-06-09 08:08 1006http://www.css888.com/ jQuer ... -
jsp乱码解决大全(转自csdn一高手)
2011-03-04 17:01 2226好文章, ... -
Unicode 控制字符
2011-03-03 11:44 3188<li> : &am ... -
URL中汉字乱码问题
2011-02-26 12:01 1600返回 Oak>> 服务器 ...
相关推荐
JSP Servlet基础知识测试题
### Servlet基础知识总结 #### 一、Servlet简介 Servlet是一种服务器端的小程序,是Java平台上的一个重要的技术之一,主要用于处理客户端的HTTP请求并生成动态网页。Servlet是在服务器端运行的,能够提供各种服务...
通过阅读博文《JSP和Servlet基础知识点》(链接:https://greatwqs.iteye.com/blog/1040280),你可以深入理解这两个技术的实际应用和最佳实践,例如如何使用JSP标签库提高开发效率,以及如何在Servlet中处理会话和...
本压缩包含有:第1章 背景知识简介;第2章 Java开发环境及开发工具;...第4章 JSP技术基础知识;第5章 Servlet技术基础知识。总计共5个pdf文档,从基础入手,适合初学者及中等水平!希望大家前来分享~
**学习JSP和Servlet基础,你需要理解它们的基本概念、生命周期、API使用以及如何协作处理Web请求。此外,熟悉EL和JSTL,以及如何在实际项目中应用MVC模式,对于提升开发效率和代码质量至关重要。本课件将逐步引导你...
本文将用通俗易懂的语言深入浅出地介绍JSP和Servlet的基础理论知识。 首先,我们来理解什么是JavaServer Pages(JSP)。JSP是Java平台上的一个标准视图技术,它允许开发者将HTML、CSS和JavaScript与Java代码相结合...
这个压缩包中的"jsp Servlet基础入门学习教程"可能包含了关于这两个主题的详细讲解,包括理论知识、示例代码和实践指导。建议按照教程步骤逐步学习,同时结合实际项目练习,加深理解。 总之,理解和掌握JSP与...
通过这个"jsp servlet 博客项目",初学者可以全面地学习到Web开发的基本流程,从页面设计到服务器端逻辑,再到数据库操作,是实践理论知识和提升技能的好材料。同时,详细说明文档会帮助理解每个部分的功能和实现...
《Head First Servlet & JSP》是一本非常受欢迎的IT教程,专为准备SCWCD(Sun Certified Web Component Developer...通过阅读这本书,你可以熟练掌握Servlet和JSP的核心技术,为构建复杂的企业级Web应用打下坚实基础。
总之,《jsp&servlet电子书》是学习JSP和Servlet的理想教材,无论你是初学者还是有一定基础的开发者,都能从中获益匪浅。通过阅读这本书,你将能够熟练地运用这两种技术构建高效的Web应用程序,解决实际开发中的各种...
五、Servlet基础知识 1. Servlet配置:在web.xml中通过<servlet>和<servlet-mapping>元素定义Servlet。 2. doGet与doPost:这两个方法是Servlet的核心,分别处理HTTP的GET和POST请求。 六、实战演练 1. 创建第一个...
**JSP和Servlet基础知识详解** **一、JSP内置对象** JSP提供了九种内置对象,它们是直接可用的,无需显式创建: 1. **request**:代表用户端请求,能够获取GET/POST请求中的参数。 2. **response**:用于向用户...
了解这些基础知识对于初学者掌握Servlet和JSP至关重要。Servlet负责接收和响应HTTP请求,可以处理复杂的业务逻辑,而JSP则简化了视图层的开发,使得开发者能够更方便地在页面中插入Java代码来动态生成HTML。两者结合...
【JSP&Servlet测试题解析】 1. JSP(JavaServer Pages...这些知识点涵盖了JSP和Servlet的基础概念、使用方法以及相关组件的特性,是理解JSP&Servlet开发的关键要素。了解和掌握这些内容对于进行Java Web开发至关重要。
【Java JSP Servlet 通讯录】是一个典型的Web应用程序示例,特别适合初学者用来学习Java Web开发技术。在这个项目中,我们主要会涉及到三个核心技术:Java、JSP(JavaServer Pages)和Servlet。 1. **Java**: Java...
通过这样的上机实践,学生能够巩固理论知识,提高实际动手能力,为今后的Web开发工作打下坚实基础。在解答上机作业时,需注意代码规范、错误处理和优化,以提升代码质量和可维护性。同时,理解和熟练掌握JSP与...
2. **Servlet基础**: Servlet是Java编写的小型服务器应用程序,它们接收HTTP请求并返回响应。Servlet生命周期包括加载、初始化、服务、销毁四个阶段。通过`@WebServlet`注解或在web.xml中配置,可以将Servlet映射...
在实际学习或开发过程中,JSPServletDemo项目涉及的知识点包括: 1. **JSP基本语法**:了解JSP的指令(如`<%@ page %>`, `<%@ include %>`, `<jsp:include>`等)、动作元素(如`<jsp:useBean>`, `<jsp:setProperty>...
一、JSP 和 Servlet 基础知识 * JSP 和 Servlet 都是服务器端执行的,通常返回给客户端的是一个 HTML 文本。 * JSP 在服务器上执行,并将执行结果输出到客户端浏览器。 * 客户端只要有浏览器就能浏览 JSP 或 HTML ...
以上是对题目中涉及的Web开发、Servlet和JSP相关知识点的详细解析,涵盖了会话管理、Servlet生命周期、请求处理、JSP内置对象以及JSP动作等方面的知识。这些内容是构建Web应用程序的基础,理解和掌握它们对于进行Web...