Servlet1总结

ServletContext
 1.它是一种域对象
 2.一个Web应用只有一个ServletContext对象
 3.服务器启动时对象就创建了,当服务器关闭时对象才销毁
 功能方法:
 (1)获取ServletContext对象
    ServletContext sc = servletconfig.getServletContext();
    由于GenericServlet类中定义了方法getServletContext(),
    而HttpServlet继承自GenericServlet,
    我们自定义的Servlet类继承自HttpServlet,所以类中也有
    方法getServletContext()
    ServletContext sc = this.getServletContext();
  (2) 域功能,内部有map,可以存取数据
      servletContext.setAttribute("name","Tom");//保存数据
      servletContext.setAttribute("name","Jack");//替换数据
      servletContext.getAttribute("name");//获取数据
      servletContext.removeAttribute("name");//删除数据
      Enumeration en = servletContext.getAttributeNames();//获取所有的属性名
      保存在ServletContext中的数据是被当前Web应用中的所有资源共享
  (3)访问当前的web应用的资源
      //根据文件相对路径得到绝对路径
      String getRealPath(String path)
      G:\apache-tomcat-6\webapps\day6_2\WEB-INF\web.xml
      //将得到的资源包装成一个InputStream
      InputStream is = servletContext.getResourceAsStream("/WEB-INF/web.xml");
   (4)获取在web.xml中配置的初始化参数(不属于一个Servlet)
 <context-param>
  <param-name>school</param-name>
  <param-value>rjxy</param-value>
 </context-param>
  <context-param>
  <param-name>major</param-name>
  <param-value>java</param-value>
 </context-param>
      String value = this.getInitParameter("name");
————————————————————————————————————————
  response:
  是service()方法的参数,类型是HttpServletResponse.
  在客户端发出请求时,服务器都会创建一个新的response对象,把它传给service()方法。
  response对象用来完成对客户端的响应。
  它有4种功能:
  设置响应头信息
  发送状态码
  设置响应正文
  重定向

1、 response设置响应正文,通过两种流发送到客户端的:
  PrintWriter out = response.getWriter();//字符流
  ServletOutputStream out = response.getOutputStream();//字节流 比如下载一个图片时

通过字符流发送响应时,要注意字符编码问题。
  response.getWriter()默认编码为ISO-8859-1,不支持中文。
  把字符集设置为UTF-8,  response.setcharacterEncoding("UTF-8");
  这样发送到客户端的就是UTF-8编码的内容。
  浏览器一般默认的解码字符集为GB2312或者GBK。
  比如“安阳”  UTF-8编码为6个字节,而GB2312编码为4个字节。
  解决乱码: response.setContentType("text/html;charset=UTF-8");

缓冲区
  response.getWriter()有缓冲区,大小为8KB,如果响应数据没有达到8KB,
  所有数据都暂时存放在缓冲区中,不会立刻发送到客户端。当Servlet执行完毕后,
  服务器才会将缓冲区中的数据发送到客户端。如果想立刻发送到客户端,
  调用response.flushBuffer()方法手动刷新缓冲区。

2、设置响应头信息
  告诉客户端浏览器一些关于响应的信息,比如内容编码,内容长度等。
  //3秒钟自动跳转到某个主页
  response.setHeader("Refresh","3;URL=http://www.aynu.edu.cn");
  //跳转到本项目内主页
  response.setHeader("Refresh", "3;URL=/day7/index.jsp");

3、设置状态码
  response.setStatus(200);
  response.setStatus(404);
 
 4、重定向
    本来浏览器访问的是A地址,服务器却通知浏览器去访问B地址,即再次发送一个新的请求。
    //重定向(到项目外的资源)
    response.sendRedirect("http://www.aynu.edu.cn");
   //重定向(到项目内的资源)
   response.sendRedirect("/day7/FServlet");

时间: 2024-10-01 16:18:28

Servlet1总结的相关文章

servlet1

5 Map<String, String[]> map = request.getParameterMap(); Set<String> set = map.keySet(); for(String str : set){ String[] parameter = map.get(str); System.out.print("name:"+str+"--- value:"); for(String p:parameter){ System.

javaweb学习路线-Tomcat与Servlet-1

1.Tomcat:先配置java环境和tomcat环境 配置端口号:到conf里面的server.xml中找到port:8080 可以修改端口号,最大到65535,注意不能占用默认的端口 work:存放tomcat动态生成的资源 appwebs:存放写的web文件 logs:日志 lib:tomcat要使用的架包 2.创建一个web应用: 静态网站: 第一步:在webapps下创建一个目录(名称不能包括中文和空格),这个目录被称为项目目录 第二步:在文件里创建一个html文件,在里面写内容就完事

servlet-1(名字简单点好,我们是搞技术的)

1.servlet简介 宏观讲servlet是web服务器与服务端Java程序之间连接的协议,是通信规范,这个规范是以接口的形式规范的. 浏览器通过http(超文本传输协议)向web服务器发送请求,web服务器接收到请求后通过servlet访问Java程序(action层),然后再通过jdbc(dao层)从数据库获取数据. 通常来说servlet只是宏观上servlet规范中的一个具体的接口,servlet规范包含一整套接口,servlet只是其中之一: 微观上说servlet是servlet接

JavaWeb(四)Servlet-1

1.Servlet 简介 Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中.Servlet容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet和客户的通信采用"请求/响应"的模式. Servlet可完成如下功能: (1)创建并返回基于客户请求的动态HTML页面. (2)创建可嵌入到现有HTML 页面中的部分HTML 页面(HTML 片段). (3)与其它服务器资源(如数据库或基于Java的应用程序)进行通信. Servlet容器

大量逻辑判断优化的思路——责任链模式复习总结及其和状态模式对比

俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的总结知识点如下: 责任链模式概念和例子 使用的条件 和状态模式的比较分析 责任链的优缺点 纯的责任链和不纯的责任链 javax.servlet.Filter#doFilter()方法源码分析 基于AOP思想,模拟一个拦截器 前面说了一个状态模式,总结过程中发现和这个责任链的使用场景很类似,都是为了解耦大量复杂业务逻辑判断的,那么他们有什么不同呢?回忆状态模式——状态模式允许通过改变对象的内部状态而改变对象自身的行为,这个对象

编写Spring MVC Controller

1.映射请求 在POJO类定义处标注@Controller,再通过<content:component-scan /...>扫描相应的类包,即可使POJO类成为一个能处理HTTP请求的控制器. 如何将请求映射到对应的控制器的方法中是Spring MVC框架最重要的任务之一,这项任务由@RequestMapping注释承担. 例子1: 1 @Controller 2 public class UserController{ 3 4 @RequestMapping(value="/use

JAVAWEB开发之JSP、EL、及会话技术(Cookie和Session)的使用详解

Servlet的缺点 开发人员要十分熟悉JAVA 不利于页面调试和维护(修改,重新编译) 很难利用网页设计工具进行页面设计(HTML内容导入到servlet中,用PrintWriter的对象进行输出) JSP简介 JSP(Java Server Pages) 与Java Servlet一样,是在服务器端执行的,不同的是JSP先由服务器编译部署成Servlet执行. JSP技术的企业最佳实践(生成HTML内容) 新的JSP2.0规范版本包括新的功能(EL表达式,新增的Simple Tag和Tag

【JAVAWEB学习笔记】11_XML&amp;反射

解析XML总结(SAX.Pull.Dom三种方式) 反射的简单介绍: 反射 1.什么是反射技术? 动态获取指定类以及类中的内容(成员),并运行其内容. 应用程序已经运行,无法在其中进行new对象的建立,就无法使用对象.这时可以根据配置文件的类全名去找对应的字节码文件,并加载进内存,并创建该类对象实例.这就需要使用反射技术完成 2.获取class对象的三种方式 获取Class对象的方式一: 通过对象具备的getClass方法(源于Object类的方法).有点不方便,需要用到该类,并创建该类的对象,

JavaWeb03_Servlet

JavaWeb03_Servlet Servlet规范的组成: 1.web应用程序2.Servlet与HttpServlet3.过滤器(servlet2.3版本后引入过滤器,所有http请求都可以经过过滤器)4.安全5.国际化 两个接口:ServletConfig接口:定义如何操作Servlet配置Servlet接口:定义操作Servlet生命周期或配置 Generic Servlet:实现了上面两个接口,就是一个Servlet.可以和容器进行通讯,但是天生不支持http,因而不能直接交互 Ht