JavaWeb之Servlet编程
2017-03-26 21:46
176 查看
记一下Servlet的重要知识点.
1)Servlet生命周期:构造方法-->init(有参)-->service()-->destroy()
构造方法: 创建servlet对象。默认情况下,第一次访问servlet对象时。只调用1次。
init方法(有参): 创建完servlet对象后调用。只调用1次。
注意: 会调用无参的init方法。
service方法: servlet提供服务的方法。每次发出请求调用。
注意: request对象 ,response对象
destroy方法: tomcat服务器停止或web应用重新部署,servlet对象销毁,destroy方法被调用。
demo如下:
2)ServletConfig对象
获取servlet的初始化参数:
getInitParameter("name ");
getInitParameterNames();
贴代码了:
3)ServletContext对象(ServletContext的作用范围在整个web应用程序内)
得到web应用路径:
context.getContextPath();
request.getContextPath(); 等价于上面的代码
4)得到web应用参数:
context.getInitParameter("name");
context.getInitParameterNames();
5)域对象:
context.setAttribute("name",Object): 保存数据
context.getAttribute("name") 得到数据
context.removeAttribue("name") 清除数据
6)转发
context.getRequestDispatcher("路径").forward(request,response);
request.ge
4000
tRequestDispacher("路径").forward(request,response); 等价于上面的代码
7)得到web应用中的资源文件
context.getRealPath("路径")
context.getResourceAsStream("路径");
1)Servlet生命周期:构造方法-->init(有参)-->service()-->destroy()
构造方法: 创建servlet对象。默认情况下,第一次访问servlet对象时。只调用1次。
init方法(有参): 创建完servlet对象后调用。只调用1次。
注意: 会调用无参的init方法。
service方法: servlet提供服务的方法。每次发出请求调用。
注意: request对象 ,response对象
destroy方法: tomcat服务器停止或web应用重新部署,servlet对象销毁,destroy方法被调用。
demo如下:
package com.bighuan.day10_servlet; import java.io.IOException; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ServletLifeCycle extends HttpServlet { public ServletLifeCycle() { System.out.println("1,创建了一个servlet对象"); } @Override public void init(ServletConfig config) throws ServletException { System.out.println("2,init方法被调用"); } @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("3,service方法被调用"); } @Override public void destroy() { System.out.println("destroy方法被调用"); } }
2)ServletConfig对象
获取servlet的初始化参数:
getInitParameter("name ");
getInitParameterNames();
贴代码了:
package com.bighuan.day10_servlet; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ConfigDemo extends HttpServlet { //private ServletConfig config; /**ServletConfig的API: * java.lang.String getInitParameter(java.lang.String name) * java.util.Enumeration getInitParameterNames() * ServletContext getServletContext() * java.lang.String getServletName() */ /** * tomcat服务器做的事情:这些参数会在加载web应用的时候,加载到ServletConfig对象中 */ @Override public void init(ServletConfig config) throws ServletException { super.init(config); //this.config=config; } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //方式一:直接找到那个文件,不好维护 //File file=new File("f:/test.txt"); //方式二:通过ServletConfig加载初始化参数,在web.xml文件中配置即可 // String path = config.getInitParameter("path"); String path = getServletConfig().getInitParameter("path"); System.out.println(path); BufferedReader br=new BufferedReader(new FileReader(path)); String str=null; while( (str=br.readLine()) != null){ System.out.println(str); } br.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } }
3)ServletContext对象(ServletContext的作用范围在整个web应用程序内)
得到web应用路径:
context.getContextPath();
request.getContextPath(); 等价于上面的代码
package com.bighuan.day10_context; import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 得到web应用的路径 * @author Administrator * */ public class ContextDemo1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //ServletContext context = this.getServletConfig().getServletContext(); //这个方法内部就是调用了上面那行代码,推荐使用第二种 ServletContext context = this.getServletContext(); /** * 得到web应用路径:/bighuan_jsp * web应用路径:部署到tomcat服务器上的web应用名称 */ /*String contextPath = context.getContextPath(); System.out.println(contextPath); //应用到请求重定向 response.sendRedirect(contextPath+"/index.jsp");*/ /* * 获得web应用参数 * 注意:web应用参数在所有servlet中都能获取 * servlet中的参数只能在当前servler内获取 */ String aaaValue = context.getInitParameter("AAA"); System.out.println(aaaValue); Enumeration<String> names = context.getInitParameterNames(); while(names.hasMoreElements()){ String name = names.nextElement(); System.out.println(name+"="+ context.getInitParameter(name)); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } }
4)得到web应用参数:
context.getInitParameter("name");
context.getInitParameterNames();
5)域对象:
context.setAttribute("name",Object): 保存数据
context.getAttribute("name") 得到数据
context.removeAttribue("name") 清除数据
6)转发
context.getRequestDispatcher("路径").forward(request,response);
request.ge
4000
tRequestDispacher("路径").forward(request,response); 等价于上面的代码
/** * 转发和重定向的区别: * 转发:地址栏不会发生改变 * 不能转发到当前应用以外的资源 * 可以在转发过程中,把数据保存到request域对象中 * 重定向:地址栏会变为重定向的地址, * 可转到当前应用以外的资源,如百度等等,比转发强大 * 不能在重定向的过程中,把数据保存到request对象中 */
7)得到web应用中的资源文件
context.getRealPath("路径")
context.getResourceAsStream("路径");
相关文章推荐
- JavaWeb-Servlet编程 Part3
- JavaWeb之Servlet&网络访问服务器编程
- JavaWeb-Servlet编程 Part2
- 不二极端编程之JavaWeb详解(HttpServletRequest,HttpServletResponse)
- Java web 开发笔记 第五章 Servlet编程三
- JavaWeb-Servlet编程 Part1
- javaweb基础(Http协议、Servlet编程、会话管理)
- JavaWeb----2.Servlet编程操作
- Java web 开发笔记 第五章 Servlet编程四
- openHAB 体系结构与编程模型 (2) --- Web Application Servlet 架构
- 关于javaweb中servlet的理解。
- Java web分页技术(jsp+servlet+Dao+javabean)
- Servlet技术浅析(六)之-----JavaWeb应用的生命周期和Servlet的生命周期
- Java Web之Servlet入门篇(二)
- 关于处理JavaWeb中Servlet中返回jsp乱码问题
- (转)JavaWeb学习之Servlet(三)----Servlet的映射匹配问题、线程安全问题
- Java Web之Servlet技术
- java web 中 filter 与 servlet的关系
- JavaWeb开发中,servlet的url-pattern的映射规则
- Java_Web之Servlet基础