tomcat javaweb开发基础(10servlet(3))
来源:互联网 发布:mac ctrl c 编辑:程序博客网 时间:2024/06/02 13:19
一:使用servlet取得其他的常用对象
从servlet本身的方法定义里可以发现,doGet()和doPost()方法里面直接存在request和response对象,本处只要关心如何取出session,application即可。
(1)取得session对象
session对象是接口HttpSession接口的对象,如果想在一个servlet中取得session对象,必须依靠 HttpServletRequest对象。
~public HttpSession getSession();
~public HttpSession getSession(boolean flag);
代码:
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOException{ HttpSession ses = null ;ses = req.getSession() ; // 取得Session对象System.out.println("**********" + ses.getId()) ;}
(2)取得application对象
application对象是javax.servlet.ServletContext接口的对象。其中最常用的方法:
~属性的操作:setAttribute(), getAttribute(),removeAttribute();
~取得一个虚拟目录对应的真实路径:getRealPath(String path);
范例1:
<%@ page contentType="text/html;charset=GBK"%><%@ page import="java.io.*"%><h1><%=application.getRealPath(“/”)%></h1>
2.getServletContext()方法
一般application表示的是上下文,但是在实际的开发中,往往很少去直接使用application,而使用getServletContext()方法来表示application.
范例2:
<%@ page contentType="text/html;charset=GBK"%><%@ page import="java.io.*"%><h1><%=getServletContext().getRealPath(“/”)%></h1> 此方法有容器调用,如果非要加上对象的话,则直接加上this关键字。<%@ page contentType="text/html;charset=GBK"%><%@ page import="java.io.*"%><h1><%=this.getServletContext().getRealPath(“/”)%></h1>
在servlet中取得application对象
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOException{ ServletContext app = this.getServletContext() ; //Class GenericServlet 中定义的方法
System.out.println("*****" + app.getRealPath("/")) ;}
三:Servlet跳转
前面讲过一个JSP或一个HTML可以很轻松的跳转到Servlet之上,但是如果现在要求使用一个Servlet跳转到其他地方呢?
(1) 客户端跳转:response对象
在doGet()和doPost()之中直接存在了response对象,就可以直接利用sendRedirect()进行跳转。
D:\webdemo\\demo.jsp
<h1>hello!</h1>
resp.sendRedirect("demo.jsp") ;
OtherServlet.java:
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOException{resp.sendRedirect("demo.jsp") ;}
以上完成了跳转功能,但是如果现在想向跳转页面中传递属性,那该怎么办?
OtherServlet.java
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOException{ req.getSession().setAttribute("name","HELLO WORLD") ;resp.sendRedirect("demo.jsp") ;}Demo.jsp <h1><%=session.getAttribute(“name”)%></h1>
此时内容确实传递。如果现在要接受的属性只使用一次的话,则使用session太浪费了。
现在既然是跳转并且此属性只使用一次,最好使用request属性范围最合适,但是要想使用request传递属性,则必须使用服务器跳转。
在Servlet程序中,RequestDispatcher接口的主要功能是完成服务器的跳转,实际上<jsp:forward>标签就是包装了此语句。
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOException{req.setAttribute("name","HELLO WORLD") ;RequestDispatcher rd = req.getRequestDispatcher("demo.jsp") ;rd.forward(req,resp) ;// 跳转}
在一般的servlet开发中,使用RequestDispatcher接口跳转是最多的,而且一般如果要向页面中传递属性一般使用request
总结:
1.Servlet的开发形式
2.servlet的生命周期
3.搞清楚service()和doGet()和doPost()之间的关系
4.可以从servlet之中取得session和application对象。
5.RequestDispatcher接口跳转和request传递属性。
- tomcat javaweb开发基础(10servlet(3))
- tomcat javaweb开发基础(8)servlet程序设计(1)
- tomcat javaweb开发基础( 9 servlet(2))
- tomcat javaweb开发基础(一)
- tomcat javaweb开发基础(三)
- tomcat javaweb 开发基础(4)
- tomcat javaweb 开发基础(5)
- 10003---JavaWeb开发基础--Servlet
- javaweb学习笔记:Servlet开发基础
- JavaWeb开发基础:Servlet登录小实例
- JavaWeb-开发基础-web、环境、jsp、servlet
- 【JAVAWEB基础】JSP & Servlet开发讲解
- tomcat Javaweb开发基础(6承接五)
- tomcat javaweb 开发基础(七接着六)
- 10001---JavaWeb开发基础--初识Tomcat
- JavaWeb基础(3)—— JavaWeb 开发基础知识
- tomcat javaweb(实验四 Servlet开发与MVC设计模式)
- MyEclipse2014配置Tomcat开发JavaWeb程序JSP以及Servlet
- RHEL 5 建立YUM 安装仓库
- MFC控制子线程退出的基本思路比较
- android 调用指定浏览器
- 鸿海碳纳米管触控面板或华为、酷派等采用
- 用newlisp管理windows下的nginx
- tomcat javaweb开发基础(10servlet(3))
- Android SDK版本与Apk-Api级别的对应关系
- 漫画HDFS
- PHPExcel中open_basedir restriction in effect的解决方法
- HTML5离线应用
- 再见,viewDidUnload方法
- GAE报错
- ruby编码说明
- Linux环境变量的设置和查看