1:application和ServletContext的关系
application是JSP九大隐式对象之一,所谓JSP隐式对象就是不需要你自己去new,就存在于页面上的对象。appleiction就是javax.servlet.ServletContext类的实例。
ServletContext application = null;
application = pageContext.getServletContext();
2.request.getParameterValues与request.getParameter的区别:
request.getParameterValues(String name)是获得如checkbox类(名字相同,但值有多个)的数据。 接收数组变量,如checkobx类型
request.getParameter(String name)是获得相应名的数据,如果有重复的名,则返回第一个的值. 接收一般变量,如text类型
注意:Enumeration enu=request.getParameterNames();//获得所有的参数名
3.ServletContext与ServletConfig的区别
ServletContext用于当前虚拟共享,简称上下文
ServletConfig用于单个servlet初始化参数
ServletConfig一般只用于获取Servlet的初始化参数,而ServletContext的作用是与Web Container交互,除了可以用于获取Web Application的全局初始化参数外,还可以获取Servlet的元数据,设置共享属性,获取属性值,获取外部资源等,另外当Web Application使用分布式部署时(在web.xml 中使用distributable元素)ServletContext的作用范围就只有单个虚拟机而不是整个Web Application
4.重定向:URL重写,Cookie,隐藏表单域以及HttpSession
URL重写:XXX.jsp?id=123
隐藏表单域:通过hidden,在另外一个页面获取request.getParameter(obj);
Cookie:Cookie myCookie=new Cookie("code",""+validationCode);
response.addCookie(myCookie);
获取:Cookie cookies[] = request.getCookies();
遍历cookies,比对code=cookies[i].getValue();
Session:httpSession session=request.getSession();
setAttribute("code",validationCode);
HttpSession session=request.getSession();
session.getAttribute("code");
5.获取路径
JSP中获得当前应用的相对路径和绝对路径:
根目录所对应的绝对路径:request.getRequestURI()
文件的绝对路径:application.getRealPath(request.getRequestURI());
当前web应用的绝对路径 :application.getRealPath("/");
取得请求文件的上层目录:new File(application.getRealPath(request.getRequestURI())).getParent();
Servlet中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:request.getServletPath();
文件的绝对路径:request.getSession().getServletContext().getRealPath
(request.getRequestURI());
当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");
ServletContext对象获得几种方式:
Javax.servlet.http.HttpSession.getServletContext()
Javax.servlet.jsp.PageContext.getServletContext()
Javax.servlet.ServletConfig.getServletContext()
例如:
servlet中几个获取路径方法的对比
如果请求的URL为:http://localhost:8080/webapp/login
那么分别调用request.getContextPath( )、request.getServletPath( ) 、
request.getURI( )、request.getURL( )分别返回什么路径?
这几个方法都是在HttpServletRequest接口中定义的。
1.request.getURI( )返回HTTP请求行中请求URI的部分。上例中该方法将返回/webapp/login。
2.request.getContextPath( )返回web应用程序的路径,上例中该方法将返回/webapp。
3.request.getServletPath( ) 返回Servlet的路径。上例中该方法将返回/login。
4.request.getURL( )返回请求的URL,上例中即为http://localhost:8080/webapp/login
encodeURL
response.sendRedirect(response.encodeURL(url))的好处就是他能将用户的session追加到网址的末尾,也就是能够保证用户在不同的页面时的session对象是一致的.
这样做的目的是防止某些浏览器不支持或禁用了COOKIE导致session跟踪失败 。
通常,会话管理是通过服务器将 Session ID 作为一个 cookie 存储在用户的 Web 浏览器中来唯一标识每个用户会话。如果浏览器不支持 cookies,或者将浏览器设置为不接受 cookies,我们可以通过 URL 重写来实现会话管理。
实质上 URL 重写是通过向 URL 连接添加参数,并把 session ID 作为值包含在连接中。然而,为使这生效,你需要为你的 servlet 响应部分的每个连接添加 session ID 。
把 session ID 加到一个连接可以使用一对方法来简化:response.encodeURL() 使 URL 包含 session ID,如果你需要使用重定向,可以使用 response.encodeRedirectURL () 来对 URL 进行编码。
encodeURL () 及 encodeRedirectedURL () 方法首先判断 cookies 是否被浏览器支持;如果支持,则参数 URL 被原样返回,session ID 将通过 cookies 来维持。
注意,如果你想让这个例子能在关闭了 cookies 的浏览器中工作,你的 JSP 引擎必须支持 URL 重写。
一句话:在客户端禁用了cookie后,如果不用这个方法来ecnode一下URL,那么session就无法使用。 加了此方法后会在地址后面添加一个jsession=*******的信息,即使客户端没有开cookie,依然能通过此信息来找到session,完成业务。
其他看附件
分享到:
相关推荐
Tomcat开发JSP和Servlet需要注意的问题.doc
值得注意的是其中"test."表示两种意思:1)类文件既HelloWorld.class在classes文件夹下的test文件夹内; 2)HelloWorld.java内定义HelloWorld类必须打包与test包内,既需有一行package test; --> </servlet> <servlet...
1.4 Servlet 与其他技术的比较 ........................................................................................................................14 1.5 与 Java 平台企业版的关系 ......................
android端和servlet端使用JSON交换数据信息的简单小例子,部分代码在JSP环境下实现,搞过Java WEB开发(JSP)的程序员,应该对Servlet不陌生,Json目前也是流行技术,所以说这个例子将Android、Json、Servlet三者结合...
servlet官方指南,注意是英文版的。但这是一手资料,比翻译过来的意思准确多了
Java Servlet讲解
关于开发servlet的步骤和主要事项,开发过程中应注意的一些问题。
替换servlet模板文件的方法: (1)找到MyEclipse安装...(3)用压缩工具打开,注意是打开不是解压这个jar包; (4)找到templates文件夹,进入templates文件夹,可以看到里面有一个Servlet.java文件; (5)替换即可。
本工程用于借助Servlet3.0实现文件上传 本工程编码方式:UTF-8 注意: 1、在上传文件前请在计算机C盘新建一个名为“upload”的文件夹,否则会出现如下异常:java.io.IOException: The temporary upload location [C...
servlet笔记,用于从前端jsp传递数据到服务器,还有一些需要注意的要点,新手可以看看
Java Servlet API说明文档 绪言 这是一份关于2.1版JavaServletAPI的说明文档,作为对这本文档的补充,你可以到http://java.sun.com/products/servlet/index.html下面下载Javadoc格式的文档。 谁需要读这份文档 这份...
java servlet+mybatis+layui+jquery+echarts 登录地址:http://localhost:8080/crm/pages/login.jsp 账号密码:zuidaima 123 登录界面 市场活动 添加市场活动 线索管理 关联市场活动 线索转换 客户管理 联系人 添加...
jsp+servlet+javaBean访问数据库的简单例子,但是类设置非常巧妙,大家注意。
JSP和Servlet编程应该注意的问题
使用servlet的总体流程以及一切要注意的事项,不难,希望对大家有所帮助。
Mac电脑: servlet jar包已在eclipse开发工具中使用测试OK,windows电脑未测试过,在下载过程中请注意查看适合版本。
JSP+servlet实现的文件上传, 有详细注释, 需要MyEclipse5.5或更高
1注意manifext.xml的权限 2 servlet project的类一定要extends httpservlet 3 servlet project中,com是包名,所以Tomcat是...classes/com/xxx.class 4 192.168.0.107是电脑的IP,需要手机电脑连接的是同一个wifi,...
A. 本留言本采用jsp+javabean+servlet+mysql B. 本系统运行环境: windows/linux+ jdk1.4+resin(或tomcat)+jdbc+mysql 5.0 目录结构如下: 本版本数据库采用的是MYSQL,使用JDBC驱动,所以要求有MYSQL的JDBC...